This is an automated email from the git hooks/post-receive script.

gottcode pushed a 
commit to branch 
master
in repository panel-plugins/xfce4-whiskermenu-plugin.

commit b3e5a2cf419724d73973dfc6e60a1d8ba7e0ac77
Author: Graeme Gott <gra...@gottcode.org>
Date:   Sun Feb 9 09:52:02 2020 -0500

    Simplify icon renderer size calculation.
---
 panel-plugin/icon-renderer.cpp | 59 ++++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 34 deletions(-)

diff --git a/panel-plugin/icon-renderer.cpp b/panel-plugin/icon-renderer.cpp
index fe3d2f4..f00f64d 100644
--- a/panel-plugin/icon-renderer.cpp
+++ b/panel-plugin/icon-renderer.cpp
@@ -45,51 +45,41 @@ enum
 
 //-----------------------------------------------------------------------------
 
-static void whiskermenu_icon_renderer_get_size(GtkCellRenderer* renderer, 
GtkWidget* widget,
-               const GdkRectangle* cell_area, gint* x_offset, gint* y_offset, 
gint* width, gint* height)
+static void whiskermenu_icon_renderer_get_preferred_width(GtkCellRenderer* 
renderer, GtkWidget*, gint* minimum, gint* natural)
 {
        WhiskerMenuIconRenderer* icon_renderer = 
WHISKERMENU_ICON_RENDERER(renderer);
 
-       gint xpad, ypad;
-       gtk_cell_renderer_get_padding(renderer, &xpad, &ypad);
-       gint calc_width  = xpad * 2 + icon_renderer->size;
-       gint calc_height = ypad * 2 + icon_renderer->size;
+       gint pad;
+       gtk_cell_renderer_get_padding(renderer, &pad, nullptr);
+       gint width = (pad * 2) + icon_renderer->size;
 
-       if (cell_area)
+       if (minimum)
        {
-               gfloat xalign, yalign;
-               gtk_cell_renderer_get_alignment(renderer, &xalign, &yalign);
-               if (x_offset)
-               {
-                       *x_offset = (((gtk_widget_get_direction(widget) == 
GTK_TEXT_DIR_RTL) ? (1.0 - xalign) : xalign)
-                                       * (cell_area->width - calc_width));
-                       *x_offset = MAX(*x_offset, 0);
-               }
-               if (y_offset)
-               {
-                       *y_offset = (yalign * (cell_area->height - 
calc_height));
-                       *y_offset = MAX(*y_offset, 0);
-               }
+               *minimum = width;
        }
-       else
+       if (natural)
        {
-               if (x_offset)
-               {
-                       *x_offset = 0;
-               }
-               if (y_offset)
-               {
-                       *y_offset = 0;
-               }
+               *natural = width;
        }
+}
+
+//-----------------------------------------------------------------------------
+
+static void whiskermenu_icon_renderer_get_preferred_height(GtkCellRenderer* 
renderer, GtkWidget*, gint* minimum, gint* natural)
+{
+       WhiskerMenuIconRenderer* icon_renderer = 
WHISKERMENU_ICON_RENDERER(renderer);
+
+       gint pad;
+       gtk_cell_renderer_get_padding(renderer, nullptr, &pad);
+       gint height = (pad * 2) + icon_renderer->size;
 
-       if (width)
+       if (minimum)
        {
-               *width = calc_width;
+               *minimum = height;
        }
-       if (height)
+       if (natural)
        {
-               *height = calc_height;
+               *natural = height;
        }
 }
 
@@ -244,7 +234,8 @@ static void 
whiskermenu_icon_renderer_class_init(WhiskerMenuIconRendererClass* k
        gobject_class->set_property = &whiskermenu_icon_renderer_set_property;
 
        GtkCellRendererClass* renderer_class = GTK_CELL_RENDERER_CLASS(klass);
-       renderer_class->get_size = &whiskermenu_icon_renderer_get_size;
+       renderer_class->get_preferred_width = 
&whiskermenu_icon_renderer_get_preferred_width;
+       renderer_class->get_preferred_height = 
&whiskermenu_icon_renderer_get_preferred_height;
        renderer_class->render = &whiskermenu_icon_renderer_render;
 
        g_object_class_install_property(gobject_class,

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to