summaryrefslogtreecommitdiff
path: root/src/openbox.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-04-28 12:12:24 +0000
committerDana Jansens <danakj@orodu.net>2002-04-28 12:12:24 +0000
commit8ef0610e9056613eeb1988dde95d252bc0988883 (patch)
treeaae324539ea3e2d10f8a97c20e8ccb43399a47b7 /src/openbox.cc
parent830e53f25cb8e48b50c8404b32e36708d335decc (diff)
added ClickMouse window placement policy
Diffstat (limited to 'src/openbox.cc')
-rw-r--r--src/openbox.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/openbox.cc b/src/openbox.cc
index cfdb6e9b..99d623e5 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -479,9 +479,19 @@ void Openbox::process_event(XEvent *e) {
if (! win)
win = new OpenboxWindow(*this, e->xmaprequest.window);
- if ((win = searchWindow(e->xmaprequest.window)))
+ if ((win = searchWindow(e->xmaprequest.window))) {
win->mapRequestEvent(&e->xmaprequest);
-
+ // if we're using the click to place placement type, then immediately
+ // after the window is mapped, we need to start interactively moving it
+ if (win->getScreen()->placementPolicy() == BScreen::ClickMousePlacement) {
+ int x, y, rx, ry;
+ Window c, r;
+ unsigned int m;
+ XQueryPointer(getXDisplay(), win->getScreen()->getRootWindow(),
+ &r, &c, &rx, &ry, &x, &y, &m);
+ win->startMove(rx, ry);
+ }
+ }
break;
}