File 0001-Store-correctly-the-window-position-with-Wayland.patch of Package lyx.15246

Index: src/frontends/qt4/GuiApplication.cpp
===================================================================
--- src/frontends/qt4/GuiApplication.cpp	(revision dc5eda84b8bb4d4eed09047d1c55a33a8173e746)
+++ src/frontends/qt4/GuiApplication.cpp	(revision d418b6f4c8207cc84c7a3b890de5aec2c837a672)
@@ -1112,4 +1112,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/qt4/GuiApplication.h
===================================================================
--- src/frontends/qt4/GuiApplication.h	(revision b9116e8b81f55ee795ea444ee02ff921bf82606a)
+++ src/frontends/qt4/GuiApplication.h	(revision d418b6f4c8207cc84c7a3b890de5aec2c837a672)
@@ -155,4 +155,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/qt4/GuiView.cpp
===================================================================
--- src/frontends/qt4/GuiView.cpp	(revision 1ae510b6287d5c96c3f106909c1cc8b0711b6d57)
+++ src/frontends/qt4/GuiView.cpp	(revision d418b6f4c8207cc84c7a3b890de5aec2c837a672)
@@ -751,10 +751,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())));
@@ -796,17 +795,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());
openSUSE Build Service is sponsored by