Merge branch 'backport' into work
This commit is contained in:
commit
5563e251c3
1 changed files with 11 additions and 2 deletions
|
@ -910,6 +910,7 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
|
|||
gint fw, fh;
|
||||
Rect desired;
|
||||
guint i;
|
||||
gboolean found_mon;
|
||||
|
||||
RECT_SET(desired, *x, *y, w, h);
|
||||
frame_rect_to_frame(self->frame, &desired);
|
||||
|
@ -959,18 +960,26 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
|
|||
rudeb = TRUE;
|
||||
}
|
||||
|
||||
/* we iterate through every monitor that the window is at least partially
|
||||
on, to make sure it is obeying the rules on them all
|
||||
|
||||
if the window does not appear on any monitors, then use the first one
|
||||
*/
|
||||
found_mon = FALSE;
|
||||
for (i = 0; i < screen_num_monitors; ++i) {
|
||||
Rect *a;
|
||||
|
||||
if (!screen_physical_area_monitor_contains(i, &desired)) {
|
||||
if (i < screen_num_monitors - 1)
|
||||
if (i < screen_num_monitors - 1 || found_mon)
|
||||
continue;
|
||||
|
||||
/* the window is not inside any monitor! so just use the first
|
||||
one */
|
||||
a = screen_area(self->desktop, 0, NULL);
|
||||
} else
|
||||
} else {
|
||||
found_mon = TRUE;
|
||||
a = screen_area(self->desktop, SCREEN_AREA_ONE_MONITOR, &desired);
|
||||
}
|
||||
|
||||
/* This makes sure windows aren't entirely outside of the screen so you
|
||||
can't see them at all.
|
||||
|
|
Loading…
Reference in a new issue