[gtk+] label: Respect box-shadow when computing clip



commit 1126a34353877a5d0bcf06067e6bf129b48632e8
Author: Benjamin Otte <otte redhat com>
Date:   Thu Aug 21 00:02:29 2014 +0200

    label: Respect box-shadow when computing clip
    
    Testclase included.
    
    Also reorder headers to be alphabetic.

 gtk/gtklabel.c                                  |   24 +++++++++++-----------
 testsuite/reftests/Makefile.am                  |    3 ++
 testsuite/reftests/label-box-shadow-clip.css    |    9 ++++++++
 testsuite/reftests/label-box-shadow-clip.ref.ui |   23 ++++++++++++++++++++++
 testsuite/reftests/label-box-shadow-clip.ui     |   23 ++++++++++++++++++++++
 5 files changed, 70 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index 906d56e..bf8d101 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -30,28 +30,28 @@
 #include "gtklabel.h"
 #include "gtklabelprivate.h"
 #include "gtkaccellabel.h"
+#include "gtkbindings.h"
+#include "gtkbuildable.h"
+#include "gtkclipboard.h"
 #include "gtkcssshadowsvalueprivate.h"
 #include "gtkdnd.h"
-#include "gtkmarshalers.h"
-#include "gtkpango.h"
-#include "gtkwindow.h"
-#include "gtkclipboard.h"
+#include "gtkimage.h"
 #include "gtkintl.h"
-#include "gtkseparatormenuitem.h"
-#include "gtktextutil.h"
 #include "gtkmain.h"
+#include "gtkmarshalers.h"
 #include "gtkmenuitem.h"
 #include "gtkmenushellprivate.h"
 #include "gtknotebook.h"
-#include "gtkbindings.h"
-#include "gtkbuildable.h"
-#include "gtkimage.h"
+#include "gtkpango.h"
+#include "gtkprivate.h"
+#include "gtkseparatormenuitem.h"
 #include "gtkshow.h"
 #include "gtkstylecontextprivate.h"
+#include "gtktextutil.h"
 #include "gtktooltip.h"
-#include "gtkprivate.h"
 #include "gtktypebuiltins.h"
-#include "gtkmain.h"
+#include "gtkwidgetprivate.h"
+#include "gtkwindow.h"
 
 #include "a11y/gtklabelaccessibleprivate.h"
 
@@ -3997,7 +3997,7 @@ gtk_label_size_allocate (GtkWidget     *widget,
 
   gtk_label_get_ink_rect (label, &clip_rect);
   gdk_rectangle_union (&clip_rect, allocation, &clip_rect);
-  gtk_widget_set_clip (widget, &clip_rect);
+  _gtk_widget_set_simple_clip (widget, &clip_rect);
 }
 
 static void
diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am
index 336a507..0b39b41 100644
--- a/testsuite/reftests/Makefile.am
+++ b/testsuite/reftests/Makefile.am
@@ -252,6 +252,9 @@ testdata = \
        label-background.css \
        label-background.ref.ui \
        label-background.ui \
+       label-box-shadow-clip.css \
+       label-box-shadow-clip.ref.ui \
+       label-box-shadow-clip.ui \
        label-clipping.css \
        label-clipping.ref.ui \
        label-clipping.ui \
diff --git a/testsuite/reftests/label-box-shadow-clip.css b/testsuite/reftests/label-box-shadow-clip.css
new file mode 100644
index 0000000..1aa8006
--- /dev/null
+++ b/testsuite/reftests/label-box-shadow-clip.css
@@ -0,0 +1,9 @@
+ import "reset-to-defaults.css";
+
+.test {
+  box-shadow: 0 0 0 1px red;
+}
+
+.reference {
+  border: 1px solid red;
+}
diff --git a/testsuite/reftests/label-box-shadow-clip.ref.ui b/testsuite/reftests/label-box-shadow-clip.ref.ui
new file mode 100644
index 0000000..31f744d
--- /dev/null
+++ b/testsuite/reftests/label-box-shadow-clip.ref.ui
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.1 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <object class="GtkWindow" id="window1">
+    <property name="width_request">100</property>
+    <property name="height_request">100</property>
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkLabel" id="label1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="halign">center</property>
+        <property name="valign">center</property>
+        <property name="label" translatable="yes">X</property>
+        <style>
+          <class name="reference"/>
+        </style>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/testsuite/reftests/label-box-shadow-clip.ui b/testsuite/reftests/label-box-shadow-clip.ui
new file mode 100644
index 0000000..0374162
--- /dev/null
+++ b/testsuite/reftests/label-box-shadow-clip.ui
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.1 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <object class="GtkWindow" id="window1">
+    <property name="width_request">100</property>
+    <property name="height_request">100</property>
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkLabel" id="label1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="halign">center</property>
+        <property name="valign">center</property>
+        <property name="label" translatable="yes">X</property>
+        <style>
+          <class name="test"/>
+        </style>
+      </object>
+    </child>
+  </object>
+</interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]