From cad10d8b6db8cb2be9802cea8e0c4db210431d50 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 1 May 2007 05:02:26 +0000 Subject: 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. --- openbox/client.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'openbox') 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 -- cgit v1.2.3