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

Reply via email to