Index: src/frontends/qt/GuiApplication.cpp =================================================================== --- src/frontends/qt/GuiApplication.cpp (revision 5061db891c2b7b9ca96ca40a3ee90bd9b2c76392) +++ src/frontends/qt/GuiApplication.cpp (revision 222a317dd243fb18f01bfa6e994902fee06ae3db) @@ -1090,4 +1090,27 @@ +#if QT_VERSION < 0x050000 +// Emulate platformName() for Qt4 + +// FIXME: when ditching this method, remove all tests +// platformName() == "qt4x11" +// in the code +QString GuiApplication::platformName() const +{ +# if defined(Q_WS_X11) + // Note that this one does not really exist + return "qt4x11"; +# elif defined(Q_OS_MAC) + return "cocoa"; +# elif defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN) + return "windows"; +# else + LYXERR0("Unknown platform!"); + return "unknown"; +# endif +} +#endif + + double GuiApplication::pixelRatio() const { Index: src/frontends/qt/GuiApplication.h =================================================================== --- src/frontends/qt/GuiApplication.h (revision 5061db891c2b7b9ca96ca40a3ee90bd9b2c76392) +++ src/frontends/qt/GuiApplication.h (revision 222a317dd243fb18f01bfa6e994902fee06ae3db) @@ -161,4 +161,9 @@ GuiView & view(int id) const; +#if (QT_VERSION < 0x050000) + /// Emulate platformName() for Qt4 + QString platformName() const; +#endif + /// Current ratio between physical pixels and device-independent pixels double pixelRatio() const; Index: src/frontends/qt/GuiView.cpp =================================================================== --- src/frontends/qt/GuiView.cpp (revision 21422dd6527754d8b7876a6e11b686cd726321ed) +++ src/frontends/qt/GuiView.cpp (revision 222a317dd243fb18f01bfa6e994902fee06ae3db) @@ -817,10 +817,9 @@ settings.beginGroup("views"); settings.beginGroup(QString::number(id_)); -#if defined(Q_WS_X11) || defined(QPA_XCB) - settings.setValue("pos", pos()); - settings.setValue("size", size()); -#else - settings.setValue("geometry", saveGeometry()); -#endif + if (guiApp->platformName() == "qt4x11" || guiApp->platformName() == "xcb") { + settings.setValue("pos", pos()); + settings.setValue("size", size()); + } else + settings.setValue("geometry", saveGeometry()); settings.setValue("layout", saveState(0)); settings.setValue("icon_size", toqstr(d.iconSize(iconSize()))); @@ -862,17 +861,18 @@ setIconSize(d.iconSize(settings.value(icon_key).toString())); -#if defined(Q_WS_X11) || defined(QPA_XCB) - QPoint pos = settings.value("pos", QPoint(50, 50)).toPoint(); - QSize size = settings.value("size", QSize(690, 510)).toSize(); - resize(size); - move(pos); -#else - // Work-around for bug #6034: the window ends up in an undetermined - // state when trying to restore a maximized window when it is - // already maximized. - if (!(windowState() & Qt::WindowMaximized)) - if (!restoreGeometry(settings.value("geometry").toByteArray())) - setGeometry(50, 50, 690, 510); -#endif + if (guiApp->platformName() == "qt4x11" || guiApp->platformName() == "xcb") { + QPoint pos = settings.value("pos", QPoint(50, 50)).toPoint(); + QSize size = settings.value("size", QSize(690, 510)).toSize(); + resize(size); + move(pos); + } else { + // Work-around for bug #6034: the window ends up in an undetermined + // state when trying to restore a maximized window when it is + // already maximized. + if (!(windowState() & Qt::WindowMaximized)) + if (!restoreGeometry(settings.value("geometry").toByteArray())) + setGeometry(50, 50, 690, 510); + } + // Make sure layout is correctly oriented. setLayoutDirection(qApp->layoutDirection());