// 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