[gtk+] iconhelper: Get rid of _gtk_icon_helper_set_window()



commit e95e2d5048e59cb0615943400d738534a24aa958
Author: Benjamin Otte <otte redhat com>
Date:   Tue Dec 8 15:52:35 2015 +0100

    iconhelper: Get rid of _gtk_icon_helper_set_window()
    
    Instead use the window of the owner widget.

 gtk/gtkcellrendererpixbuf.c |    2 --
 gtk/gtkentry.c              |    6 ------
 gtk/gtkiconhelper.c         |   43 +++++++------------------------------------
 gtk/gtkiconhelperprivate.h  |    2 --
 gtk/gtkimage.c              |   18 ------------------
 gtk/gtkspinbutton.c         |    1 -
 6 files changed, 7 insertions(+), 65 deletions(-)
---
diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c
index 397e7da..2f781cb 100644
--- a/gtk/gtkcellrendererpixbuf.c
+++ b/gtk/gtkcellrendererpixbuf.c
@@ -593,8 +593,6 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer      *cell,
   if (icon_helper == NULL)
     icon_helper = create_icon_helper (cellpixbuf, widget);
 
-  _gtk_icon_helper_set_window (icon_helper,
-                              gtk_widget_get_window (widget));
   _gtk_icon_helper_draw (icon_helper,
                          context, cr,
                          pix_rect.x, pix_rect.y);
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 139bd11..83e738b 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -3134,10 +3134,6 @@ realize_icon_info (GtkWidget            *widget,
   gtk_widget_register_window (widget, icon_info->window);
 
   gtk_widget_queue_resize (widget);
-
-  _gtk_icon_helper_set_window (icon_info->icon_helper,
-                              gtk_widget_get_window (widget));
-
 }
 
 static void
@@ -3439,8 +3435,6 @@ gtk_entry_unrealize (GtkWidget *widget)
     {
       if ((icon_info = priv->icons[i]) != NULL)
         {
-          _gtk_icon_helper_set_window (icon_info->icon_helper, NULL);
-
           if (icon_info->window != NULL)
             {
               gtk_widget_unregister_window (widget, icon_info->window);
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index 9cae307..ad79e2d 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -67,7 +67,6 @@ gtk_icon_helper_take_definition (GtkIconHelper      *self,
 void
 _gtk_icon_helper_clear (GtkIconHelper *self)
 {
-  g_clear_object (&self->priv->window);
   g_clear_pointer (&self->priv->rendered_surface, cairo_surface_destroy);
 
   gtk_image_definition_unref (self->priv->def);
@@ -87,17 +86,6 @@ _gtk_icon_helper_invalidate (GtkIconHelper *self)
     }
 }
 
-void
- _gtk_icon_helper_set_window (GtkIconHelper *self,
-                             GdkWindow *window)
-{
-  if (window)
-    g_object_ref (window);
-  g_clear_object (&self->priv->window);
-  self->priv->window = window;
-
-}
-
 static void
 gtk_icon_helper_finalize (GObject *object)
 {
@@ -223,30 +211,13 @@ get_surface_size (GtkIconHelper   *self,
   cairo_destroy (cr);
 }
 
-static gint
-get_scale_factor (GtkIconHelper *self,
-                 GtkStyleContext *context)
-{
-  GdkScreen *screen;
-
-  if (self->priv->window)
-    return gdk_window_get_scale_factor (self->priv->window);
-
-  screen = gtk_style_context_get_screen (context);
-
-  /* else fall back to something that is more likely to be right than
-   * just returning 1:
-   */
-  return gdk_screen_get_monitor_scale_factor (screen, 0);
-}
-
 static gboolean
 check_invalidate_surface (GtkIconHelper *self,
                          GtkStyleContext *context)
 {
   int scale;
 
-  scale = get_scale_factor (self, context);
+  scale = gtk_widget_get_scale_factor (self->priv->owner);
 
   if ((self->priv->rendered_surface != NULL) &&
       (self->priv->last_surface_scale == scale))
@@ -341,7 +312,7 @@ ensure_surface_from_pixbuf (GtkIconHelper *self,
   else
     pixbuf = g_object_ref (orig_pixbuf);
 
-  surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, self->priv->window);
+  surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, gtk_widget_get_window (self->priv->owner));
   icon_effect = _gtk_css_icon_effect_value_get (gtk_css_style_get_value (style, 
GTK_CSS_PROPERTY_ICON_EFFECT));
   gtk_css_icon_effect_apply (icon_effect, surface);
   g_object_unref (pixbuf);
@@ -366,7 +337,7 @@ ensure_surface_for_icon_set (GtkIconHelper    *self,
                                                       scale);
   surface = gdk_cairo_surface_create_from_pixbuf (pixbuf,
                                                   scale,
-                                                  self->priv->window);
+                                                  gtk_widget_get_window (self->priv->owner));
   g_object_unref (pixbuf);
 
   return surface;
@@ -442,13 +413,13 @@ ensure_surface_for_gicon (GtkIconHelper    *self,
     {
       GtkCssIconEffect icon_effect;
 
-      surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window);
+      surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window 
(self->priv->owner));
       icon_effect = _gtk_css_icon_effect_value_get (gtk_css_style_get_value (style, 
GTK_CSS_PROPERTY_ICON_EFFECT));
       gtk_css_icon_effect_apply (icon_effect, surface);
     }
   else
     {
-      surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window);
+      surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window 
(self->priv->owner));
     }
   g_object_unref (destination);
 
@@ -546,7 +517,7 @@ gtk_icon_helper_ensure_surface (GtkIconHelper   *self,
   if (!check_invalidate_surface (self, context))
     return;
 
-  scale = get_scale_factor (self, context);
+  scale = gtk_widget_get_scale_factor (self->priv->owner);
 
   self->priv->rendered_surface = gtk_icon_helper_load_surface (self, context, scale);
 }
@@ -575,7 +546,7 @@ _gtk_icon_helper_get_size (GtkIconHelper *self,
 
     case GTK_IMAGE_PIXBUF:
       get_pixbuf_size (self,
-                       get_scale_factor (self, context),
+                       gtk_widget_get_scale_factor (self->priv->owner),
                        gtk_image_definition_get_pixbuf (self->priv->def),
                        gtk_image_definition_get_scale (self->priv->def),
                        &width, &height, &scale);
diff --git a/gtk/gtkiconhelperprivate.h b/gtk/gtkiconhelperprivate.h
index a7bbcae..df4fb6a 100644
--- a/gtk/gtkiconhelperprivate.h
+++ b/gtk/gtkiconhelperprivate.h
@@ -71,8 +71,6 @@ GtkIconHelper *_gtk_icon_helper_new (GtkWidget *owner);
 
 void _gtk_icon_helper_clear (GtkIconHelper *self);
 void _gtk_icon_helper_invalidate (GtkIconHelper *self);
-void _gtk_icon_helper_set_window (GtkIconHelper *self,
-                                 GdkWindow *window);
 
 gboolean _gtk_icon_helper_get_is_empty (GtkIconHelper *self);
 
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index a24d0df..48c00dc 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -157,7 +157,6 @@ static gint gtk_image_draw                 (GtkWidget    *widget,
 static void gtk_image_size_allocate        (GtkWidget    *widget,
                                             GtkAllocation*allocation);
 static void gtk_image_unmap                (GtkWidget    *widget);
-static void gtk_image_realize              (GtkWidget    *widget);
 static void gtk_image_unrealize            (GtkWidget    *widget);
 static void gtk_image_get_preferred_width  (GtkWidget    *widget,
                                             gint         *minimum,
@@ -233,7 +232,6 @@ gtk_image_class_init (GtkImageClass *class)
   widget_class->get_preferred_height_and_baseline_for_width = 
gtk_image_get_preferred_height_and_baseline_for_width;
   widget_class->size_allocate = gtk_image_size_allocate;
   widget_class->unmap = gtk_image_unmap;
-  widget_class->realize = gtk_image_realize;
   widget_class->unrealize = gtk_image_unrealize;
   widget_class->style_updated = gtk_image_style_updated;
   widget_class->screen_changed = gtk_image_screen_changed;
@@ -1558,24 +1556,8 @@ gtk_image_unmap (GtkWidget *widget)
 }
 
 static void
-gtk_image_realize (GtkWidget *widget)
-{
-  GtkImage *image = GTK_IMAGE (widget);
-  GtkImagePrivate *priv = image->priv;
-
-  GTK_WIDGET_CLASS (gtk_image_parent_class)->realize (widget);
-
-  _gtk_icon_helper_set_window (priv->icon_helper,
-                              gtk_widget_get_window (widget));
-}
-
-static void
 gtk_image_unrealize (GtkWidget *widget)
 {
-  GtkImage *image = GTK_IMAGE (widget);
-  GtkImagePrivate *priv = image->priv;
-
-  _gtk_icon_helper_set_window (priv->icon_helper, NULL);
   gtk_image_reset_anim_iter (GTK_IMAGE (widget));
 
   GTK_WIDGET_CLASS (gtk_image_parent_class)->unrealize (widget);
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index 0bf12c6..7b2f298 100644
--- a/gtk/gtkspinbutton.c
+++ b/gtk/gtkspinbutton.c
@@ -1100,7 +1100,6 @@ gtk_spin_button_panel_draw (GtkSpinButton   *spin_button,
   width = gdk_window_get_width (panel);
 
   icon_helper = _gtk_icon_helper_new (widget);
-  _gtk_icon_helper_set_window (icon_helper, panel);
   _gtk_icon_helper_set_use_fallback (icon_helper, TRUE);
 
   if (panel == priv->down_panel)


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