? intltool-modules
? scroll-wheeling.patch
? applets/wncklet/.workspace-switcher.c.swp
Index: applets/wncklet/workspace-switcher.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/applets/wncklet/workspace-switcher.c,v
retrieving revision 1.62
diff -u -r1.62 workspace-switcher.c
--- applets/wncklet/workspace-switcher.c	11 Dec 2003 17:10:40 -0000	1.62
+++ applets/wncklet/workspace-switcher.c	31 Dec 2003 20:41:49 -0000
@@ -145,6 +145,43 @@
 		gtk_label_set_text (GTK_LABEL (pager->label_row_col), pager->orientation == GTK_ORIENTATION_HORIZONTAL ? _("rows") : _("columns"));	
 }
 
+static gboolean
+applet_scroll (PanelApplet *applet,
+               GdkEventScroll *event,
+               PagerData *pager)
+{
+    WnckScreen *screen = applet_get_screen (GTK_WIDGET (applet));
+    WnckWorkspace *active_workspace = wnck_screen_get_active_workspace (screen);
+    int workspace_index = wnck_workspace_get_number (active_workspace);
+    int workspace_count = wnck_screen_get_workspace_count (screen);
+    int new_index = workspace_index;
+    WnckWorkspace *new_workspace;
+    
+    if (event->type != GDK_SCROLL)
+        return FALSE;
+
+    switch (event->direction) {
+    case GDK_SCROLL_DOWN:
+    case GDK_SCROLL_RIGHT:
+        if (workspace_index < workspace_count)
+            new_index = workspace_index + 1;
+        break;
+
+    case GDK_SCROLL_UP:
+    case GDK_SCROLL_LEFT:
+        if (workspace_index > 0)
+            new_index = workspace_index - 1;
+        break;
+        
+    }
+
+    new_workspace = wnck_screen_get_workspace (screen, new_index);
+    if (new_workspace)
+        wnck_workspace_activate (new_workspace);
+
+    return TRUE;
+}
+
 static void 
 response_cb (GtkWidget *widget,
 	     int        id,
@@ -426,6 +463,10 @@
 			  "change_orient",
 			  G_CALLBACK (applet_change_orient),
 			  pager);
+        g_signal_connect (G_OBJECT (pager->applet),
+                          "scroll-event",
+                          G_CALLBACK (applet_scroll),
+                          pager);
 	
 	panel_applet_setup_menu_from_file (PANEL_APPLET (pager->applet),
 					   NULL,
