]> Dogcows Code - chaz/openbox/commitdiff
clicks on the client work as they should
authorDana Jansens <danakj@orodu.net>
Fri, 3 Jan 2003 06:05:08 +0000 (06:05 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 3 Jan 2003 06:05:08 +0000 (06:05 +0000)
src/actions.cc
src/backgroundwidget.cc
src/bindings.cc

index 27f4ccae28c54c2e004be90348e7d2b17552aa48..79b9fc410dd85a131cad9ec1a84d5094b8e52e41 100644 (file)
@@ -45,7 +45,6 @@ void OBActions::insertPress(const XButtonEvent &e)
 
   OBClient *c = Openbox::instance->findClient(e.window);
   if (c) a->clientarea = c->area();
-  printf("press %d x:%d y:%d winx:%d winy:%d\n", e.button, e.x_root, e.y_root, c->area().x(), c->area().y());
 }
 
 void OBActions::removePress(const XButtonEvent &e)
@@ -202,8 +201,6 @@ void OBActions::motionHandler(const XMotionEvent &e)
   unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
                                   Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
   unsigned int button = _posqueue[0]->button;
-  printf("motion %d x:%d y:%d winx:%d winy:%d\n", button, x_root, y_root,
-         _posqueue[0]->clientarea.x(), _posqueue[0]->clientarea.y());
   MotionData *data = new_motion_data(e.window, e.time, state, button,
                                      w->mcontext(), MouseMotion,
                                      x_root, y_root, _posqueue[0]->pos,
index b3649435c6a632ea5dce68d5d952d1da42dd130d..3d4bb2f2bfbc61660a40e1afbb225659a968ff4c 100644 (file)
@@ -114,7 +114,8 @@ void OBBackgroundWidget::grabButtons(bool grab)
 
 void OBBackgroundWidget::buttonPressHandler(const XButtonEvent &e)
 {
-  XAllowEvents(otk::OBDisplay::display, ReplayPointer, e.time);
+  if (type() == OBWidget::Type_Plate)
+    XAllowEvents(otk::OBDisplay::display, ReplayPointer, e.time);
 }
 
 }
index 1db4886b88dc963565f56b3f609857fc40e060eb..da3ff39bc9ae5eb972a60c5ce7a44fae11614893 100644 (file)
@@ -414,46 +414,30 @@ bool OBBindings::addButton(const std::string &but, MouseContext context,
 void OBBindings::grabButtons(bool grab, OBClient *client)
 {
   for (int i = 0; i < NUM_MOUSE_CONTEXT; ++i) {
-    Window win[3] = {0, 0, 0}; // at most 2 windows
+    Window win;
+    int mode = GrabModeAsync;
     switch (i) {
     case MC_Frame:
-      win[0] = client->frame->window();
-      break;
-    case MC_Titlebar:
-      win[0] = client->frame->titlebar();
-      win[1] = client->frame->label();
+      win = client->frame->window();
       break;
     case MC_Window:
-      win[0] = client->frame->plate();
-      break;
-    case MC_Handle:
-      win[0] = client->frame->handle();
-      break;
-    case MC_MaximizeButton:
-    case MC_CloseButton:
-    case MC_IconifyButton:
-    case MC_StickyButton: 
-    case MC_Grip:
-    case MC_Root:
-    case MC_MenuItem:
+      win = client->frame->plate();
+      mode = GrabModeSync; // this is handled in the plate's buttonPressHandler
       break;
     default:
-      assert(false); // invalid mouse context
+      continue;
     }
     ButtonBindingList::iterator it, end = _buttons[i].end();
     for (it = _buttons[i].begin(); it != end; ++it)
-      for (Window *w = win; *w; ++w) {
-        if (grab) {
-          otk::OBDisplay::grabButton((*it)->binding.key,
-                                     (*it)->binding.modifiers, *w, false,
-                                     ButtonPressMask | ButtonMotionMask |
-                                     ButtonReleaseMask, GrabModeAsync,
-                                     GrabModeAsync, None, None, false);
-        }
-        else
-          otk::OBDisplay::ungrabButton((*it)->binding.key,
-                                       (*it)->binding.modifiers, *w);
-    }
+      if (grab)
+        otk::OBDisplay::grabButton((*it)->binding.key,
+                                   (*it)->binding.modifiers, win, false,
+                                   ButtonPressMask | ButtonMotionMask |
+                                   ButtonReleaseMask, mode, GrabModeAsync,
+                                   None, None, false);
+      else
+        otk::OBDisplay::ungrabButton((*it)->binding.key,
+                                     (*it)->binding.modifiers, win);
   }
 }
 
This page took 0.025557 seconds and 4 git commands to generate.