[SCM] qtbase packaging branch, ubuntu, updated. ubuntu/5.5.1+dfsg-14ubuntu2-1-gc26d4ec
Timo Jyrinki
timo at moszumanska.debian.org
Mon Feb 29 12:42:22 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtbase.git;a=commitdiff;h=c26d4ec
The following commit has been merged in the ubuntu branch:
commit c26d4ecc75d4e1c6da098e9ecca15ab313932670
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Mon Feb 29 12:42:13 2016 +0000
debian/patches/Xcb-fix-crash-on-screen-power-save.patch:
* debian/patches/Xcb-fix-crash-on-screen-power-save.patch:
- Fix additional cases where crash could occur on monitor disconnections
or power save. (LP: #1551122)
---
debian/changelog | 8 ++
.../Xcb-fix-crash-on-screen-power-save.patch | 97 ++++++++++++++++++++++
debian/patches/series | 3 +-
3 files changed, 106 insertions(+), 2 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 4832644..80b1442 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+qtbase-opensource-src (5.5.1+dfsg-14ubuntu3) UNRELEASED; urgency=medium
+
+ * debian/patches/Xcb-fix-crash-on-screen-power-save.patch:
+ - Fix additional cases where crash could occur on monitor disconnections
+ or power save. (LP: #1551122)
+
+ -- Timo Jyrinki <timo-jyrinki at ubuntu.com> Mon, 29 Feb 2016 08:03:06 +0000
+
qtbase-opensource-src (5.5.1+dfsg-14ubuntu2) xenial; urgency=medium
* debian/patches/enable-tests.patch: some qnetworkcookiejar tests have
diff --git a/debian/patches/Xcb-fix-crash-on-screen-power-save.patch b/debian/patches/Xcb-fix-crash-on-screen-power-save.patch
new file mode 100644
index 0000000..ef26456
--- /dev/null
+++ b/debian/patches/Xcb-fix-crash-on-screen-power-save.patch
@@ -0,0 +1,97 @@
+From 7532fb4e61fc4102fd11022f57f7d8195414167b Mon Sep 17 00:00:00 2001
+From: Paul Olav Tvete <paul.tvete at theqtcompany.com>
+Date: Fri, 23 Oct 2015 10:37:49 +0200
+Subject: [PATCH] Xcb: fix crash on screen power save
+
+Handle various cases where we have null QScreen or QPlatformScreen
+pointers. With this change, I can run Qt Creator for several days.
+Before, it would crash multiple times per day with a two-monitor
+setup.
+
+Change-Id: I0923d886ae2a4199ac37edd711ddd4f6f99df93d
+Reviewed-by: Friedemann Kleint <Friedemann.Kleint at theqtcompany.com>
+Reviewed-by: Lars Knoll <lars.knoll at theqtcompany.com>
+Reviewed-by: Shawn Rutledge <shawn.rutledge at theqtcompany.com>
+---
+ src/plugins/platforms/xcb/qxcbbackingstore.cpp | 13 +++++++++++--
+ src/plugins/platforms/xcb/qxcbbackingstore.h | 1 +
+ src/plugins/platforms/xcb/qxcbwindow.cpp | 4 ++--
+ 3 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
+index 25f1ea5..1825a46 100644
+--- a/src/plugins/platforms/xcb/qxcbbackingstore.cpp
++++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
+@@ -311,9 +311,12 @@ QPaintDevice *QXcbBackingStore::paintDevice()
+
+ void QXcbBackingStore::beginPaint(const QRegion ®ion)
+ {
++ if (!m_image && !m_size.isEmpty())
++ resize(m_size, QRegion());
++
+ if (!m_image)
+ return;
+-
++ m_size = QSize();
+ int dpr = int(m_image->image()->devicePixelRatio());
+ const int windowDpr = int(window()->devicePixelRatio());
+ if (windowDpr != dpr) {
+@@ -420,7 +423,8 @@ void QXcbBackingStore::resize(const QSize &size, const QRegion &)
+ return;
+ Q_XCB_NOOP(connection());
+
+- QXcbScreen *screen = static_cast<QXcbScreen *>(window()->screen()->handle());
++
++ QXcbScreen *screen = window()->screen() ? static_cast<QXcbScreen *>(window()->screen()->handle()) : 0;
+ QPlatformWindow *pw = window()->handle();
+ if (!pw) {
+ window()->create();
+@@ -429,6 +433,11 @@ void QXcbBackingStore::resize(const QSize &size, const QRegion &)
+ QXcbWindow* win = static_cast<QXcbWindow *>(pw);
+
+ delete m_image;
++ if (!screen) {
++ m_image = 0;
++ m_size = size;
++ return;
++ }
+ m_image = new QXcbShmImage(screen, xSize, win->depth(), win->imageFormat());
+ m_image->image()->setDevicePixelRatio(dpr);
+ // Slow path for bgr888 VNC: Create an additional image, paint into that and
+diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.h b/src/plugins/platforms/xcb/qxcbbackingstore.h
+index b58a32d..1bea36d 100644
+--- a/src/plugins/platforms/xcb/qxcbbackingstore.h
++++ b/src/plugins/platforms/xcb/qxcbbackingstore.h
+@@ -71,6 +71,7 @@ private:
+ QXcbShmImage *m_image;
+ QRegion m_paintRegion;
+ QImage m_rgbImage;
++ QSize m_size;
+ };
+
+ QT_END_NAMESPACE
+diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
+index bde8826..b691c75 100644
+--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
++++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
+@@ -652,7 +652,7 @@ void QXcbWindow::setGeometry(const QRect &rect)
+ const QRect xRect = mapToNative(rect, newScreen);
+ const QRect wmGeometry = windowToWmGeometry(xRect);
+
+- if (newScreen != currentScreen)
++ if (newScreen && newScreen != currentScreen)
+ QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
+
+ if (qt_window_private(window())->positionAutomatic) {
+@@ -1606,7 +1606,7 @@ void QXcbWindow::requestActivateWindow()
+ return;
+ }
+
+- if (!m_mapped) {
++ if (!m_mapped || !xcbScreen()) {
+ m_deferredActivation = true;
+ return;
+ }
+--
+2.7.0
+
diff --git a/debian/patches/series b/debian/patches/series
index 4d22b75..eb6caf4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,8 +11,6 @@ Fix-falsely-reported-style-for-fallback-font.patch
Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch
xcb-fix-yet-another-crash-when-screens-are-disconnec.patch
Use-Node-name-if-Node-logicalModuleName-is-empty-for.patch
-
-# Will be no longer needed with Qt 5.7
mips_no_atomic.diff
detect_64bit_atomic.diff
qnetworkreply_abort_socket.diff
@@ -26,6 +24,7 @@ xcb_fix_drag_and_drop_when_window_is_hidden.patch
fix_not_delivering_focus.patch
fix_potential_division_by_zero.patch
Notify-when-the-primary-screen-changes.patch
+Xcb-fix-crash-on-screen-power-save.patch
xcb-Handle-screen-siblings-in-QXcbVirtualDesktop.patch
xcb-Use-a-placeholder-QScreen-when-there-are-no-outp.patch
dbusmenu_fixes.diff
--
qtbase packaging
More information about the pkg-kde-commits
mailing list