fix bug 3319: LyX starts offscreen when changing monitor configuration

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17796 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Peter Kümmel 2007-04-13 13:42:59 +00:00
parent ab2b590abe
commit c701b8ff65

View File

@ -358,17 +358,17 @@ void GuiView::setGeometry(unsigned int width,
// only true when the -geometry option was NOT used
if (width != 0 && height != 0) {
if (posx != -1 && posy != -1) {
// if there are ever startup positioning problems
// on a virtual desktop then check the 6 lines below
// if there are startup positioning problems:
// http://doc.trolltech.com/4.2/qdesktopwidget.html
QDesktopWidget& dw = *qApp->desktop();
QRect desk = dw.availableGeometry(dw.primaryScreen());
(posx >= desk.width() ? posx = 50 : true);
(posy >= desk.height()? posy = 50 : true);
// don't allow negative coordinates on a non-virtual desktop
if (!dw.isVirtualDesktop()) {
(posx < 0 ? posx = 50 : true);
(posy < 0 ? posy = 50 : true);
if (dw.isVirtualDesktop()) {
if(!dw.geometry().contains(posx, posy)) {
posx = 50;
posy = 50;
}
} else {
// Which system doesn't use a virtual desktop?
// TODO save also last screen number and check if it is still availabe.
}
#ifdef Q_WS_WIN
// FIXME: use setGeometry only when Trolltech has fixed the qt4/X11 bug