make root scrolling customizable

This commit is contained in:
Dana Jansens 2002-07-29 14:49:12 +00:00
parent 77c518f808
commit d86284c07b
2 changed files with 31 additions and 5 deletions

View 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) { void BScreen::save_rc(void) {
saveSloppyFocus(resource.sloppy_focus); saveSloppyFocus(resource.sloppy_focus);
saveAutoRaise(resource.auto_raise); saveAutoRaise(resource.auto_raise);
@ -572,6 +584,7 @@ void BScreen::save_rc(void) {
savePlaceIgnoreMaximized(resource.ignore_maximized); savePlaceIgnoreMaximized(resource.ignore_maximized);
saveAllowScrollLock(resource.allow_scroll_lock); saveAllowScrollLock(resource.allow_scroll_lock);
saveWorkspaceWarping(resource.workspace_warping); saveWorkspaceWarping(resource.workspace_warping);
saveRootScrollDirection(resource.root_scroll);
toolbar->save_rc(); toolbar->save_rc();
slit->save_rc(); slit->save_rc();
@ -707,13 +720,21 @@ void BScreen::load_rc(void) {
resource.ignore_maximized)) resource.ignore_maximized))
resource.ignore_maximized = true; resource.ignore_maximized = true;
if (! config->getValue(screenstr + "disableBindingsWithScrollLock", if (! config->getValue(screenstr + "disableBindingsWithScrollLock",
resource.allow_scroll_lock)) resource.allow_scroll_lock))
resource.allow_scroll_lock = false; resource.allow_scroll_lock = false;
if (! config->getValue(screenstr + "workspaceWarping", if (! config->getValue(screenstr + "workspaceWarping",
resource.workspace_warping)) resource.workspace_warping))
resource.workspace_warping = false; 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(); rootmenu->show();
} }
// mouse wheel up // 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) if (getCurrentWorkspaceID() >= getWorkspaceCount() - 1)
changeWorkspaceID(0); changeWorkspaceID(0);
else else
changeWorkspaceID(getCurrentWorkspaceID() + 1); changeWorkspaceID(getCurrentWorkspaceID() + 1);
// mouse wheel down // 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) if (getCurrentWorkspaceID() == 0)
changeWorkspaceID(getWorkspaceCount() - 1); changeWorkspaceID(getWorkspaceCount() - 1);
else else

View file

@ -154,7 +154,7 @@ private:
unsigned int workspaces; unsigned int workspaces;
int toolbar_placement, toolbar_width_percent, placement_policy, 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, unsigned int handle_width, bevel_width, frame_width, border_width,
resize_zones; resize_zones;
@ -196,6 +196,7 @@ public:
WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise, WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise,
WindowLower, WindowStick, WindowKill, SetStyle }; WindowLower, WindowStick, WindowKill, SetStyle };
enum FocusModel { SloppyFocus, ClickToFocus }; enum FocusModel { SloppyFocus, ClickToFocus };
enum RootScrollDirection { NoScroll, NormalScroll, ReverseScroll };
BScreen(Blackbox *bb, unsigned int scrn); BScreen(Blackbox *bb, unsigned int scrn);
~BScreen(void); ~BScreen(void);
@ -221,6 +222,7 @@ public:
inline bool allowScrollLock(void) const { return resource.allow_scroll_lock; } inline bool allowScrollLock(void) const { return resource.allow_scroll_lock; }
inline bool doWorkspaceWarping(void) const inline bool doWorkspaceWarping(void) const
{ return resource.workspace_warping; } { return resource.workspace_warping; }
inline int rootScrollDirection(void) const { return resource.root_scroll; }
inline const GC &getOpGC(void) const { return opGC; } inline const GC &getOpGC(void) const { return opGC; }
@ -294,6 +296,7 @@ public:
void savePlaceIgnoreMaximized(bool i); void savePlaceIgnoreMaximized(bool i);
void saveAllowScrollLock(bool a); void saveAllowScrollLock(bool a);
void saveWorkspaceWarping(bool w); void saveWorkspaceWarping(bool w);
void saveRootScrollDirection(int d);
inline void iconUpdate(void) { iconmenu->update(); } inline void iconUpdate(void) { iconmenu->update(); }
#ifdef HAVE_STRFTIME #ifdef HAVE_STRFTIME