[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