diff --git a/0001-Store-correctly-the-window-position-with-Wayland.patch b/0001-Store-correctly-the-window-position-with-Wayland.patch new file mode 100644 index 0000000..dcf2236 --- /dev/null +++ b/0001-Store-correctly-the-window-position-with-Wayland.patch @@ -0,0 +1,98 @@ +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()); diff --git a/lyx.changes b/lyx.changes index 286ce57..2f05593 100644 --- a/lyx.changes +++ b/lyx.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Dec 1 08:26:16 UTC 2020 - Cor Blom + +- Add 0001-Store-correctly-the-window-position-with-Wayland.patch + to fix possible menu shifting on GNOME Wayland (see upstream bug + https://www.lyx.org/trac/ticket/11746) + ------------------------------------------------------------------- Sat Nov 28 09:58:37 UTC 2020 - Cor Blom @@ -5,7 +12,12 @@ Sat Nov 28 09:58:37 UTC 2020 - Cor Blom * Small improvements and bug fixes all over the place. For details see included ANNOUNCE or https://www.lyx.org/announce/2_3_6.txt + Some highlights: * On openSUSE: the correct mathfonts are now displayed + * Added the ability to create new child documents from within the + 'include file' dialog + * Pasting table content outside a table no longer pastes tab + characters ------------------------------------------------------------------- Sat Nov 21 20:41:51 UTC 2020 - Cor Blom diff --git a/lyx.spec b/lyx.spec index 7ba9831..20eed42 100644 --- a/lyx.spec +++ b/lyx.spec @@ -36,6 +36,8 @@ Patch0: correct-shebang.patch # PATCH-FIX-UPSTREAM remove_python_shebang.patch mcepl@suse.com # remove all instances of python2 shebang lines Patch1: remove_python_shebang.patch +# PATCH-FIX-UPSTREAM see https://www.lyx.org/trac/ticket/11746 +Patch2: 0001-Store-correctly-the-window-position-with-Wayland.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bc @@ -141,6 +143,7 @@ A collection of Math symbol fonts for LyX. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p0 %build #./autogen.sh