[evince] gimpcellrenderertoggle: Fix rendering without hover



commit 80c87939c28f28ad15c2bf4e5f8a8d2a2120a466
Author: Jonas Hahnfeld <hahnjo hahnjo de>
Date:   Fri Aug 18 13:48:03 2017 +0200

    gimpcellrenderertoggle: Fix rendering without hover
    
    The previous code accessed draw_rect which was only set if a shadow
    was drawn as hover effect. This has worked until commit 8c225e6
    ("Remove gtk 2 support") where the gtk 2 code path had
    
      if (gdk_rectangle_intersect (expose_area, cell_area, &draw_rect) &&
          (flags & GTK_CELL_RENDERER_PRELIT))
    
    which meant setting draw_rect unconditionally. Commit 0a2d3c2
    ("[gimpcellrenderertoggle] Paint a shadow when the mouse is over the cell renderer")
    readded the code path in its current form which checks the flag first.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=786464

 .../gimpcellrenderertoggle.c                       |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)
---
diff --git a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c 
b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c
index 6a7c55c..71ab2e5 100644
--- a/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c
+++ b/cut-n-paste/gimpcellrenderertoggle/gimpcellrenderertoggle.c
@@ -359,16 +359,9 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer      *cell,
     {
       GdkPixbuf *insensitive = NULL;
       GdkPixbuf *pixbuf = toggle->pixbuf;
-      GtkBorder  border = { 1, 1, 1, 1 };
+      GtkBorder  border;
 
-#if 0
-      /* FIXME: for some reason calling gtk_style_context_get_border
-       * makes the icon only visible on hover, so use border = 1
-       * for now as a workaround
-       */
       gtk_style_context_get_border (context, state, &border);
-#endif
-
       toggle_rect.x      += border.left;
       toggle_rect.y      += border.top;
       toggle_rect.width  -= (border.left + border.right);
@@ -397,7 +390,7 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer      *cell,
          pixbuf = insensitive;
        }
 
-      if (gdk_rectangle_intersect (&draw_rect, &toggle_rect, &draw_rect))
+      if (gdk_rectangle_intersect (cell_area, &toggle_rect, &draw_rect))
         {
          gdk_cairo_set_source_pixbuf (cr, pixbuf, toggle_rect.x, toggle_rect.y);
          gdk_cairo_rectangle (cr, &draw_rect);


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