Funner mousebindings for the dock.
authorMikael Magnusson <mikachu@comhem.se>
Mon, 23 Jul 2007 23:58:17 +0000 (01:58 +0200)
committerMikael Magnusson <mikachu@comhem.se>
Thu, 26 Jul 2007 19:11:10 +0000 (21:11 +0200)
  Scrolling changes desktops.
  Button 8 does desktop to=last.

openbox/event.c

index 8bc9fc20d334a7655002cbb430f7cbea89ec2b2e..a75de7cc239b4dada4aa96bc5ed9f249e81f9519 100644 (file)
@@ -1546,10 +1546,27 @@ static void event_handle_dock(ObDock *s, XEvent *e)
 {
     switch (e->type) {
     case ButtonPress:
-        if (e->xbutton.button == 1)
-            stacking_raise(DOCK_AS_WINDOW(s));
-        else if (e->xbutton.button == 2)
-            stacking_lower(DOCK_AS_WINDOW(s));
+        switch (e->xbutton.button) {
+            case 1:
+                stacking_raise(DOCK_AS_WINDOW(s));
+                break;
+            case 2:
+                stacking_lower(DOCK_AS_WINDOW(s));
+                break;
+            case 4:
+                screen_set_desktop(
+                        screen_cycle_desktop(OB_DIRECTION_WEST, TRUE, TRUE,
+                                             FALSE, TRUE, FALSE), TRUE);
+                break;
+            case 5:
+                screen_set_desktop(
+                        screen_cycle_desktop(OB_DIRECTION_EAST, TRUE, TRUE,
+                                             FALSE, TRUE, FALSE), TRUE);
+                break;
+            case 8:
+                screen_set_desktop(screen_last_desktop, TRUE);
+                break;
+        }
         break;
     case EnterNotify:
         dock_hide(FALSE);