diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-03-09 09:37:00 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-03-09 09:37:41 +0000 |
commit | 9885a4f10f6b900a2a870e5fe691c4a465522b75 (patch) | |
tree | c56f99a42ef2d95c42417e75590c73f0ba76b6d6 | |
parent | 5f31291fb9242592b61a231b1586ed8e6924d0b2 (diff) |
gtk3: try and keep sync with yesterdays upstream scrollbar changes
Change-Id: If3942704602b82bc99ce49a230930ef59cc862da
-rw-r--r-- | vcl/inc/unx/gtk/gtkgdi.hxx | 3 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 34 |
2 files changed, 32 insertions, 5 deletions
diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx index a53ebaf2d86b..3aac4d103039 100644 --- a/vcl/inc/unx/gtk/gtkgdi.hxx +++ b/vcl/inc/unx/gtk/gtkgdi.hxx @@ -47,6 +47,7 @@ enum class GtkControlPart SpinButtonDownButton, ScrollbarVertical, ScrollbarHorizontal, + ScrollbarContents, ScrollbarTrough, ScrollbarSlider, ScrollbarButton, @@ -105,10 +106,12 @@ private: static GtkStyleContext *mpEntryStyle; static GtkStyleContext *mpTextViewStyle; static GtkStyleContext *mpVScrollbarStyle; + static GtkStyleContext *mpVScrollbarContentsStyle; static GtkStyleContext *mpVScrollbarTroughStyle; static GtkStyleContext *mpVScrollbarSliderStyle; static GtkStyleContext *mpVScrollbarButtonStyle; static GtkStyleContext *mpHScrollbarStyle; + static GtkStyleContext *mpHScrollbarContentsStyle; static GtkStyleContext *mpHScrollbarTroughStyle; static GtkStyleContext *mpHScrollbarSliderStyle; static GtkStyleContext *mpHScrollbarButtonStyle; diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx index 4bb67160c273..cc2055ae31e2 100644 --- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx @@ -26,10 +26,12 @@ GtkStyleContext* GtkSalGraphics::mpLinkButtonStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpEntryStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpTextViewStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpVScrollbarStyle = nullptr; +GtkStyleContext* GtkSalGraphics::mpVScrollbarContentsStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpVScrollbarTroughStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpVScrollbarSliderStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpVScrollbarButtonStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpHScrollbarStyle = nullptr; +GtkStyleContext* GtkSalGraphics::mpHScrollbarContentsStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpHScrollbarTroughStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpHScrollbarSliderStyle = nullptr; GtkStyleContext* GtkSalGraphics::mpHScrollbarButtonStyle = nullptr; @@ -419,6 +421,14 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, bool has_slider = ( thumbRect.GetWidth() > 0 && thumbRect.GetHeight() > 0 ); + // ----------------- CONTENTS + GtkStyleContext* pScrollbarContentsStyle = scrollbarOrientation == GTK_ORIENTATION_VERTICAL ? + mpVScrollbarContentsStyle : mpHScrollbarContentsStyle; + gtk_render_background(pScrollbarContentsStyle, cr, 0, 0, + scrollbarRect.GetWidth(), scrollbarRect.GetHeight() ); + gtk_render_frame(pScrollbarContentsStyle, cr, 0, 0, + scrollbarRect.GetWidth(), scrollbarRect.GetHeight() ); + // ----------------- TROUGH GtkStyleContext* pScrollbarTroughStyle = scrollbarOrientation == GTK_ORIENTATION_VERTICAL ? mpVScrollbarTroughStyle : mpHScrollbarTroughStyle; @@ -442,12 +452,15 @@ void GtkSalGraphics::PaintScrollbar(GtkStyleContext *context, GtkBorder margin; gtk_style_context_get_margin(pScrollbarSliderStyle, stateFlags, &margin); + gtk_render_background(pScrollbarSliderStyle, cr, + thumbRect.Left() + margin.left, thumbRect.Top() + margin.top, + thumbRect.GetWidth() - margin.left - margin.right, + thumbRect.GetHeight() - margin.top - margin.bottom); - gtk_render_slider(pScrollbarSliderStyle, cr, + gtk_render_frame(pScrollbarSliderStyle, cr, thumbRect.Left() + margin.left, thumbRect.Top() + margin.top, thumbRect.GetWidth() - margin.left - margin.right, - thumbRect.GetHeight() - margin.top - margin.bottom, - scrollbarOrientation); + thumbRect.GetHeight() - margin.top - margin.bottom); } bool backwardButtonInsensitive = @@ -894,6 +907,15 @@ static GtkStyleContext* createStyleContext(GtkControlPart ePart, GtkStyleContext #endif gtk_widget_path_iter_add_class(path, -1, ePart == GtkControlPart::ScrollbarVertical ? "vertical" : "horizontal"); break; + case GtkControlPart::ScrollbarContents: + gtk_widget_path_append_type(path, GTK_TYPE_SCROLLBAR); +#if GTK_CHECK_VERSION(3, 19, 2) + gtk_widget_path_iter_set_object_name(path, -1, "contents"); +#else + gtk_widget_path_iter_add_class(path, -1, GTK_STYLE_CLASS_SCROLLBAR); + gtk_widget_path_iter_add_class(path, -1, GTK_STYLE_CLASS_CONTENTS); +#endif + break; case GtkControlPart::ScrollbarTrough: gtk_widget_path_append_type(path, GTK_TYPE_SCROLLBAR); #if GTK_CHECK_VERSION(3, 19, 2) @@ -2346,11 +2368,13 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow ) mpToolButtonStyle = gtk_widget_get_style_context(GTK_WIDGET(pButton)); mpVScrollbarStyle = createStyleContext(GtkControlPart::ScrollbarVertical); - mpVScrollbarTroughStyle = createStyleContext(GtkControlPart::ScrollbarTrough, mpVScrollbarStyle); + mpVScrollbarContentsStyle = createStyleContext(GtkControlPart::ScrollbarContents, mpVScrollbarStyle); + mpVScrollbarTroughStyle = createStyleContext(GtkControlPart::ScrollbarTrough, mpVScrollbarContentsStyle); mpVScrollbarSliderStyle = createStyleContext(GtkControlPart::ScrollbarSlider, mpVScrollbarTroughStyle); mpVScrollbarButtonStyle = createStyleContext(GtkControlPart::ScrollbarButton, mpVScrollbarStyle); mpHScrollbarStyle = createStyleContext(GtkControlPart::ScrollbarHorizontal); - mpHScrollbarTroughStyle = createStyleContext(GtkControlPart::ScrollbarTrough, mpHScrollbarStyle); + mpHScrollbarContentsStyle = createStyleContext(GtkControlPart::ScrollbarContents, mpHScrollbarStyle); + mpHScrollbarTroughStyle = createStyleContext(GtkControlPart::ScrollbarTrough, mpHScrollbarContentsStyle); mpHScrollbarSliderStyle = createStyleContext(GtkControlPart::ScrollbarSlider, mpHScrollbarTroughStyle); mpHScrollbarButtonStyle = createStyleContext(GtkControlPart::ScrollbarButton, mpHScrollbarStyle); |