]> Dogcows Code - chaz/openbox/commitdiff
make root scrolling customizable
authorDana Jansens <danakj@orodu.net>
Mon, 29 Jul 2002 14:49:12 +0000 (14:49 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 29 Jul 2002 14:49:12 +0000 (14:49 +0000)
src/Screen.cc
src/Screen.hh

index d11894cebe70c6c340110d602b22977f6123df98..d03fa50e6415d73cd19cc7cbd85be6b427f5de5e 100644 (file)
@@ -544,6 +544,18 @@ void BScreen::saveWorkspaceWarping(bool w) {
 }
 
 
+void BScreen::saveRootScrollDirection(int d) {
+  resource.root_scroll = d;
+  const char *dir;
+  switch (resource.root_scroll) {
+  case NoScroll: dir = "None"; break;
+  case ReverseScroll: dir = "Reverse"; break;
+  case NormalScroll: default: dir = "Normal"; break;
+  }
+  config->setValue(screenstr + "rootScrollDirection", dir);
+}
+
+
 void BScreen::save_rc(void) {
   saveSloppyFocus(resource.sloppy_focus);
   saveAutoRaise(resource.auto_raise);
@@ -572,6 +584,7 @@ void BScreen::save_rc(void) {
   savePlaceIgnoreMaximized(resource.ignore_maximized);
   saveAllowScrollLock(resource.allow_scroll_lock);
   saveWorkspaceWarping(resource.workspace_warping);
+  saveRootScrollDirection(resource.root_scroll);
 
   toolbar->save_rc();
   slit->save_rc();
@@ -707,13 +720,21 @@ void BScreen::load_rc(void) {
                          resource.ignore_maximized))
     resource.ignore_maximized = true;
 
-if (! config->getValue(screenstr + "disableBindingsWithScrollLock",
+  if (! config->getValue(screenstr + "disableBindingsWithScrollLock",
                        resource.allow_scroll_lock))
-  resource.allow_scroll_lock = false;
+    resource.allow_scroll_lock = false;
 
   if (! config->getValue(screenstr + "workspaceWarping",
                          resource.workspace_warping))
     resource.workspace_warping = false;
+
+  resource.root_scroll = NormalScroll;
+  if (config->getValue(screenstr + "rootScrollDirection", s)) {
+    if (s == "None")
+      resource.root_scroll = NoScroll;
+    else if (s == "Reverse")
+      resource.root_scroll = ReverseScroll;
+  }
 }
 
 
@@ -2242,13 +2263,15 @@ void BScreen::buttonPressEvent(const XButtonEvent *xbutton) {
       rootmenu->show();
     }
   // mouse wheel up
-  } else if (xbutton->button == 4) {
+  } else if ((xbutton->button == 4 && resource.root_scroll == NormalScroll) ||
+             (xbutton->button == 5 && resource.root_scroll == ReverseScroll)) {
     if (getCurrentWorkspaceID() >= getWorkspaceCount() - 1)
       changeWorkspaceID(0);
     else
       changeWorkspaceID(getCurrentWorkspaceID() + 1);
   // mouse wheel down
-  } else if (xbutton->button == 5) {
+  } else if ((xbutton->button == 5 && resource.root_scroll == NormalScroll) ||
+             (xbutton->button == 4 && resource.root_scroll == ReverseScroll)) {
     if (getCurrentWorkspaceID() == 0)
       changeWorkspaceID(getWorkspaceCount() - 1);
     else
index 12cd960db07751490f7c4a07e8a96f538d3e32a9..2fbf20fd1414406c7bfc34450a5bff2ea4dcf2b6 100644 (file)
@@ -154,7 +154,7 @@ private:
 
     unsigned int workspaces;
     int toolbar_placement, toolbar_width_percent, placement_policy,
-      edge_snap_threshold, row_direction, col_direction;
+      edge_snap_threshold, row_direction, col_direction, root_scroll;
 
     unsigned int handle_width, bevel_width, frame_width, border_width,
       resize_zones;
@@ -196,6 +196,7 @@ public:
          WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise,
          WindowLower, WindowStick, WindowKill, SetStyle };
   enum FocusModel { SloppyFocus, ClickToFocus };
+  enum RootScrollDirection { NoScroll, NormalScroll, ReverseScroll };
 
   BScreen(Blackbox *bb, unsigned int scrn);
   ~BScreen(void);
@@ -221,6 +222,7 @@ public:
   inline bool allowScrollLock(void) const { return resource.allow_scroll_lock; }
   inline bool doWorkspaceWarping(void) const
     { return resource.workspace_warping; }
+  inline int rootScrollDirection(void) const { return resource.root_scroll; }
 
   inline const GC &getOpGC(void) const { return opGC; }
 
@@ -294,6 +296,7 @@ public:
   void savePlaceIgnoreMaximized(bool i);
   void saveAllowScrollLock(bool a);
   void saveWorkspaceWarping(bool w);
+  void saveRootScrollDirection(int d);
   inline void iconUpdate(void) { iconmenu->update(); }
 
 #ifdef    HAVE_STRFTIME
This page took 0.027079 seconds and 4 git commands to generate.