From e42234c883e080d00a9886fc273a37abfa52f7f6 Mon Sep 17 00:00:00 2001 From: Scott Moynes Date: Thu, 28 Nov 2002 02:42:42 +0000 Subject: [PATCH] Added an option to disable the window raise on alt-click. fonk. --- CHANGELOG | 3 +++ nls/C/Configmenu.m | 2 ++ src/Configmenu.cc | 31 +++++++++++++++++++------------ src/Screen.cc | 9 +++++++++ src/Screen.hh | 4 +++- src/Window.cc | 5 +++-- 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a2f2aef3..368ee74c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,8 @@ Changelog for Openbox: +2.2.2: + * Add an option to disable the window raise on an (Scott Moynes) + alt-click 2.2.1: * Make configure look for Xft version 2 libraries and (Ben Jansens) use them if they are available. diff --git a/nls/C/Configmenu.m b/nls/C/Configmenu.m index 76dc9f39..f3fd312d 100644 --- a/nls/C/Configmenu.m +++ b/nls/C/Configmenu.m @@ -12,6 +12,8 @@ $ #ImageDithering # Image Dithering $ #OpaqueMove # Opaque Window Moving +$ #ModMove +# Raise Window on Alt-Click Move $ #FullMax # Full Maximization $ #FocusNew diff --git a/src/Configmenu.cc b/src/Configmenu.cc index fbb2c66a..4d4f91f1 100644 --- a/src/Configmenu.cc +++ b/src/Configmenu.cc @@ -67,18 +67,20 @@ Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { "Image Dithering"), 1); insert(i18n(ConfigmenuSet, ConfigmenuOpaqueMove, "Opaque Window Moving"), 2); + insert(i18n(ConfigmenuSet, ConfigmenuModMove, + "Raise Window on Alt-Click Move"), 3); insert(i18n(ConfigmenuSet, ConfigmenuWorkspaceWarping, - "Workspace Warping"), 3); + "Workspace Warping"), 4); insert(i18n(ConfigmenuSet, ConfigmenuFullMax, - "Full Maximization"), 4); + "Full Maximization"), 5); insert(i18n(ConfigmenuSet, ConfigmenuFocusNew, - "Focus New Windows"), 5); + "Focus New Windows"), 6); insert(i18n(ConfigmenuSet, ConfigmenuFocusLast, - "Focus Last Window on Workspace"), 6); + "Focus Last Window on Workspace"), 7); insert(i18n(ConfigmenuSet, ConfigmenuDisableBindings, - "Disable Mouse with Scroll Lock"), 7); + "Disable Mouse with Scroll Lock"), 8); insert(i18n(ConfigmenuSet, ConfigmenuHideToolbar, - "Hide Toolbar"), 8); + "Hide Toolbar"), 9); update(); setValues(); } @@ -94,6 +96,7 @@ void Configmenu::setValues(void) { #endif // XFT setItemSelected(index++, getScreen()->doImageDither()); setItemSelected(index++, getScreen()->doOpaqueMove()); + setItemSelected(index++, getScreen()->doRaiseOnMove()); setItemSelected(index++, getScreen()->doWorkspaceWarping()); setItemSelected(index++, getScreen()->doFullMax()); setItemSelected(index++, getScreen()->doFocusNew()); @@ -137,33 +140,37 @@ void Configmenu::itemSelected(int button, unsigned int index) { setItemSelected(index, getScreen()->doOpaqueMove()); break; - case 3: // workspace wrapping + case 3: // raise on alt-move + getScreen()->saveRaiseOnMove(! getScreen()->doRaiseOnMove()); + setItemSelected(index, getScreen()->doRaiseOnMove()); + + case 4: // workspace wrapping getScreen()->saveWorkspaceWarping(! getScreen()->doWorkspaceWarping()); setItemSelected(index, getScreen()->doWorkspaceWarping()); break; - case 4: // full maximization + case 5: // full maximization getScreen()->saveFullMax(! getScreen()->doFullMax()); setItemSelected(index, getScreen()->doFullMax()); break; - case 5: // focus new windows + case 6: // focus new windows getScreen()->saveFocusNew(! getScreen()->doFocusNew()); setItemSelected(index, getScreen()->doFocusNew()); break; - case 6: // focus last window on workspace + case 7: // focus last window on workspace getScreen()->saveFocusLast(! getScreen()->doFocusLast()); setItemSelected(index, getScreen()->doFocusLast()); break; - case 7: // disable mouse bindings with Scroll Lock + case 8: // disable mouse bindings with Scroll Lock getScreen()->saveAllowScrollLock(! getScreen()->allowScrollLock()); setItemSelected(index, getScreen()->allowScrollLock()); getScreen()->reconfigure(); break; - case 8: // hide toolbar + case 9: // hide toolbar getScreen()->saveHideToolbar(! getScreen()->doHideToolbar()); setItemSelected(index, getScreen()->doHideToolbar()); break; diff --git a/src/Screen.cc b/src/Screen.cc index 1bb00744..d79b30dc 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -408,6 +408,11 @@ void BScreen::saveOpaqueMove(bool o) { config->setValue(screenstr + "opaqueMove", resource.opaque_move); } +void BScreen::saveRaiseOnMove(bool r) { + resource.raise_on_move = r; + config->setValue(screenstr + "raiseOnAltMove", resource.raise_on_move); +} + void BScreen::saveFullMax(bool f) { resource.full_max = f; @@ -657,6 +662,7 @@ void BScreen::save_rc(void) { saveAAFonts(resource.aa_fonts); saveResizeZones(resource.resize_zones); saveOpaqueMove(resource.opaque_move); + saveRaiseOnMove(resource.raise_on_move); saveFullMax(resource.full_max); saveFocusNew(resource.focus_new); saveFocusLast(resource.focus_last); @@ -709,6 +715,9 @@ void BScreen::load_rc(void) { if (! config->getValue(screenstr + "opaqueMove", resource.opaque_move)) resource.opaque_move = false; + if (! config->getValue(screenstr + "raiseOnAltMove", resource.raise_on_move)) + resource.raise_on_move = true; + if (! config->getValue(screenstr + "antialiasFonts", resource.aa_fonts)) resource.aa_fonts = true; diff --git a/src/Screen.hh b/src/Screen.hh index c6044812..202778a0 100644 --- a/src/Screen.hh +++ b/src/Screen.hh @@ -165,7 +165,7 @@ private: MenuStyle mstyle; bool sloppy_focus, auto_raise, auto_edge_balance, ordered_dither, - opaque_move, full_max, focus_new, focus_last, click_raise, + opaque_move, raise_on_move, full_max, focus_new, focus_last, click_raise, allow_scroll_lock, hide_toolbar, window_corner_snap, aa_fonts, ignore_shaded, ignore_maximized, workspace_warping, shadow_fonts; @@ -245,6 +245,7 @@ public: inline bool doImageDither(void) const { return image_control->doDither(); } inline bool doOrderedDither(void) const { return resource.ordered_dither; } inline bool doOpaqueMove(void) const { return resource.opaque_move; } + inline bool doRaiseOnMove(void) const { return resource.raise_on_move; } inline bool doFullMax(void) const { return resource.full_max; } inline bool doFocusNew(void) const { return resource.focus_new; } inline bool doFocusLast(void) const { return resource.focus_last; } @@ -332,6 +333,7 @@ public: void saveShadowFonts(bool f); void saveAAFonts(bool f); void saveOpaqueMove(bool o); + void saveRaiseOnMove(bool r); void saveFullMax(bool f); void saveFocusNew(bool f); void saveFocusLast(bool f); diff --git a/src/Window.cc b/src/Window.cc index 0c2d2185..dafd2382 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -3139,8 +3139,9 @@ void BlackboxWindow::buttonPressEvent(const XButtonEvent *be) { } if (windowmenu && windowmenu->isVisible()) windowmenu->hide(); - - screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this); + + if ( (be->state == mod_mask && getScreen()->doRaiseOnMove())) + screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this); } } else if (be->button == 2 && (be->window != frame.iconify_button) && (be->window != frame.close_button) && -- 2.34.1