[Libreoffice-commits] core.git: 2 commits - vcl/inc vcl/unx

Caolán McNamara caolanm at redhat.com
Thu Nov 17 15:32:42 UTC 2016


 vcl/inc/unx/gtk/gtkgdi.hxx                |    4 ++
 vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx |   44 +++++++++++++++++++++---------
 2 files changed, 35 insertions(+), 13 deletions(-)

New commits:
commit 7f1af0a1c7401552704eaba2091b078890567cd8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 17 15:31:38 2016 +0000

    put the render frame at the end of these blocks too
    
    Change-Id: I72270faa4138377ea04467ad0c6f01a3de0156b6

diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
index 4a957bb..f3edc2b 100644
--- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
@@ -685,9 +685,6 @@ void GtkSalGraphics::PaintOneSpinButton( GtkStyleContext *context,
     gtk_render_background(context, cr,
                           buttonRect.Left(), buttonRect.Top(),
                           buttonRect.GetWidth(), buttonRect.GetHeight() );
-    gtk_render_frame(context, cr,
-                     buttonRect.Left(), buttonRect.Top(),
-                     buttonRect.GetWidth(), buttonRect.GetHeight() );
 
     gint iconWidth = (buttonRect.GetWidth() - padding.left - padding.right - border.left - border.right);
     gint iconHeight = (buttonRect.GetHeight() - padding.top - padding.bottom - border.top - border.bottom);
@@ -710,6 +707,10 @@ void GtkSalGraphics::PaintOneSpinButton( GtkStyleContext *context,
 
     gtk_render_icon(context, cr, pixbuf, arrowRect.Left(), arrowRect.Top());
     g_object_unref(pixbuf);
+
+    gtk_render_frame(context, cr,
+                     buttonRect.Left(), buttonRect.Top(),
+                     buttonRect.GetWidth(), buttonRect.GetHeight() );
 }
 
 void GtkSalGraphics::PaintSpinButton(GtkStateFlags flags,
@@ -1758,12 +1759,13 @@ void GtkSalGraphics::PaintCheckOrRadio(cairo_t *cr, GtkStyleContext *context,
 
     if (!bInMenu)
         gtk_render_background(context, cr, x, y, indicator_size, indicator_size);
-    gtk_render_frame(context, cr, x, y, indicator_size, indicator_size);
 
     if (bIsCheck)
         gtk_render_check(context, cr, x, y, indicator_size, indicator_size);
     else
         gtk_render_option(context, cr, x, y, indicator_size, indicator_size);
+
+    gtk_render_frame(context, cr, x, y, indicator_size, indicator_size);
 }
 
 void GtkSalGraphics::PaintCheck(cairo_t *cr, GtkStyleContext *context,
@@ -2142,7 +2144,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
     case RenderType::Progress:
     {
         gtk_render_background(mpProgressBarTroughStyle, cr, nX, nY, nWidth, nHeight);
-        gtk_render_frame(mpProgressBarTroughStyle, cr, nX, nY, nWidth, nHeight);
+
         long nProgressWidth = rValue.getNumericVal();
         if (nProgressWidth)
         {
@@ -2157,6 +2159,8 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
             gtk_render_frame(context, cr, nX, nY, nProgressWidth, nHeight);
         }
 
+        gtk_render_frame(mpProgressBarTroughStyle, cr, nX, nY, nWidth, nHeight);
+
         break;
     }
     case RenderType::TabItem:
commit 4579c43861635dda15158478404aa90151228e91
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 17 12:34:44 2016 +0000

    gtk3: spinbuttons under Ambiance don't look beautiful enough
    
    lets draw the frame after the sub-contents are done, and
    use a dedicated entry child
    
    Change-Id: I7db1ac56e5cfb1a46ddd2fb56c5e95deaa83a95d

diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index 514c71d..e7169e9 100644
--- a/vcl/inc/unx/gtk/gtkgdi.hxx
+++ b/vcl/inc/unx/gtk/gtkgdi.hxx
@@ -53,6 +53,7 @@ enum class GtkControlPart
     ListboxBoxButtonBox,
     ListboxBoxButtonBoxArrow,
     SpinButton,
+    SpinButtonEntry,
     SpinButtonUpButton,
     SpinButtonDownButton,
     ScrollbarVertical,
@@ -151,6 +152,7 @@ private:
     static GtkStyleContext *mpRadioButtonStyle;
     static GtkStyleContext *mpRadioButtonRadioStyle;
     static GtkStyleContext *mpSpinStyle;
+    static GtkStyleContext *mpSpinEntryStyle;
     static GtkStyleContext *mpSpinUpStyle;
     static GtkStyleContext *mpSpinDownStyle;
     static GtkStyleContext *mpComboboxStyle;
@@ -210,7 +212,7 @@ private:
                              ControlPart nPart,
                              Rectangle aAreaRect,
                              ControlState nState );
-           void PaintSpinButton(GtkStyleContext *context,
+           void PaintSpinButton(GtkStateFlags flags,
                          cairo_t *cr,
                          const Rectangle& rControlRectangle,
                          ControlType nType,
diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
index 86e039c..4a957bb 100644
--- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
@@ -46,6 +46,7 @@ GtkStyleContext* GtkSalGraphics::mpCheckButtonCheckStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpRadioButtonStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpRadioButtonRadioStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpSpinStyle = nullptr;
+GtkStyleContext* GtkSalGraphics::mpSpinEntryStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpSpinUpStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpSpinDownStyle = nullptr;
 GtkStyleContext* GtkSalGraphics::mpComboboxStyle = nullptr;
@@ -711,7 +712,7 @@ void GtkSalGraphics::PaintOneSpinButton( GtkStyleContext *context,
     g_object_unref(pixbuf);
 }
 
-void GtkSalGraphics::PaintSpinButton(GtkStyleContext *context,
+void GtkSalGraphics::PaintSpinButton(GtkStateFlags flags,
                                      cairo_t *cr,
                                      const Rectangle& rControlRectangle,
                                      ControlType nType,
@@ -735,18 +736,24 @@ void GtkSalGraphics::PaintSpinButton(GtkStyleContext *context,
 
     if (nPart == ControlPart::Entire)
     {
-        gtk_render_background(context, cr,
+        gtk_style_context_set_state(mpSpinStyle, flags);
+
+        gtk_render_background(mpSpinStyle, cr,
                               0, 0,
                               rControlRectangle.GetWidth(), rControlRectangle.GetHeight() );
-        gtk_render_frame(context, cr,
-                         0, 0,
-                         rControlRectangle.GetWidth(), rControlRectangle.GetHeight() );
     }
 
     cairo_translate(cr, -rControlRectangle.Left(), -rControlRectangle.Top());
     PaintOneSpinButton(mpSpinUpStyle, cr, nType, upBtnPart, rControlRectangle, upBtnState );
     PaintOneSpinButton(mpSpinDownStyle, cr, nType, downBtnPart, rControlRectangle, downBtnState );
     cairo_translate(cr, rControlRectangle.Left(), rControlRectangle.Top());
+
+    if (nPart == ControlPart::Entire)
+    {
+        gtk_render_frame(mpSpinStyle, cr,
+                         0, 0,
+                         rControlRectangle.GetWidth(), rControlRectangle.GetHeight() );
+    }
 }
 
 #define FALLBACK_ARROW_SIZE 11 * 0.85
@@ -1122,6 +1129,13 @@ GtkStyleContext* GtkSalGraphics::createNewContext(GtkControlPart ePart, gtk_widg
             gtk_widget_path_iter_add_class(path, -1, GTK_STYLE_CLASS_HORIZONTAL);
             return makeContext(path, nullptr);
         }
+        case GtkControlPart::SpinButtonEntry:
+        {
+            GtkWidgetPath *path = gtk_widget_path_copy(gtk_style_context_get_path(mpSpinStyle));
+            gtk_widget_path_append_type(path, G_TYPE_NONE);
+            set_object_name(path, -1, "entry");
+            return makeContext(path, mpSpinStyle);
+        }
         case GtkControlPart::SpinButtonUpButton:
         case GtkControlPart::SpinButtonDownButton:
         {
@@ -1419,6 +1433,7 @@ GtkStyleContext* GtkSalGraphics::createOldContext(GtkControlPart ePart)
         }
         case GtkControlPart::Entry:
         case GtkControlPart::ComboboxBoxEntry:
+        case GtkControlPart::SpinButtonEntry:
         {
             GtkWidgetPath *path = gtk_widget_path_new();
             gtk_widget_path_append_type(path, GTK_TYPE_ENTRY);
@@ -1787,7 +1802,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
     {
     case ControlType::Spinbox:
     case ControlType::SpinButtons:
-        context = mpEntryStyle;
+        context = mpSpinStyle;
         renderType = RenderType::Spinbutton;
         break;
     case ControlType::Editbox:
@@ -2097,7 +2112,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
         PaintScrollbar(context, cr, rControlRegion, nType, nPart, rValue);
         break;
     case RenderType::Spinbutton:
-        PaintSpinButton(context, cr, rControlRegion, nType, nPart, rValue);
+        PaintSpinButton(flags, cr, rControlRegion, nType, nPart, rValue);
         break;
     case RenderType::Combobox:
         PaintCombobox(flags, cr, rControlRegion, nType, nPart, rValue);
@@ -2983,6 +2998,7 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow )
     gSpinBox = gtk_spin_button_new(nullptr, 0, 0);
     gtk_container_add(GTK_CONTAINER(gDumbContainer), gSpinBox);
     mpSpinStyle = createStyleContext(set_object_name, GtkControlPart::SpinButton);
+    mpSpinEntryStyle = createStyleContext(set_object_name, GtkControlPart::SpinButtonEntry);
     mpSpinUpStyle = createStyleContext(set_object_name, GtkControlPart::SpinButtonUpButton);
     mpSpinDownStyle = createStyleContext(set_object_name, GtkControlPart::SpinButtonDownButton);
 


More information about the Libreoffice-commits mailing list