make root scrolling customizable
This commit is contained in:
parent
77c518f808
commit
d86284c07b
2 changed files with 31 additions and 5 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue