checkOffscreenPosition on restored session geoms
BUG: 336193 FIXED-IN: 5.4 REVIEW: 124122
This commit is contained in:
parent
acb8016e65
commit
7b842ccc81
1 changed files with 5 additions and 2 deletions
|
@ -255,9 +255,10 @@ bool Client::manage(xcb_window_t w, bool isMapped)
|
||||||
|
|
||||||
QRect area;
|
QRect area;
|
||||||
bool partial_keep_in_area = isMapped || session;
|
bool partial_keep_in_area = isMapped || session;
|
||||||
if (isMapped || session)
|
if (isMapped || session) {
|
||||||
area = workspace()->clientArea(FullArea, geom.center(), desktop());
|
area = workspace()->clientArea(FullArea, geom.center(), desktop());
|
||||||
else {
|
checkOffscreenPosition(&geom, area);
|
||||||
|
} else {
|
||||||
int screen = asn_data.xinerama() == -1 ? screens()->current() : asn_data.xinerama();
|
int screen = asn_data.xinerama() == -1 ? screens()->current() : asn_data.xinerama();
|
||||||
screen = rules()->checkScreen(screen, !isMapped);
|
screen = rules()->checkScreen(screen, !isMapped);
|
||||||
area = workspace()->clientArea(PlacementArea, screens()->geometry(screen).center(), desktop());
|
area = workspace()->clientArea(PlacementArea, screens()->geometry(screen).center(), desktop());
|
||||||
|
@ -517,6 +518,8 @@ bool Client::manage(xcb_window_t w, bool isMapped)
|
||||||
setFullScreen(true, false);
|
setFullScreen(true, false);
|
||||||
geom_fs_restore = session->fsrestore;
|
geom_fs_restore = session->fsrestore;
|
||||||
}
|
}
|
||||||
|
checkOffscreenPosition(&geom_restore, area);
|
||||||
|
checkOffscreenPosition(&geom_fs_restore, area);
|
||||||
} else {
|
} else {
|
||||||
// Window may want to be maximized
|
// Window may want to be maximized
|
||||||
// done after checking that the window isn't larger than the workarea, so that
|
// done after checking that the window isn't larger than the workarea, so that
|
||||||
|
|
Loading…
Reference in a new issue