Harald Sitter has proposed merging lp:~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15 into lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src.
Requested reviews: Kubuntu Packagers (kubuntu-packagers) For more details, see: https://code.launchpad.net/~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15/+merge/250586 -- Your team Kubuntu Packagers is requested to review the proposed merge of lp:~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15 into lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src.
=== modified file 'debian/changelog' --- debian/changelog 2015-02-22 18:44:34 +0000 +++ debian/changelog 2015-02-23 08:45:31 +0000 @@ -1,3 +1,4 @@ +<<<<<<< TREE qtbase-opensource-src (5.4.0+dfsg-4ubuntu3) UNRELEASED; urgency=medium * Add debian/patches/make-sure-there-s-a-scene.patch cherry picked from @@ -5,6 +6,23 @@ -- Scott Kitterman <[email protected]> Sun, 22 Feb 2015 02:27:22 -0500 +======= +qtbase-opensource-src (5.4.0+dfsg-4ubuntu3) UNRELEASED; urgency=medium + + * Add upstream patches from 5.4 branch: + + upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch + To prevent mouse clicks from getting lost with the XCB plugin. + + upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch + To handle clipboard events correctly with the XCB plugin. + * Add upstream patches from gerrit: + + upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch + To handlemore events with the XCB plugin and Qt4 applications which + would terminate before sending the correct events thus loosing + clipboard content. + + -- Harald Sitter <[email protected]> Mon, 23 Feb 2015 09:36:47 +0100 + +>>>>>>> MERGE-SOURCE qtbase-opensource-src (5.4.0+dfsg-4ubuntu2) vivid; urgency=medium [ Timo Jyrinki ] === modified file 'debian/patches/series' --- debian/patches/series 2015-02-22 18:44:34 +0000 +++ debian/patches/series 2015-02-23 08:45:31 +0000 @@ -24,6 +24,11 @@ QtBearer-networkmanager-make-sure-to-set-flag-Active.patch Qt-should-not-print-warning-unless-we-have-an-API-mi.patch Refactor-networkmanager-QtBearer-backend-to-use-QDBu.patch +<<<<<<< TREE # Cherrypicked - will be in 5.4.2 make-sure-there-s-a-scene.patch +======= +upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch +upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch +upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch>>>>>>> MERGE-SOURCE === added file 'debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch' --- debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch 2015-02-23 08:45:31 +0000 @@ -0,0 +1,36 @@ +From a95b2e88603ecd18d54c384869ff1281e569f556 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]> +Date: Fri, 6 Feb 2015 07:34:43 +0100 +Subject: [PATCH] Handle SelectionWindowDestroy in QXcbClipboard + +This change is related to 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2 +which added handling for SelectionClientClose. Further testing showed +that with e.g. Qt 4 applications the SelectionClientClose is not +emitted, but the selection window seems to be destroyed before the +client is destroyed. + +Fur a destroyed selection window the same applies: the clipboard +content is no longer valid and we should emit the changed signal. + +Change-Id: Id3778a28b9f5601bf2c6e0106981316e0efa6e7c +--- + src/plugins/platforms/xcb/qxcbclipboard.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp +index f56a29d..4b6caa9 100644 +--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp ++++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp +@@ -742,7 +742,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve + m_xClipboard[mode]->reset(); + } + emitChanged(mode); +- } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE) ++ } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE || ++ event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY) + emitChanged(mode); + } + +-- +2.1.4 + === added file 'debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch' --- debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch 2015-02-23 08:45:31 +0000 @@ -0,0 +1,39 @@ +From 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]> +Date: Wed, 10 Dec 2014 07:27:23 +0100 +Subject: [PATCH] Handle SelectionClientClose in QXcbClipboard +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +QXcbClipboard listens for subtype SelectionClientClose of Xfixes +SelectionNotify event, but doesn't handle it. When the client holding +the clipboard selection closes the Clipboard becomes empty and thus the +change should be emitted. + +This fixes downstream KDE Bug #329174. + +Change-Id: I19fb8cfd7bd3b249c0bc6ca2a724a9aeeb05ac7e +Reviewed-by: Jørgen Lind <[email protected]> +Reviewed-by: Aleix Pol Gonzalez <[email protected]> +--- + src/plugins/platforms/xcb/qxcbclipboard.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp +index 8b3893e..f56a29d 100644 +--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp ++++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp +@@ -742,7 +742,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve + m_xClipboard[mode]->reset(); + } + emitChanged(mode); +- } ++ } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE) ++ emitChanged(mode); + } + + +-- +2.1.4 + === added file 'debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch' --- debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch 2015-02-23 08:45:31 +0000 @@ -0,0 +1,78 @@ +From 76de1ac0a4cd384f608a14b5d77a8cf3ef1ec868 Mon Sep 17 00:00:00 2001 +From: Alexander Volkov <[email protected]> +Date: Mon, 9 Feb 2015 17:19:14 +0300 +Subject: [PATCH] xcb: Update mouse buttons from MotionNotify events + +We don't receive ButtonRelease event after closing a popup +by clicking outside of the client area. Thus the internal +state of mouse buttons in the xcb plugin becomes outdated +until we receive ButtonRelease event. + +This commit updates the internal state of mouse buttons +from MotionNotify events. So when a user will move a mouse +on the client area, the xcb plugin will send a mouse event +with updated buttons to Qt Gui and QGuiApplication will +detect the following mouse events correctly. + +Task-number: QTBUG-32609 +Task-number: QTBUG-35065 +Task-number: QTBUG-43776 +Task-number: QTBUG-44166 +Task-number: QTBUG-44231 +Change-Id: Ica334dfbf04f7ef81db86b25262328fe5da11808 +Reviewed-by: Allan Sandfeld Jensen <[email protected]> +Reviewed-by: Shawn Rutledge <[email protected]> +Reviewed-by: Gatis Paeglis <[email protected]> +--- + src/plugins/platforms/xcb/qxcbconnection.cpp | 14 ++++++++++---- + src/plugins/platforms/xcb/qxcbconnection.h | 1 + + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp +index 5510c3b..77e4601 100644 +--- a/src/plugins/platforms/xcb/qxcbconnection.cpp ++++ b/src/plugins/platforms/xcb/qxcbconnection.cpp +@@ -818,6 +818,15 @@ void QXcbConnection::handleButtonRelease(xcb_generic_event_t *ev) + qCDebug(lcQpaXInput, "xcb: released mouse button %d, button state %X", event->detail, static_cast<unsigned int>(m_buttons)); + } + ++void QXcbConnection::handleMotionNotify(xcb_generic_event_t *ev) ++{ ++ xcb_motion_notify_event_t *event = (xcb_motion_notify_event_t *)ev; ++ ++ m_buttons = (m_buttons & ~0x7) | translateMouseButtons(event->state); ++ if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled())) ++ qDebug("xcb: moved mouse to %4d, %4d; button state %X", event->event_x, event->event_y, static_cast<unsigned int>(m_buttons)); ++} ++ + #ifndef QT_NO_XKB + namespace { + typedef union { +@@ -868,11 +877,8 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) + handleButtonRelease(event); + HANDLE_PLATFORM_WINDOW_EVENT(xcb_button_release_event_t, event, handleButtonReleaseEvent); + case XCB_MOTION_NOTIFY: +- if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled())) { +- xcb_motion_notify_event_t *mev = (xcb_motion_notify_event_t *)event; +- qDebug("xcb: moved mouse to %4d, %4d; button state %X", mev->event_x, mev->event_y, static_cast<unsigned int>(m_buttons)); +- } + m_keyboard->updateXKBStateFromCore(((xcb_motion_notify_event_t *)event)->state); ++ handleMotionNotify(event); + HANDLE_PLATFORM_WINDOW_EVENT(xcb_motion_notify_event_t, event, handleMotionNotifyEvent); + case XCB_CONFIGURE_NOTIFY: + HANDLE_PLATFORM_WINDOW_EVENT(xcb_configure_notify_event_t, event, handleConfigureNotifyEvent); +diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h +index 4d05965..9a73006 100644 +--- a/src/plugins/platforms/xcb/qxcbconnection.h ++++ b/src/plugins/platforms/xcb/qxcbconnection.h +@@ -496,6 +496,7 @@ private: + void updateScreens(); + void handleButtonPress(xcb_generic_event_t *event); + void handleButtonRelease(xcb_generic_event_t *event); ++ void handleMotionNotify(xcb_generic_event_t *event); + + bool m_xi2Enabled; + int m_xi2Minor; +-- +2.1.4 +
-- kubuntu-devel mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel
