diff -u gnome-panel-2.26.2.orig/applets/wncklet/window-list.c gnome-panel-2.26.2/applets/wncklet/window-list.c
--- gnome-panel-2.26.2.orig/applets/wncklet/window-list.c 2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.26.2/applets/wncklet/window-list.c 2009-07-08 22:16:04.000000000 +0200
@@ -35,6 +35,7 @@
GtkWidget *tasklist;
gboolean include_all_workspaces;
+ gboolean scroll_enabled;
WnckTasklistGroupingType grouping;
gboolean move_unminimized_windows;
@@ -53,11 +54,12 @@
GtkWidget *minimized_windows_label;
GtkWidget *move_minimized_radio;
GtkWidget *change_workspace_radio;
+ GtkWidget *enable_scroll_check;
GtkWidget *about;
/* gconf listeners id */
- guint listeners [3];
+ guint listeners [4];
} TasklistData;
static void display_properties_dialog (BonoboUIComponent *uic,
@@ -85,6 +87,8 @@
tasklist->grouping);
wnck_tasklist_set_include_all_workspaces (WNCK_TASKLIST (tasklist->tasklist),
tasklist->include_all_workspaces);
+ wnck_tasklist_set_scroll_enabled (WNCK_TASKLIST (tasklist->tasklist),
+ tasklist->scroll_enabled);
wnck_tasklist_set_switch_workspace_on_unminimize (WNCK_TASKLIST (tasklist->tasklist),
tasklist->move_unminimized_windows);
}
@@ -176,12 +180,14 @@
gconf_client_notify_remove (client, tasklist->listeners[0]);
gconf_client_notify_remove (client, tasklist->listeners[1]);
gconf_client_notify_remove (client, tasklist->listeners[2]);
+ gconf_client_notify_remove (client, tasklist->listeners[3]);
g_object_unref (G_OBJECT (client));
tasklist->listeners[0] = 0;
tasklist->listeners[1] = 0;
tasklist->listeners[2] = 0;
+ tasklist->listeners[3] = 0;
if (tasklist->properties_dialog)
gtk_widget_destroy (tasklist->properties_dialog);
@@ -243,6 +249,34 @@
tasklist_properties_update_content_radio (tasklist);
}
+static void
+tasklist_properties_update_scroll (TasklistData *tasklist)
+{
+ if (tasklist->enable_scroll_check == NULL)
+ return;
+
+ gtk_toggle_button_set_active(tasklist->enable_scroll_check, tasklist->scroll_enabled);
+}
+
+static void
+scroll_enabled_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ TasklistData *tasklist)
+{
+ gboolean value;
+
+ if (!entry->value || entry->value->type != GCONF_VALUE_BOOL)
+ return;
+
+ value = gconf_value_get_bool (entry->value);
+
+ tasklist->scroll_enabled = (value != 0);
+ tasklist_update (tasklist);
+
+ tasklist_properties_update_scroll(tasklist);
+}
+
static WnckTasklistGroupingType
get_grouping_type (GConfValue *value)
{
@@ -387,6 +421,15 @@
NULL, NULL);
g_free (key);
+ key = panel_applet_gconf_get_full_key (PANEL_APPLET (tasklist->applet),
+ "scroll_enabled");
+ tasklist->listeners[3] = gconf_client_notify_add(client, key,
+ (GConfClientNotifyFunc)scroll_enabled_changed,
+ tasklist,
+ NULL, NULL);
+ g_free (key);
+
+
g_object_unref (G_OBJECT (client));
}
@@ -487,6 +530,13 @@
}
error = NULL;
+ tasklist->scroll_enabled = panel_applet_gconf_get_bool (applet, "scroll_enabled", &error);
+ if (error) {
+ g_error_free (error);
+ tasklist->scroll_enabled = FALSE; /* Default value */
+ }
+
+ error = NULL;
tasklist->grouping = -1;
value = panel_applet_gconf_get_value (applet, "group_windows", &error);
if (error) {
@@ -650,6 +700,16 @@
}
static void
+enable_scroll_toggled (GtkCheckButton *button,
+ TasklistData *tasklist)
+{
+ panel_applet_gconf_set_bool (PANEL_APPLET (tasklist->applet),
+ "scroll_enabled",
+ gtk_toggle_button_get_active (button),
+ NULL);
+}
+
+static void
setup_sensitivity (TasklistData *tasklist,
GConfClient *client,
GladeXML *xml,
@@ -700,6 +760,7 @@
tasklist->show_current_radio = WID ("show_current_radio");
tasklist->show_all_radio = WID ("show_all_radio");
+ tasklist->enable_scroll_check = WID ("enable_scroll_check");
setup_sensitivity (tasklist, client, xml,
"show_current_radio",
@@ -753,6 +814,10 @@
tasklist_properties_update_content_radio (tasklist);
g_signal_connect (G_OBJECT (tasklist->show_all_radio), "toggled",
(GCallback) display_all_workspaces_toggled, tasklist);
+
+ tasklist_properties_update_scroll (tasklist);
+ g_signal_connect (G_OBJECT (tasklist->enable_scroll_check), "toggled",
+ (GCallback) enable_scroll_toggled, tasklist);
g_signal_connect_swapped (WID ("done_button"), "clicked",
(GCallback) gtk_widget_hide,
diff -u gnome-panel-2.26.2.orig/applets/wncklet/window-list.glade gnome-panel-2.26.2/applets/wncklet/window-list.glade
--- gnome-panel-2.26.2.orig/applets/wncklet/window-list.glade 2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.26.2/applets/wncklet/window-list.glade 2009-07-08 21:27:57.000000000 +0200
@@ -1,279 +1,437 @@
-
-
-
+
+
+
-
- 5
- Window List Preferences
- GDK_WINDOW_TYPE_HINT_NORMAL
- False
-
-
- True
- 2
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- 18
-
-
- True
- 6
-
-
- True
- 0
- <b>Window List Content</b>
- True
-
-
- False
- False
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- 6
-
-
- True
- True
- Sh_ow windows from current workspace
- True
- 0
- True
-
-
- False
- False
-
-
-
-
- True
- True
- Show windows from a_ll workspaces
- True
- 0
- True
- show_current_radio
-
-
- False
- False
- 1
-
-
-
-
-
-
- 1
-
-
-
-
- False
-
-
-
-
- True
- 6
-
-
- True
- 0
- <b>Window Grouping</b>
- True
-
-
- False
- False
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- 6
-
-
- True
- True
- _Never group windows
- True
- 0
- True
-
-
- False
- False
-
-
-
-
- True
- True
- Group windows when _space is limited
- True
- 0
- True
- never_group_radio
-
-
- False
- False
- 1
-
-
-
-
- True
- True
- _Always group windows
- True
- 0
- True
- never_group_radio
-
-
- False
- False
- 2
-
-
-
-
-
-
- 1
-
-
-
-
- False
- 1
-
-
-
-
- True
- 6
-
-
- True
- 0
- <b>Restoring Minimized Windows</b>
- True
-
-
- False
- False
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 12
-
-
- True
- 6
-
-
- True
- True
- Restore to current _workspace
- True
- 0
- True
-
-
- False
- False
-
-
-
-
- True
- True
- Restore to na_tive workspace
- True
- 0
- True
- move_minimized_radio
-
-
- False
- False
- 1
-
-
-
-
-
-
- 1
-
-
-
-
- False
- 2
-
-
-
-
-
-
- True
- GTK_BUTTONBOX_END
-
-
- True
- True
- True
- gtk-help
- True
- -11
-
-
-
-
- True
- True
- True
- True
- gtk-close
- True
- 0
-
-
- 1
-
-
-
-
- False
- GTK_PACK_END
- 1
-
-
-
-
-
+
+
+ 5
+ Window List Preferences
+ GTK_WINDOW_TOPLEVEL
+ GTK_WIN_POS_NONE
+ False
+ True
+ False
+ True
+ False
+ False
+ GDK_WINDOW_TYPE_HINT_NORMAL
+ GDK_GRAVITY_NORTH_WEST
+ True
+ False
+ False
+
+
+
+ True
+ False
+ 2
+
+
+
+ 5
+ True
+ False
+ 18
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ <b>Window List Content</b>
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ 0.5
+ 0.5
+ 1
+ 1
+ 0
+ 0
+ 12
+ 0
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ True
+ Sh_ow windows from current workspace
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ True
+ Show windows from a_ll workspaces
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+ show_current_radio
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ True
+ Enable scrolling
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+
+
+ 0
+ False
+ False
+
+
+
+
+
+
+ 0
+ True
+ True
+
+
+
+
+ 0
+ False
+ True
+
+
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ <b>Window Grouping</b>
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ 0.5
+ 0.5
+ 1
+ 1
+ 0
+ 0
+ 12
+ 0
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ True
+ _Never group windows
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ True
+ Group windows when _space is limited
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+ never_group_radio
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ True
+ _Always group windows
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+ never_group_radio
+
+
+ 0
+ False
+ False
+
+
+
+
+
+
+ 0
+ True
+ True
+
+
+
+
+ 0
+ False
+ True
+
+
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ <b>Restoring Minimized Windows</b>
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0
+ 0.5
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ 0.5
+ 0.5
+ 1
+ 1
+ 0
+ 0
+ 12
+ 0
+
+
+
+ True
+ False
+ 6
+
+
+
+ True
+ True
+ Restore to current _workspace
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+
+
+ 0
+ False
+ False
+
+
+
+
+
+ True
+ True
+ Restore to na_tive workspace
+ True
+ GTK_RELIEF_NORMAL
+ True
+ False
+ False
+ True
+ move_minimized_radio
+
+
+ 0
+ False
+ False
+
+
+
+
+
+
+ 0
+ True
+ True
+
+
+
+
+ 0
+ False
+ True
+
+
+
+
+ 0
+ True
+ True
+
+
+
+
+
+ True
+ GTK_BUTTONBOX_END
+
+
+
+ True
+ True
+ True
+ gtk-help
+ True
+ GTK_RELIEF_NORMAL
+ True
+ -11
+
+
+
+
+
+ True
+ True
+ True
+ True
+ gtk-close
+ True
+ GTK_RELIEF_NORMAL
+ True
+ 0
+
+
+
+
+ 0
+ False
+ True
+ GTK_PACK_END
+
+
+
+
+
+
Endast i gnome-panel-2.26.2/applets/wncklet/: window-list.gladep
diff -u gnome-panel-2.26.2.orig/applets/wncklet/window-list.schemas.in gnome-panel-2.26.2/applets/wncklet/window-list.schemas.in
--- gnome-panel-2.26.2.orig/applets/wncklet/window-list.schemas.in 2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.26.2/applets/wncklet/window-list.schemas.in 2009-07-08 21:07:07.000000000 +0200
@@ -16,6 +16,20 @@
+ /schemas/apps/window_list_applet/prefs/scroll_enabled
+ window-list-applet
+ bool
+ false
+
+ Enables scrolling in tasklist
+
+ If true, scrolling over the tasklist switches to the next/previous
+ application.
+
+
+
+
+
/schemas/apps/window_list_applet/prefs/group_windows
window-list-applet
string