[Xfce4-commits] [panel-plugins/xfce4-whiskermenu-plugin] 01/02: Simplify icon renderer size calculation.

noreply at xfce.org noreply at xfce.org
Sun Feb 9 18:44:06 CET 2020


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

g   o   t   t   c   o   d   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository panel-plugins/xfce4-whiskermenu-plugin.

commit b3e5a2cf419724d73973dfc6e60a1d8ba7e0ac77
Author: Graeme Gott <graeme at 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.


More information about the Xfce4-commits mailing list