X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=4abff4c50984a5296b3ac540ba9e487d558e2304;hb=cad10d8b6db8cb2be9802cea8e0c4db210431d50;hp=6b8635be8eaa9d69c40930f6dca485ce4cf18e01;hpb=20e5555ec42585a662b8045a345c6741faf7199c;p=chaz%2Fopenbox 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