[Xfce4-commits] [xfce/xfce4-panel] 01/01: tasklist: Replace xfce_panel_image with plain Gtk+
noreply at xfce.org
noreply at xfce.org
Sat Mar 18 23:58:26 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 01a3703ca865ac45ae5bd91671f68c0737744d38
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Sat Mar 18 23:58:19 2017 +0100
tasklist: Replace xfce_panel_image with plain Gtk+
---
plugins/tasklist/tasklist-widget.c | 38 +++++++++++++++++++++++++++++---------
1 file changed, 29 insertions(+), 9 deletions(-)
diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
index a032d44..86c5266 100644
--- a/plugins/tasklist/tasklist-widget.c
+++ b/plugins/tasklist/tasklist-widget.c
@@ -2143,7 +2143,7 @@ xfce_tasklist_child_new (XfceTasklist *tasklist)
gtk_container_add (GTK_CONTAINER (child->button), child->box);
gtk_widget_show (child->box);
- child->icon = xfce_panel_image_new ();
+ child->icon = gtk_image_new ();
if (tasklist->show_labels)
gtk_box_pack_start (GTK_BOX (child->box), child->icon, FALSE, TRUE, 0);
else
@@ -2486,9 +2486,10 @@ xfce_tasklist_button_icon_changed (WnckWindow *window,
GdkPixbuf *pixbuf;
GdkPixbuf *lucent = NULL;
XfceTasklist *tasklist = child->tasklist;
+ gint icon_size;
panel_return_if_fail (XFCE_IS_TASKLIST (tasklist));
- panel_return_if_fail (XFCE_IS_PANEL_IMAGE (child->icon));
+ panel_return_if_fail (GTK_IS_WIDGET (child->icon));
panel_return_if_fail (WNCK_IS_WINDOW (window));
panel_return_if_fail (child->window == window);
@@ -2496,16 +2497,20 @@ xfce_tasklist_button_icon_changed (WnckWindow *window,
if (tasklist->minimized_icon_lucency == 0)
return;
+ icon_size = xfce_panel_plugin_get_icon_size (xfce_tasklist_get_panel_plugin (tasklist),
+ GTK_WIDGET (child->button));
/* get the window icon */
if (tasklist->show_labels)
pixbuf = wnck_window_get_mini_icon (window);
+ else if (icon_size <= 31)
+ pixbuf = wnck_window_get_mini_icon (window);
else
pixbuf = wnck_window_get_icon (window);
/* leave when there is no valid pixbuf */
if (G_UNLIKELY (pixbuf == NULL))
{
- xfce_panel_image_clear (XFCE_PANEL_IMAGE (child->icon));
+ gtk_image_clear (GTK_IMAGE (child->icon));
return;
}
@@ -2521,7 +2526,7 @@ xfce_tasklist_button_icon_changed (WnckWindow *window,
#endif
}
- xfce_panel_image_set_from_pixbuf (XFCE_PANEL_IMAGE (child->icon), pixbuf);
+ gtk_image_set_from_pixbuf (GTK_IMAGE (child->icon), pixbuf);
if (lucent != NULL && lucent != pixbuf)
g_object_unref (G_OBJECT (lucent));
@@ -2687,6 +2692,20 @@ xfce_tasklist_button_geometry_changed2 (WnckWindow *window,
+static gboolean
+xfce_tasklist_button_size_allocate (GtkWidget *widget,
+ GdkRectangle *allocation,
+ gpointer user_data)
+{
+ XfceTasklistChild *child = user_data;
+ /* Make sure the icons have the correct size */
+ xfce_tasklist_button_icon_changed (child->window, child);
+
+ return TRUE;
+}
+
+
+
#ifdef GDK_WINDOWING_X11
static void
xfce_tasklist_button_geometry_changed (WnckWindow *window,
@@ -2899,9 +2918,9 @@ xfce_tasklist_button_proxy_menu_item (XfceTasklistChild *child,
if (G_LIKELY (tasklist->menu_icon_size > 0))
{
- image = xfce_panel_image_new ();
+ image = gtk_image_new ();
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image);
- xfce_panel_image_set_size (XFCE_PANEL_IMAGE (image), tasklist->menu_icon_size);
+ gtk_image_set_pixel_size (GTK_IMAGE (image), tasklist->menu_icon_size);
g_object_bind_property (G_OBJECT (child->icon), "pixbuf",
G_OBJECT (image), "pixbuf",
G_BINDING_SYNC_CREATE);
@@ -3210,6 +3229,8 @@ xfce_tasklist_button_new (WnckWindow *window,
G_CALLBACK (xfce_tasklist_button_button_release_event), child);
/* monitor window changes */
+ g_signal_connect (G_OBJECT (child->button), "size-allocate",
+ G_CALLBACK (xfce_tasklist_button_size_allocate), child);
g_signal_connect (G_OBJECT (window), "icon-changed",
G_CALLBACK (xfce_tasklist_button_icon_changed), child);
g_signal_connect (G_OBJECT (window), "name-changed",
@@ -3569,9 +3590,9 @@ xfce_tasklist_group_button_icon_changed (WnckClassGroup *class_group,
pixbuf = wnck_class_group_get_icon (class_group);
if (G_LIKELY (pixbuf != NULL))
- xfce_panel_image_set_from_pixbuf (XFCE_PANEL_IMAGE (group_child->icon), pixbuf);
+ gtk_image_set_from_pixbuf (GTK_IMAGE (group_child->icon), pixbuf);
else
- xfce_panel_image_clear (XFCE_PANEL_IMAGE (group_child->icon));
+ gtk_image_clear (GTK_IMAGE (group_child->icon));
}
@@ -4069,4 +4090,3 @@ xfce_tasklist_update_monitor_geometry (XfceTasklist *tasklist)
tasklist, xfce_tasklist_update_monitor_geometry_idle_destroy);
}
}
-
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list