all repos — openbox @ d86284c07b29817b93db1875fa1430d221b94a63

openbox fork - make it a bit more like ryudo

make root scrolling customizable
Dana Jansens danakj@orodu.net
commit

d86284c07b29817b93db1875fa1430d221b94a63

parent

77c518f8088dfae042f96f4f6424232e6400de40

2 files changed, 31 insertions(+), 5 deletions(-)

jump to
M src/Screen.ccsrc/Screen.cc

@@ -544,6 +544,18 @@ resource.workspace_warping);

} +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 @@ savePlaceIgnoreShaded(resource.ignore_shaded);

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 @@ if (! config->getValue(screenstr + "placementIgnoreMaximized",

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 @@ blackbox->checkMenu();

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
M src/Screen.hhsrc/Screen.hh

@@ -154,7 +154,7 @@ BColor border_color;

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 @@ enum { Restart = 1, RestartOther, Exit, Shutdown, Execute, Reconfigure,

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 @@ { return resource.window_corner_snap; }

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 @@ void savePlaceIgnoreShaded(bool i);

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