summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-09-09 22:09:38 +0000
committerDana Jansens <danakj@orodu.net>2002-09-09 22:09:38 +0000
commitce5313528ead2692adfdfb41cf5e65dafcc0bc64 (patch)
tree66ed31b7056952efaba5ced8215eb5c4476b3f1d /src
parent4128a7252dc09676a30861dba80a3d783a7b9f8c (diff)
bindable/disableable root/workspace menus
Diffstat (limited to 'src')
-rw-r--r--src/Screen.cc62
-rw-r--r--src/Screen.hh8
2 files changed, 66 insertions, 4 deletions
diff --git a/src/Screen.cc b/src/Screen.cc
index 3b75a94e..522a5be3 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -596,6 +596,32 @@ void BScreen::saveRootScrollDirection(int d) {
}
+void BScreen::saveRootMenuButton(unsigned int b) {
+ resource.root_menu_button = b;
+ const char *but;
+ switch (resource.root_menu_button) {
+ case 0: but = "None"; break;
+ case 1: but = "Left"; break;
+ case 2: but = "Middle"; break;
+ case 3: default: but = "Right"; break;
+ }
+ config->setValue(screenstr + "rootMenuButton", but);
+}
+
+
+void BScreen::saveWorkspaceMenuButton(unsigned int b) {
+ resource.workspace_menu_button = b;
+ const char *but;
+ switch (resource.workspace_menu_button) {
+ case 0: but = "None"; break;
+ case 1: but = "Left"; break;
+ case 2: default: but = "Middle"; break;
+ case 3: but = "Right"; break;
+ }
+ config->setValue(screenstr + "workspaceMenuButton", but);
+}
+
+
void BScreen::save_rc(void) {
saveSloppyFocus(resource.sloppy_focus);
saveAutoRaise(resource.auto_raise);
@@ -629,6 +655,8 @@ void BScreen::save_rc(void) {
saveAllowScrollLock(resource.allow_scroll_lock);
saveWorkspaceWarping(resource.workspace_warping);
saveRootScrollDirection(resource.root_scroll);
+ saveRootMenuButton(resource.root_menu_button);
+ saveWorkspaceMenuButton(resource.workspace_menu_button);
toolbar->save_rc();
slit->save_rc();
@@ -804,6 +832,29 @@ void BScreen::load_rc(void) {
else if (s == "Reverse")
resource.root_scroll = ReverseScroll;
}
+
+ resource.root_menu_button = 3;
+ if (config->getValue(screenstr + "rootMenuButton", s)) {
+ if (s == "None")
+ resource.root_menu_button = 0;
+ else if (s == "Left")
+ resource.root_menu_button = 1;
+ else if (s == "Middle")
+ resource.root_menu_button = 2;
+ }
+
+ resource.workspace_menu_button = 2;
+ if (config->getValue(screenstr + "workspaceMenuButton", s)) {
+ if (s == "None")
+ resource.workspace_menu_button = 0;
+ else if (s == "Left")
+ resource.workspace_menu_button = 1;
+ else if (s == "Right")
+ resource.workspace_menu_button = 3;
+ }
+ // cant both be the same
+ if (resource.workspace_menu_button == resource.root_menu_button)
+ resource.workspace_menu_button = 0;
}
@@ -2413,10 +2464,6 @@ void BScreen::buttonPressEvent(const XButtonEvent *xbutton) {
if (rootmenu->isVisible())
rootmenu->hide();
- } else if (xbutton->button == 2) {
- showWorkspaceMenu(xbutton->x_root, xbutton->y_root);
- } else if (xbutton->button == 3) {
- showRootMenu(xbutton->x_root, xbutton->y_root);
// mouse wheel up
} else if ((xbutton->button == 4 && resource.root_scroll == NormalScroll) ||
(xbutton->button == 5 && resource.root_scroll == ReverseScroll)) {
@@ -2432,6 +2479,13 @@ void BScreen::buttonPressEvent(const XButtonEvent *xbutton) {
else
changeWorkspaceID(getCurrentWorkspaceID() - 1);
}
+
+ if (resource.root_menu_button > 0 &&
+ xbutton->button == resource.root_menu_button)
+ showRootMenu(xbutton->x_root, xbutton->y_root);
+ else if (resource.workspace_menu_button > 0 &&
+ xbutton->button == resource.workspace_menu_button)
+ showWorkspaceMenu(xbutton->x_root, xbutton->y_root);
}
diff --git a/src/Screen.hh b/src/Screen.hh
index dee0a962..2511ae85 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -163,6 +163,8 @@ private:
unsigned int handle_width, bevel_width, frame_width, border_width,
resize_zones;
+ unsigned int root_menu_button, workspace_menu_button;
+
#ifdef HAVE_STRFTIME
std::string strftime_format;
#else // !HAVE_STRFTIME
@@ -231,6 +233,10 @@ public:
inline bool doWorkspaceWarping(void) const
{ return resource.workspace_warping; }
inline int rootScrollDirection(void) const { return resource.root_scroll; }
+ inline unsigned int rootMenuButton(void) const
+ { return resource.root_menu_button; }
+ inline unsigned int workspaceMenuButton(void) const
+ { return resource.workspace_menu_button; }
inline const GC &getOpGC(void) const { return opGC; }
@@ -313,6 +319,8 @@ public:
void saveAllowScrollLock(bool a);
void saveWorkspaceWarping(bool w);
void saveRootScrollDirection(int d);
+ void saveRootMenuButton(unsigned int b);
+ void saveWorkspaceMenuButton(unsigned int b);
inline void iconUpdate(void) { iconmenu->update(); }
#ifdef HAVE_STRFTIME