[Xfce4-commits] [xfce/xfce4-panel] 01/01: directorymenu: Replace xfce_panel_image with plain Gtk+
noreply at xfce.org
noreply at xfce.org
Sat Mar 18 10:30:18 CET 2017
This is an automated email from the git hooks/post-receive script.
ochosi pushed a commit to branch master
in repository xfce/xfce4-panel.
commit c183ccab6a9ea941154752abb0172193eaca35fa
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Sat Mar 18 10:30:12 2017 +0100
directorymenu: Replace xfce_panel_image with plain Gtk+
xfce_panel_image relies on pixbuf drawing and caused
flickering in Gtk+3 implementations of plugins. Setting
the icon name and size is the preferred method in Gtk+,
so all plugins should be ported away from xfce_panel_image.
---
plugins/directorymenu/directorymenu.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/plugins/directorymenu/directorymenu.c b/plugins/directorymenu/directorymenu.c
index 524bd20..f8456dd 100644
--- a/plugins/directorymenu/directorymenu.c
+++ b/plugins/directorymenu/directorymenu.c
@@ -161,6 +161,8 @@ directory_menu_plugin_class_init (DirectoryMenuPluginClass *klass)
static void
directory_menu_plugin_init (DirectoryMenuPlugin *plugin)
{
+ gint icon_size;
+
plugin->button = xfce_panel_create_toggle_button ();
xfce_panel_plugin_add_action_widget (XFCE_PANEL_PLUGIN (plugin), plugin->button);
gtk_container_add (GTK_CONTAINER (plugin), plugin->button);
@@ -169,7 +171,8 @@ directory_menu_plugin_init (DirectoryMenuPlugin *plugin)
g_signal_connect (G_OBJECT (plugin->button), "toggled",
G_CALLBACK (directory_menu_plugin_menu), plugin);
- plugin->icon = xfce_panel_image_new_from_source (DEFAULT_ICON_NAME);
+ icon_size = xfce_panel_plugin_get_icon_size (plugin, GTK_WIDGET (plugin->button));
+ plugin->icon = gtk_image_new_from_icon_name (DEFAULT_ICON_NAME, icon_size);
gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
gtk_widget_show (plugin->icon);
}
@@ -348,9 +351,14 @@ static gboolean
directory_menu_plugin_size_changed (XfcePanelPlugin *panel_plugin,
gint size)
{
+ DirectoryMenuPlugin *plugin = XFCE_DIRECTORY_MENU_PLUGIN (panel_plugin);
+ gint icon_size;
+
/* force a square button */
size /= xfce_panel_plugin_get_nrows (panel_plugin);
gtk_widget_set_size_request (GTK_WIDGET (panel_plugin), size, size);
+ icon_size = xfce_panel_plugin_get_icon_size (plugin, GTK_WIDGET (plugin->button));
+ gtk_image_set_pixel_size (GTK_IMAGE (plugin->icon), icon_size);
return TRUE;
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list