Accepting request 611689 from KDE:Qt5

Qt 5.11.0 (forwarded request 611399 from Vogtinator)

OBS-URL: https://build.opensuse.org/request/show/611689
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwayland?expand=0&rev=20
This commit is contained in:
Dominique Leuenberger 2018-06-02 09:51:57 +00:00 committed by Git OBS Bridge
parent 2f42fa56a8
commit 54e4b55544
8 changed files with 250 additions and 437 deletions

View File

@ -0,0 +1,145 @@
From da43d51dcbafc5fa1db245efd6737aa54c245afb Mon Sep 17 00:00:00 2001
From: Giulio Camuffo <giulio.camuffo@kdab.com>
Date: Sat, 1 Jul 2017 09:53:07 +0200
Subject: [PATCH] Handle maximize/minimize/fullscreen in xdg_shell_v6
Change-Id: I385eb3279d91f1c38d2f5d46bc63b324f0456ca4
---
src/client/qwaylandwindow.cpp | 6 +++-
src/client/qwaylandxdgshellv6.cpp | 61 ++++++++++++++++++++++++++++++++++++---
src/client/qwaylandxdgshellv6_p.h | 8 ++++-
3 files changed, 69 insertions(+), 6 deletions(-)
Index: qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandwindow.cpp
===================================================================
--- qtwayland-everywhere-src-5.11.0-beta2.orig/src/client/qwaylandwindow.cpp
+++ qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandwindow.cpp
@@ -980,7 +980,11 @@ bool QWaylandWindow::setWindowStateInter
// As of february 2013 QWindow::setWindowState sets the new state value after
// QPlatformWindow::setWindowState returns, so we cannot rely on QWindow::windowState
// here. We use then this mState variable.
- mState = state;
+ // NOTE: The compositor does not tell us when the window is not minimized anymore,
+ // so we store the state except for the WindowMinimized value, to make sure that
+ // the equality check above does not return true when setWindowState(Qt::WindowMinimized)
+ // is called, even though the window is actually not minimized anymore.
+ mState = state & ~Qt::WindowMinimized;
if (mShellSurface) {
createDecoration();
Index: qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandxdgshellv6.cpp
===================================================================
--- qtwayland-everywhere-src-5.11.0-beta2.orig/src/client/qwaylandxdgshellv6.cpp
+++ qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandxdgshellv6.cpp
@@ -56,6 +56,8 @@ QWaylandXdgSurfaceV6::Toplevel::Toplevel
: QtWayland::zxdg_toplevel_v6(xdgSurface->get_toplevel())
, m_xdgSurface(xdgSurface)
{
+ m_configureState.fullscreen = false;
+ m_configureState.maximized = false;
}
QWaylandXdgSurfaceV6::Toplevel::~Toplevel()
@@ -75,13 +77,35 @@ void QWaylandXdgSurfaceV6::Toplevel::zxd
m_configureState.width = width;
m_configureState.height = height;
+ bool wasMaximized = m_configureState.maximized;
+ bool wasFullscreen = m_configureState.fullscreen;
+
uint32_t *state = reinterpret_cast<uint32_t *>(states->data);
size_t numStates = states->size / sizeof(uint32_t);
- m_configureState.states.reserve(numStates);
- m_configureState.states.clear();
- for (size_t i = 0; i < numStates; i++)
- m_configureState.states << state[i];
+ m_configureState.fullscreen = false;
+ m_configureState.maximized = false;
+
+ for (size_t i = 0; i < numStates; i++) {
+ switch (state[i]) {
+ case ZXDG_TOPLEVEL_V6_STATE_MAXIMIZED:
+ m_configureState.maximized = true;
+ break;
+ case ZXDG_TOPLEVEL_V6_STATE_FULLSCREEN:
+ m_configureState.fullscreen = true;
+ break;
+ default:
+ break;
+ }
+ }
+
+ if ((!wasMaximized && m_configureState.maximized) || (!wasFullscreen && m_configureState.fullscreen))
+ m_normalSize = m_xdgSurface->m_window->window()->frameGeometry().size();
+
+ if ((width == 0 || height == 0) && !m_normalSize.isEmpty()) {
+ m_configureState.width = m_normalSize.width();
+ m_configureState.height = m_normalSize.height();
+ }
}
void QWaylandXdgSurfaceV6::Toplevel::zxdg_toplevel_v6_close()
@@ -232,6 +256,35 @@ void QWaylandXdgSurfaceV6::zxdg_surface_
ack_configure(serial);
}
+void QWaylandXdgSurfaceV6::setMaximized()
+{
+ if (m_toplevel)
+ m_toplevel->set_maximized();
+}
+
+void QWaylandXdgSurfaceV6::setFullscreen()
+{
+ if (m_toplevel)
+ m_toplevel->set_fullscreen(nullptr);
+}
+
+void QWaylandXdgSurfaceV6::setNormal()
+{
+ if (!m_toplevel)
+ return;
+
+ if (m_toplevel->m_configureState.maximized)
+ m_toplevel->unset_maximized();
+ if (m_toplevel->m_configureState.fullscreen)
+ m_toplevel->unset_fullscreen();
+}
+
+void QWaylandXdgSurfaceV6::setMinimized()
+{
+ if (m_toplevel)
+ m_toplevel->set_minimized();
+}
+
QWaylandXdgShellV6::QWaylandXdgShellV6(struct ::wl_registry *registry, uint32_t id, uint32_t availableVersion)
Index: qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandxdgshellv6_p.h
===================================================================
--- qtwayland-everywhere-src-5.11.0-beta2.orig/src/client/qwaylandxdgshellv6_p.h
+++ qtwayland-everywhere-src-5.11.0-beta2/src/client/qwaylandxdgshellv6_p.h
@@ -88,6 +88,10 @@ public:
protected:
void zxdg_surface_v6_configure(uint32_t serial) override;
+ void setMaximized() override;
+ void setFullscreen() override;
+ void setNormal() override;
+ void setMinimized() override;
private:
class Toplevel: public QtWayland::zxdg_toplevel_v6
@@ -103,8 +107,10 @@ private:
struct {
int32_t width, height;
- QVarLengthArray<uint32_t> states;
+ bool maximized;
+ bool fullscreen;
} m_configureState;
+ QSize m_normalSize;
QWaylandXdgSurfaceV6 *m_xdgSurface = nullptr;
};

View File

@ -1,176 +0,0 @@
From 867cf6e37a657fea1bd847494d80b9b65678f5d8 Mon Sep 17 00:00:00 2001
From: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Date: Fri, 1 May 2015 17:12:22 +0300
Subject: [PATCH 1/2] Implement basic key composition support
Use xkbcommon-compose to handle basic compose key support. We should expand on
it in the future to handle things like resetting the compose state on text
field switching.
Task-number: QTBUG-54792
Task-number: QTBUG-64572
Change-Id: I9d1d5ca4c9991928e12979f69eaa477e0cb28ada
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
---
src/client/qwaylandinputdevice.cpp | 65 +++++++++++++++++++++++++++++++++++++-
src/client/qwaylandinputdevice_p.h | 9 ++++++
2 files changed, 73 insertions(+), 1 deletion(-)
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
index 4def0de8..90b27769 100644
--- a/src/client/qwaylandinputdevice.cpp
+++ b/src/client/qwaylandinputdevice.cpp
@@ -70,6 +70,10 @@
#include <QtGui/QGuiApplication>
+#if QT_CONFIG(xkbcommon_evdev)
+#include <xkbcommon/xkbcommon-compose.h>
+#endif
+
QT_BEGIN_NAMESPACE
namespace QtWaylandClient {
@@ -113,6 +117,7 @@ bool QWaylandInputDevice::Keyboard::createDefaultKeyMap()
qWarning() << "xkb_map_new_from_names failed, no key input";
return false;
}
+ createComposeState();
return true;
}
@@ -125,11 +130,41 @@ void QWaylandInputDevice::Keyboard::releaseKeyMap()
if (mXkbContext)
xkb_context_unref(mXkbContext);
}
+
+void QWaylandInputDevice::Keyboard::createComposeState()
+{
+ static const char *locale = nullptr;
+ if (!locale) {
+ locale = getenv("LC_ALL");
+ if (!locale)
+ locale = getenv("LC_CTYPE");
+ if (!locale)
+ locale = getenv("LANG");
+ if (!locale)
+ locale = "C";
+ }
+
+ mXkbComposeTable = xkb_compose_table_new_from_locale(mXkbContext, locale, XKB_COMPOSE_COMPILE_NO_FLAGS);
+ if (mXkbComposeTable)
+ mXkbComposeState = xkb_compose_state_new(mXkbComposeTable, XKB_COMPOSE_STATE_NO_FLAGS);
+}
+
+void QWaylandInputDevice::Keyboard::releaseComposeState()
+{
+ if (mXkbComposeState)
+ xkb_compose_state_unref(mXkbComposeState);
+ if (mXkbComposeTable)
+ xkb_compose_table_unref(mXkbComposeTable);
+ mXkbComposeState = nullptr;
+ mXkbComposeTable = nullptr;
+}
+
#endif
QWaylandInputDevice::Keyboard::~Keyboard()
{
#if QT_CONFIG(xkbcommon_evdev)
+ releaseComposeState();
releaseKeyMap();
#endif
if (mFocus)
@@ -632,6 +667,7 @@ void QWaylandInputDevice::Keyboard::keyboard_keymap(uint32_t format, int32_t fd,
// Release the old keymap resources in the case they were already created in
// the key event or when the compositor issues a new map
+ releaseComposeState();
releaseKeyMap();
mXkbContext = xkb_context_new(xkb_context_flags(0));
@@ -640,6 +676,8 @@ void QWaylandInputDevice::Keyboard::keyboard_keymap(uint32_t format, int32_t fd,
close(fd);
mXkbState = xkb_state_new(mXkbMap);
+ createComposeState();
+
#else
Q_UNUSED(format);
Q_UNUSED(fd);
@@ -723,12 +761,37 @@ void QWaylandInputDevice::Keyboard::keyboard_key(uint32_t serial, uint32_t time,
return;
}
- const xkb_keysym_t sym = xkb_state_key_get_one_sym(mXkbState, code);
+ QString composedText;
+ xkb_keysym_t sym = xkb_state_key_get_one_sym(mXkbState, code);
+ if (mXkbComposeState) {
+ if (isDown)
+ xkb_compose_state_feed(mXkbComposeState, sym);
+ xkb_compose_status status = xkb_compose_state_get_status(mXkbComposeState);
+
+ switch (status) {
+ case XKB_COMPOSE_COMPOSED: {
+ int size = xkb_compose_state_get_utf8(mXkbComposeState, nullptr, 0);
+ QVarLengthArray<char, 32> buffer(size + 1);
+ xkb_compose_state_get_utf8(mXkbComposeState, buffer.data(), buffer.size());
+ composedText = QString::fromUtf8(buffer.constData());
+ sym = xkb_compose_state_get_one_sym(mXkbComposeState);
+ xkb_compose_state_reset(mXkbComposeState);
+ } break;
+ case XKB_COMPOSE_COMPOSING:
+ case XKB_COMPOSE_CANCELLED:
+ return;
+ case XKB_COMPOSE_NOTHING:
+ break;
+ }
+ }
Qt::KeyboardModifiers modifiers = mParent->modifiers();
std::tie(qtkey, text) = QWaylandXkb::keysymToQtKey(sym, modifiers);
+ if (!composedText.isNull())
+ text = composedText;
+
sendKey(window->window(), time, type, qtkey, modifiers, code, sym, mNativeModifiers, text);
#else
// Generic fallback for single hard keys: Assume 'key' is a Qt key code.
diff --git a/src/client/qwaylandinputdevice_p.h b/src/client/qwaylandinputdevice_p.h
index 9e3d1d1f..b1424981 100644
--- a/src/client/qwaylandinputdevice_p.h
+++ b/src/client/qwaylandinputdevice_p.h
@@ -76,6 +76,11 @@
struct wl_cursor_image;
#endif
+#if QT_CONFIG(xkbcommon_evdev)
+struct xkb_compose_state;
+struct xkb_compose_table;
+#endif
+
QT_BEGIN_NAMESPACE
namespace QtWaylandClient {
@@ -207,6 +212,8 @@ public:
xkb_context *mXkbContext;
xkb_keymap *mXkbMap;
xkb_state *mXkbState;
+ xkb_compose_table *mXkbComposeTable = nullptr;
+ xkb_compose_state *mXkbComposeState = nullptr;
#endif
uint32_t mNativeModifiers;
@@ -228,6 +235,8 @@ private:
#if QT_CONFIG(xkbcommon_evdev)
bool createDefaultKeyMap();
void releaseKeyMap();
+ void createComposeState();
+ void releaseComposeState();
#endif
};
--
2.15.0

View File

@ -1,139 +0,0 @@
From ae858fe3d5a81b8ce5ab1d6ce7e2e6a65a11cc14 Mon Sep 17 00:00:00 2001
From: Johan Klokkhammer Helsing <johan.helsing@qt.io>
Date: Fri, 18 Aug 2017 13:08:50 +0200
Subject: [PATCH 2/2] Automatically change scale when entering a new output
Change-Id: I99198d47eac5b2091fe2bfd8fc24646be9c9890a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
---
src/client/qwaylandwindow.cpp | 27 ++++++++++++++++++----
src/client/qwaylandwindow_p.h | 2 ++
.../client/wayland-egl/qwaylandeglwindow.cpp | 5 ++++
.../client/wayland-egl/qwaylandeglwindow.h | 1 +
4 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 6d7c0885..c7490532 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -128,6 +128,12 @@ QWaylandWindow::~QWaylandWindow()
}
}
+void QWaylandWindow::ensureSize()
+{
+ if (mBackingStore)
+ mBackingStore->ensureSize();
+}
+
void QWaylandWindow::initWindow()
{
if (window()->type() == Qt::Desktop)
@@ -196,7 +202,6 @@ void QWaylandWindow::initWindow()
// Enable high-dpi rendering. Scale() returns the screen scale factor and will
// typically be integer 1 (normal-dpi) or 2 (high-dpi). Call set_buffer_scale()
// to inform the compositor that high-resolution buffers will be provided.
- //FIXME this needs to be changed when the screen changes along with a resized backing store
if (mDisplay->compositorVersion() >= 3)
set_buffer_scale(scale());
@@ -516,7 +521,7 @@ void QWaylandWindow::surface_enter(wl_output *output)
QWaylandScreen *newScreen = calculateScreenFromSurfaceEvents();
if (oldScreen != newScreen) //currently this will only happen if the first wl_surface.enter is for a non-primary screen
- QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
+ handleScreenChanged();
}
void QWaylandWindow::surface_leave(wl_output *output)
@@ -533,7 +538,7 @@ void QWaylandWindow::surface_leave(wl_output *output)
QWaylandScreen *newScreen = calculateScreenFromSurfaceEvents();
if (oldScreen != newScreen)
- QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
+ handleScreenChanged();
}
void QWaylandWindow::handleScreenRemoved(QScreen *qScreen)
@@ -543,7 +548,7 @@ void QWaylandWindow::handleScreenRemoved(QScreen *qScreen)
if (wasRemoved) {
QWaylandScreen *newScreen = calculateScreenFromSurfaceEvents();
if (oldScreen != newScreen)
- QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
+ handleScreenChanged();
}
}
@@ -906,6 +911,20 @@ void QWaylandWindow::handleMouseEventWithDecoration(QWaylandInputDevice *inputDe
}
}
+void QWaylandWindow::handleScreenChanged()
+{
+ QWaylandScreen *newScreen = calculateScreenFromSurfaceEvents();
+ QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
+
+ int scale = newScreen->scale();
+ if (scale != mScale) {
+ mScale = scale;
+ if (isInitialized() && mDisplay->compositorVersion() >= 3)
+ set_buffer_scale(mScale);
+ ensureSize();
+ }
+}
+
#if QT_CONFIG(cursor)
void QWaylandWindow::setMouseCursor(QWaylandInputDevice *device, const QCursor &cursor)
{
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index bd4a3590..5457d655 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -110,6 +110,7 @@ public:
~QWaylandWindow();
virtual WindowType windowType() const = 0;
+ virtual void ensureSize();
WId winId() const override;
void setVisible(bool visible) override;
void setParent(const QPlatformWindow *parent) override;
@@ -263,6 +264,7 @@ private:
QWaylandScreen *calculateScreenFromSurfaceEvents() const;
void handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, const QWaylandPointerEvent &e);
+ void handleScreenChanged();
bool mUpdateRequested;
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
index 6b5c5326..87f3e2d4 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
@@ -92,6 +92,11 @@ QWaylandWindow::WindowType QWaylandEglWindow::windowType() const
return QWaylandWindow::Egl;
}
+void QWaylandEglWindow::ensureSize()
+{
+ updateSurface(false);
+}
+
void QWaylandEglWindow::setGeometry(const QRect &rect)
{
QWaylandWindow::setGeometry(rect);
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
index e471a8f7..77aee56d 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
@@ -59,6 +59,7 @@ public:
QWaylandEglWindow(QWindow *window);
~QWaylandEglWindow();
WindowType windowType() const override;
+ void ensureSize() override;
void updateSurface(bool create);
virtual void setGeometry(const QRect &rect) override;
--
2.15.0

View File

@ -1,103 +0,0 @@
From a343c589a966d0342fcc75e0d6ce24e1f5157540 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Wed, 3 Jan 2018 19:18:42 +0000
Subject: [PATCH] Don't recreate hidden egl surfaces
QWaylandEglWindow deletes surfaces when a window changes from hidden to
visible, presumably as a result of us not having a valid wl_surface
object. By extension it doesn't make sense to create a surface whilst a
window is still hidden.
This fixes a crash where a QQuickWindow hides and then is destroyed. In
QQuickWindow destruction we have to create a valid context in order to
delete any textures/assets owned by the scene graph; as the wl_surface
has gone this causes an error in the EGL libs when we create an EGL
surface.
Task-number: QTBUG-65553
Change-Id: I9b37a86326bf2cd7737c4e839c1aa8c74cf08116
---
.../client/wayland-egl/qwaylandglcontext.cpp | 2 +-
tests/auto/client/client/tst_client.cpp | 35 ++++++++++++++++++++++
2 files changed, 36 insertions(+), 1 deletion(-)
Index: qtwayland-everywhere-src-5.10.0/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
===================================================================
--- qtwayland-everywhere-src-5.10.0.orig/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ qtwayland-everywhere-src-5.10.0/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -407,7 +407,7 @@ bool QWaylandGLContext::makeCurrent(QPla
window->createDecoration();
if (eglSurface == EGL_NO_SURFACE) {
- window->updateSurface(true);
+ window->updateSurface(window->isExposed());
eglSurface = window->eglSurface();
}
Index: qtwayland-everywhere-src-5.10.0/tests/auto/client/client/tst_client.cpp
===================================================================
--- qtwayland-everywhere-src-5.10.0.orig/tests/auto/client/client/tst_client.cpp
+++ qtwayland-everywhere-src-5.10.0/tests/auto/client/client/tst_client.cpp
@@ -35,6 +35,8 @@
#include <QMimeData>
#include <QPixmap>
#include <QDrag>
+#include <QWindow>
+#include <QOpenGLWindow>
#include <QtTest/QtTest>
@@ -108,6 +110,25 @@ public:
QPoint mousePressPos;
};
+class TestGlWindow : public QOpenGLWindow
+{
+ Q_OBJECT
+
+public:
+ TestGlWindow();
+
+protected:
+ void paintGL() override;
+};
+
+TestGlWindow::TestGlWindow()
+{}
+
+void TestGlWindow::paintGL()
+{
+ glClear(GL_COLOR_BUFFER_BIT);
+}
+
class tst_WaylandClient : public QObject
{
Q_OBJECT
@@ -145,6 +166,7 @@ private slots:
void dontCrashOnMultipleCommits();
void hiddenTransientParent();
void hiddenPopupParent();
+ void glWindow();
private:
MockCompositor *compositor;
@@ -404,6 +426,19 @@ void tst_WaylandClient::hiddenPopupParen
QTRY_VERIFY(compositor->surface());
}
+void tst_WaylandClient::glWindow()
+{
+ QScopedPointer<TestGlWindow> testWindow(new TestGlWindow);
+ testWindow->show();
+ QSharedPointer<MockSurface> surface;
+ QTRY_VERIFY(surface = compositor->surface());
+
+ //confirm we don't crash when we delete an already hidden GL window
+ //QTBUG-65553
+ testWindow->setVisible(false);
+ QTRY_VERIFY(!compositor->surface());
+}
+
int main(int argc, char **argv)
{
setenv("XDG_RUNTIME_DIR", ".", 1);

View File

@ -1,3 +1,81 @@
-------------------------------------------------------------------
Tue May 22 16:16:49 CEST 2018 - fabian@ritter-vogt.de
- Update to 5.11.0
* New bugfix release
* For more details please see:
* http://code.qt.io/cgit/qt/qtwayland.git/plain/dist/changes-5.11.0/?h=v5.11.0
-------------------------------------------------------------------
Tue May 8 11:01:44 CEST 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-rc
* New bugfix release
* No changelog available
-------------------------------------------------------------------
Mon Apr 23 08:58:08 CEST 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-beta4
* New bugfix release
* No changelog available
-------------------------------------------------------------------
Wed Apr 11 09:15:05 CEST 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-beta3
* New bugfix release
* No changelog available
-------------------------------------------------------------------
Wed Mar 28 09:17:53 CEST 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-beta2
* New bugfix release
* No changelog available
- Refresh 0001-Handle-maximize-minimize-fullscreen-xdgshellv6.patch
-------------------------------------------------------------------
Tue Mar 13 13:40:51 UTC 2018 - christophe@krop.fr
- Fix the license tag.
-------------------------------------------------------------------
Thu Mar 1 09:55:54 CET 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-beta1
* New feature release
* For more details please see:
* http://code.qt.io/cgit/qt/qtwayland.git/plain/dist/changes-5.11.0-beta1/?h=v5.11.0-beta1
-------------------------------------------------------------------
Tue Feb 20 14:29:57 CET 2018 - fabian@ritter-vogt.de
- Update to 5.11.0-alpha
* New feature release
* For more details please see:
* https://wiki.qt.io/New_Features_in_Qt_5.11
- Remove patches, now upstream:
* 0001-Implement-basic-key-composition-support.patch
* 0002-Automatically-change-scale-when-entering-a-new-outpu.patch
-------------------------------------------------------------------
Wed Feb 14 15:47:14 CET 2018 - fabian@ritter-vogt.de
- Update to 5.10.1
* New bugfix release
* For more details please see:
* http://code.qt.io/cgit/qt/qtwayland.git/plain/dist/changes-5.10.1/?h=v5.10.1
- Drop patches, now upstream:
* Dont-recreate-hidden-egl-surfaces.patch
-------------------------------------------------------------------
Sat Feb 10 21:11:54 UTC 2018 - fabian@ritter-vogt.de
- Add patch (pending upstream) to implement fullscreen windows for
xdg-shell v6 (boo#1080447):
* 0001-Handle-maximize-minimize-fullscreen-xdgshellv6.patch
-------------------------------------------------------------------
Tue Jan 9 14:39:26 UTC 2018 - fabian@ritter-vogt.de

View File

@ -19,29 +19,30 @@
%define qt5_snapshot 0
%define libname libQt5WaylandCompositor5
%define base_name libqt5
%define real_version 5.10.0
%define so_version 5.10.0
%define tar_version qtwayland-everywhere-src-5.10.0
%define real_version 5.11.0
%define so_version 5.11.0
%define tar_version qtwayland-everywhere-src-5.11.0
Name: libqt5-qtwayland
Version: 5.10.0
Version: 5.11.0
Release: 0
Summary: Qt 5 Wayland Addon
License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-with-Qt-Company-Qt-exception-1.1
License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only
Group: Development/Libraries/X11
Url: https://www.qt.io
Source: https://download.qt.io/official_releases/qt/5.10/%{real_version}/submodules/%{tar_version}.tar.xz
Source: https://download.qt.io/official_releases/qt/5.11/%{real_version}/submodules/%{tar_version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE
Patch1: workaround-null-object.patch
# Pending for upstream 5.9 (https://codereview.qt-project.org/#/c/210552/)
Patch1500: Dont-recreate-hidden-egl-surfaces.patch
# Patches from upstream dev branch
Patch2000: 0001-Implement-basic-key-composition-support.patch
Patch2001: 0002-Automatically-change-scale-when-entering-a-new-outpu.patch
# Pending for upstream 5.9 (https://codereview.qt-project.org/#/c/199123/)
Patch1501: 0001-Handle-maximize-minimize-fullscreen-xdgshellv6.patch
BuildRequires: fdupes
BuildRequires: libqt5-qtbase-private-headers-devel >= %{version}
BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{version}
BuildRequires: xz
%if 0%{?suse_version} < 1330
# It does not build with the default compiler (GCC 4.8) on Leap 42.x
BuildRequires: gcc7-c++
%endif
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(wayland-client) >= 1.1.0
BuildRequires: pkgconfig(wayland-egl)
@ -108,10 +109,7 @@ Examples for libqt5-qtwayland module.
%prep
%setup -q -n %{tar_version}
%patch1 -p1
%patch1500 -p1
%patch2000 -p1
%patch2001 -p1
%autopatch -p1
%post -n libQt5WaylandCompositor5 -p /sbin/ldconfig
@ -130,7 +128,17 @@ Examples for libqt5-qtwayland module.
#force the configure script to generate the forwarding headers (it checks whether .git directory exists)
mkdir .git
%endif
%{_libqt5_qmake} CONFIG+=wayland-compositor
%{_libqt5_qmake} \
%if 0%{?suse_version} < 1330
QMAKE_CC=gcc-7 QMAKE_CXX=g++-7 CONFIG+=c++14 \
%endif
CONFIG+=wayland-compositor
%if 0%{?suse_version} < 1330
export CC=gcc-7
export CXX=g++-7
%endif
%{make_jobs}
%install

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5657f9656c95f83880f92e7697a1c13c9739bf4d0bfd867e711fff7c84004b93
size 378276

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68814e8f207f3a90cae29ae49ce2c1f4bf9d06709a7a7962adf23120f1644127
size 391212