summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-01 05:02:26 +0000
committerDana Jansens <danakj@orodu.net>2007-05-01 05:02:26 +0000
commitcad10d8b6db8cb2be9802cea8e0c4db210431d50 (patch)
tree9f1d06468251e710e058f3a1227df87748694188 /openbox/client.c
parent20e5555ec42585a662b8045a345c6741faf7199c (diff)
some old changes to grav.c test, it wasn't a valid test before.
when a window gets reconfigured, try keep it on the monitor if it was before.
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 6b8635be..4abff4c5 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -754,8 +754,6 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
Rect *a;
gint ox = *x, oy = *y;
- /* XXX figure out if it is on screen now, and be rude if it is */
-
/* get where the frame would be */
frame_client_gravity(self->frame, x, y, w, h);
@@ -781,6 +779,15 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
*y = a->y - self->frame->area.width*9/10;
}
+ /* If rudeness wasn't requested, then figure out of the client is currently
+ entirely on the screen. If it is, then be rude even though it wasn't
+ requested */
+ if (!rude) {
+ a = screen_area_monitor(self->desktop, client_monitor(self));
+ if (RECT_CONTAINS_RECT(*a, self->area))
+ rude = TRUE;
+ }
+
/* This here doesn't let windows even a pixel outside the screen,
* when called from client_manage, programs placing themselves are
* forced completely onscreen, while things like