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;
|
gint fw, fh;
|
||||||
Rect desired;
|
Rect desired;
|
||||||
guint i;
|
guint i;
|
||||||
|
gboolean found_mon;
|
||||||
|
|
||||||
RECT_SET(desired, *x, *y, w, h);
|
RECT_SET(desired, *x, *y, w, h);
|
||||||
frame_rect_to_frame(self->frame, &desired);
|
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;
|
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) {
|
for (i = 0; i < screen_num_monitors; ++i) {
|
||||||
Rect *a;
|
Rect *a;
|
||||||
|
|
||||||
if (!screen_physical_area_monitor_contains(i, &desired)) {
|
if (!screen_physical_area_monitor_contains(i, &desired)) {
|
||||||
if (i < screen_num_monitors - 1)
|
if (i < screen_num_monitors - 1 || found_mon)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* the window is not inside any monitor! so just use the first
|
/* the window is not inside any monitor! so just use the first
|
||||||
one */
|
one */
|
||||||
a = screen_area(self->desktop, 0, NULL);
|
a = screen_area(self->desktop, 0, NULL);
|
||||||
} else
|
} else {
|
||||||
|
found_mon = TRUE;
|
||||||
a = screen_area(self->desktop, SCREEN_AREA_ONE_MONITOR, &desired);
|
a = screen_area(self->desktop, SCREEN_AREA_ONE_MONITOR, &desired);
|
||||||
|
}
|
||||||
|
|
||||||
/* This makes sure windows aren't entirely outside of the screen so you
|
/* This makes sure windows aren't entirely outside of the screen so you
|
||||||
can't see them at all.
|
can't see them at all.
|
||||||
|
|
Loading…
Reference in a new issue