rpms/gtk2/F-12 fresh-tooltips.patch,1.7,1.8 gtk2.spec,1.428,1.429

Matthias Clasen mclasen at fedoraproject.org
Sat Oct 31 19:06:14 UTC 2009


Author: mclasen

Update of /cvs/pkgs/rpms/gtk2/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17603

Modified Files:
	fresh-tooltips.patch gtk2.spec 
Log Message:
Handle screen changes


fresh-tooltips.patch:
 gtktooltip.c |  279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 gtkwidget.c  |    8 +
 2 files changed, 268 insertions(+), 19 deletions(-)

Index: fresh-tooltips.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gtk2/F-12/fresh-tooltips.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -p -r1.7 -r1.8
--- fresh-tooltips.patch	28 Oct 2009 21:32:22 -0000	1.7
+++ fresh-tooltips.patch	31 Oct 2009 19:06:13 -0000	1.8
@@ -1,6 +1,6 @@
 diff -up gtk+-2.18.3/gtk/gtktooltip.c.fresh-tooltips gtk+-2.18.3/gtk/gtktooltip.c
 --- gtk+-2.18.3/gtk/gtktooltip.c.fresh-tooltips	2009-10-16 10:35:45.000000000 -0400
-+++ gtk+-2.18.3/gtk/gtktooltip.c	2009-10-28 17:18:38.124009120 -0400
++++ gtk+-2.18.3/gtk/gtktooltip.c	2009-10-31 14:53:37.120183113 -0400
 @@ -29,6 +29,10 @@
  #include "gtkhbox.h"
  #include "gtkalignment.h"
@@ -20,7 +20,7 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
  
  
  G_DEFINE_TYPE (GtkTooltip, gtk_tooltip, G_TYPE_OBJECT);
-@@ -110,8 +115,25 @@ gtk_tooltip_class_init (GtkTooltipClass 
+@@ -110,8 +115,43 @@ gtk_tooltip_class_init (GtkTooltipClass 
  }
  
  static void
@@ -31,6 +31,25 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
 +}
 +
 +static void
++on_screen_changed (GtkWidget  *window,
++                   GdkScreen  *previous,
++                   GtkTooltip *tooltip)
++{
++  GdkScreen *screen;
++  GdkColormap *cmap;
++
++  screen = gtk_widget_get_screen (window);
++
++  cmap = NULL;
++  if (gdk_screen_is_composited (screen))
++    cmap = gdk_screen_get_rgba_colormap (screen);
++  if (cmap == NULL)
++    cmap = gdk_screen_get_rgb_colormap (screen);
++
++  gtk_widget_set_colormap (window, cmap);
++}
++
++static void
 +on_realized (GtkWidget  *window,
 +             GtkTooltip *tooltip)
 +{
@@ -41,20 +60,16 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
  gtk_tooltip_init (GtkTooltip *tooltip)
  {
 +  GdkScreen *screen;
-+  GdkColormap *rgba;
 +
    tooltip->timeout_id = 0;
    tooltip->browse_mode_timeout_id = 0;
  
-@@ -127,8 +149,15 @@ gtk_tooltip_init (GtkTooltip *tooltip)
+@@ -127,8 +167,12 @@ gtk_tooltip_init (GtkTooltip *tooltip)
    tooltip->last_window = NULL;
  
    tooltip->window = g_object_ref (gtk_window_new (GTK_WINDOW_POPUP));
 +
-+  screen = gtk_widget_get_screen (tooltip->window);
-+  rgba = gdk_screen_get_rgba_colormap (screen);
-+  if (rgba && gdk_screen_is_composited (screen))
-+    gtk_widget_set_colormap (tooltip->window, rgba);
++  on_screen_changed (tooltip->window, NULL, tooltip);
 +
    gtk_window_set_type_hint (GTK_WINDOW (tooltip->window),
  			    GDK_WINDOW_TYPE_HINT_TOOLTIP);
@@ -62,7 +77,7 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
    gtk_widget_set_app_paintable (tooltip->window, TRUE);
    gtk_window_set_resizable (GTK_WINDOW (tooltip->window), FALSE);
    gtk_widget_set_name (tooltip->window, "gtk-tooltip");
-@@ -145,7 +174,7 @@ gtk_tooltip_init (GtkTooltip *tooltip)
+@@ -145,7 +189,7 @@ gtk_tooltip_init (GtkTooltip *tooltip)
    gtk_widget_show (tooltip->alignment);
  
    g_signal_connect_swapped (tooltip->window, "style-set",
@@ -71,19 +86,21 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
    g_signal_connect_swapped (tooltip->window, "expose-event",
  			    G_CALLBACK (gtk_tooltip_paint_window), tooltip);
  
-@@ -162,6 +191,11 @@ gtk_tooltip_init (GtkTooltip *tooltip)
+@@ -162,6 +206,13 @@ gtk_tooltip_init (GtkTooltip *tooltip)
    gtk_box_pack_start (GTK_BOX (tooltip->box), tooltip->label,
  		      FALSE, FALSE, 0);
  
 +  g_signal_connect (tooltip->window, "composited-changed",
 +                    G_CALLBACK (on_composited_changed), tooltip);
++  g_signal_connect (tooltip->window, "screen-changed",
++                    G_CALLBACK (on_screen_changed), tooltip);
 +  g_signal_connect (tooltip->window, "realize",
 +                    G_CALLBACK (on_realized), tooltip);
 +
    tooltip->custom_widget = NULL;
  }
  
-@@ -318,9 +352,9 @@ gtk_tooltip_set_icon_from_stock (GtkTool
+@@ -318,9 +369,9 @@ gtk_tooltip_set_icon_from_stock (GtkTool
   * Since: 2.14
   */
  void
@@ -96,7 +113,7 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
  {
    g_return_if_fail (GTK_IS_TOOLTIP (tooltip));
  
-@@ -471,27 +505,229 @@ static void
+@@ -471,27 +522,217 @@ static void
  gtk_tooltip_window_style_set (GtkTooltip *tooltip)
  {
    gtk_alignment_set_padding (GTK_ALIGNMENT (tooltip->alignment),
@@ -245,18 +262,6 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
 +			              GDK_WINDOW_TYPE_HINT_DND);
 +        }
 +#endif
-+#if 0
-+      if (tooltip->window->window)
-+        {
-+          rect.x = 0;
-+          rect.y = 0;
-+          rect.width = width;
-+          rect.height = height;
-+          region = gdk_region_rectangle (&rect);
-+          gdk_window_shape_combine_region (tooltip->window->window, region, 0, 0);
-+          gdk_region_destroy (region);
-+        }
-+#endif
 +      return;
 +    }
 +
@@ -340,7 +345,7 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
  
    return FALSE;
  }
-@@ -631,7 +867,7 @@ find_widget_under_pointer (GdkWindow *wi
+@@ -631,7 +872,7 @@ find_widget_under_pointer (GdkWindow *wi
  
  #ifdef DEBUG_TOOLTIP
    g_print ("event window %p (belonging to %p (%s))  (%d, %d)\n",
@@ -351,7 +356,7 @@ diff -up gtk+-2.18.3/gtk/gtktooltip.c.fr
  
 diff -up gtk+-2.18.3/gtk/gtkwidget.c.fresh-tooltips gtk+-2.18.3/gtk/gtkwidget.c
 --- gtk+-2.18.3/gtk/gtkwidget.c.fresh-tooltips	2009-10-09 01:00:44.000000000 -0400
-+++ gtk+-2.18.3/gtk/gtkwidget.c	2009-10-28 17:17:02.854003713 -0400
++++ gtk+-2.18.3/gtk/gtkwidget.c	2009-10-31 14:27:50.333957199 -0400
 @@ -2386,6 +2386,14 @@ gtk_widget_class_init (GtkWidgetClass *k
                                                               P_("The length of vertical scroll arrows"),
                                                               1, G_MAXINT, 16,


Index: gtk2.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gtk2/F-12/gtk2.spec,v
retrieving revision 1.428
retrieving revision 1.429
diff -u -p -r1.428 -r1.429
--- gtk2.spec	28 Oct 2009 21:32:22 -0000	1.428
+++ gtk2.spec	31 Oct 2009 19:06:13 -0000	1.429
@@ -17,7 +17,7 @@
 Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
 Name: gtk2
 Version: %{base_version}
-Release: 15%{?dist}
+Release: 16%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 Source: http://download.gnome.org/sources/gtk+/2.18/gtk+-%{version}.tar.bz2
@@ -403,6 +403,9 @@ fi
 
 
 %changelog
+* Sat Oct 31 2009 Matthias Clasen <mclasen at redhta.com> - 2.18.3-16
+- Handle screen changes for tooltips (#531568)
+
 * Wed Oct 28 2009 Matthias Clasen <mclasen at redhta.com> - 2.18.3-15
 - Work around a bug in the X automatic compositor (#531443)
 




More information about the fedora-extras-commits mailing list