Author: nick
Date: 2007-10-25 18:23:36 +0000 (Thu, 25 Oct 2007)
New Revision: 26196
Modified:
xfce4-panel/trunk/plugins/tasklist/tasklist.c
xfce4-panel/trunk/plugins/tasklist/tasklist.h
Log:
* Force size on taskbar maybe that fixes the weird problem Jannis has.
Modified: xfce4-panel/trunk/plugins/tasklist/tasklist.c
===================================================================
--- xfce4-panel/trunk/plugins/tasklist/tasklist.c 2007-10-25 17:51:07 UTC
(rev 26195)
+++ xfce4-panel/trunk/plugins/tasklist/tasklist.c 2007-10-25 18:23:36 UTC
(rev 26196)
@@ -171,7 +171,6 @@
tasklist_plugin_new (XfcePanelPlugin *panel_plugin)
{
TasklistPlugin *tasklist;
- GtkWidget *alignment;
GdkScreen *screen;
gint screen_n;
@@ -204,14 +203,9 @@
/* set the icon theme */
tasklist->icon_theme = gtk_icon_theme_get_for_screen (screen);
- /* alignment to avoid streched buttons */
- alignment = gtk_alignment_new (0.00, 0.50, 0.00, 1.00);
- gtk_box_pack_start (GTK_BOX (tasklist->box), alignment, TRUE, TRUE, 0);
- gtk_widget_show (alignment);
-
/* create tasklist */
tasklist->list = wnck_tasklist_new (wnck_screen_get (screen_n));
- gtk_container_add (GTK_CONTAINER (alignment), tasklist->list);
+ gtk_box_pack_start (GTK_BOX (tasklist->box), tasklist->list, FALSE, FALSE,
0);
gtk_widget_show (tasklist->list);
/* set the tasklist settings */
@@ -315,11 +309,43 @@
requisition->width = size;
else
requisition->height = size;
+
+ /* save the requested size */
+ tasklist->req_size = size;
}
}
static void
+tasklist_plugin_size_allocate (TasklistPlugin *tasklist,
+ GtkAllocation *allocation)
+{
+ GtkOrientation orientation;
+ gint a_size, p_size;
+
+ /* get orientation */
+ orientation = xfce_panel_plugin_get_orientation (tasklist->panel_plugin);
+
+ /* get plugin size */
+ p_size = xfce_panel_plugin_get_size (tasklist->panel_plugin);
+
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ a_size = MIN (tasklist->req_size, allocation->width);
+ else
+ a_size = MIN (tasklist->req_size, allocation->height);
+
+ if (tasklist->show_handles)
+ a_size -= TASKLIST_HANDLE_SIZE;
+
+ /* force the size request of the taskbar */
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ gtk_widget_set_size_request (GTK_WIDGET (tasklist->list), a_size, p_size);
+ else
+ gtk_widget_set_size_request (GTK_WIDGET (tasklist->list), p_size, a_size);
+}
+
+
+static void
tasklist_plugin_read (TasklistPlugin *tasklist)
{
gchar *file;
@@ -441,6 +467,8 @@
G_CALLBACK (tasklist_plugin_size_changed),
tasklist);
g_signal_connect_swapped (G_OBJECT (panel_plugin), "size-request",
G_CALLBACK (tasklist_plugin_size_request),
tasklist);
+ g_signal_connect_swapped (G_OBJECT (panel_plugin), "size-allocate",
+ G_CALLBACK (tasklist_plugin_size_allocate),
tasklist);
g_signal_connect_swapped (G_OBJECT (panel_plugin), "save",
G_CALLBACK (tasklist_plugin_write), tasklist);
g_signal_connect_swapped (G_OBJECT (panel_plugin), "free-data",
Modified: xfce4-panel/trunk/plugins/tasklist/tasklist.h
===================================================================
--- xfce4-panel/trunk/plugins/tasklist/tasklist.h 2007-10-25 17:51:07 UTC
(rev 26195)
+++ xfce4-panel/trunk/plugins/tasklist/tasklist.h 2007-10-25 18:23:36 UTC
(rev 26196)
@@ -43,6 +43,9 @@
/* icon theme */
GtkIconTheme *icon_theme;
+ /* requested width */
+ gint req_size;
+
/* settings */
gint width;
WnckTasklistGroupingType grouping;
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits