diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-01 05:02:26 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-01 05:02:26 +0000 |
| commit | cad10d8b6db8cb2be9802cea8e0c4db210431d50 (patch) | |
| tree | 9f1d06468251e710e058f3a1227df87748694188 /openbox/client.c | |
| parent | 20e5555ec42585a662b8045a345c6741faf7199c (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.c | 11 |
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 |
