Added an option to disable the window raise on alt-click. fonk.
authorScott Moynes <smoynes@nexus.carleton.ca>
Thu, 28 Nov 2002 02:42:42 +0000 (02:42 +0000)
committerScott Moynes <smoynes@nexus.carleton.ca>
Thu, 28 Nov 2002 02:42:42 +0000 (02:42 +0000)
CHANGELOG
nls/C/Configmenu.m
src/Configmenu.cc
src/Screen.cc
src/Screen.hh
src/Window.cc

index a2f2aef3cbcd9a61734fdcf6105e74439942bfae..368ee74c14401660a270dad2da82ce016ba220cd 100644 (file)
--- 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.
index 76dc9f39b74f33dd2704a4f6ccfb51dee76c94bc..f3fd312de1b4d9dc53e61870007013e86c8effa8 100644 (file)
@@ -12,6 +12,8 @@ $ #ImageDithering
 # Image Dithering
 $ #OpaqueMove
 # Opaque Window Moving
+$ #ModMove
+# Raise Window on Alt-Click Move
 $ #FullMax
 # Full Maximization
 $ #FocusNew
index fbb2c66a67567bf4fb3a7b711e847dc8eca137aa..4d4f91f1d376cd4e42492ca5133de4a8d67f2532 100644 (file)
@@ -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;
index 1bb0074441856a16a6f7acd2e12388a86142ae05..d79b30dc7f67583493e227baf18b4e8afdb8a63a 100644 (file)
@@ -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;
 
index c6044812897d0e09f9d8afa8a59f3d3637c839f1..202778a008330fd4555ac1e3ad73c38c96790f08 100644 (file)
@@ -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);
index 0c2d2185589db9d05ea9d08a964aa46c4e931de7..dafd2382e3db85dd2108880dfb1eb47947ad7b20 100644 (file)
@@ -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) &&