Merge lp:~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15 into lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src

Proposed by Harald Sitter
Status: Merged
Approved by: Timo Jyrinki
Approved revision: 228
Merged at revision: 229
Proposed branch: lp:~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15
Merge into: lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src
Diff against target: 216 lines (+176/-0) (has conflicts)
5 files modified
debian/changelog (+18/-0)
debian/patches/series (+5/-0)
debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch (+36/-0)
debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch (+39/-0)
debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch (+78/-0)
Text conflict in debian/changelog
Text conflict in debian/patches/series
To merge this branch: bzr merge lp:~apachelogger/kubuntu-packaging/qtbase-opensource-src-netrunner15
Reviewer Review Type Date Requested Status
Kubuntu Packagers Pending
Review via email: mp+250586@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2015-02-22 18:44:34 +0000
3+++ debian/changelog 2015-02-23 08:51:24 +0000
4@@ -1,3 +1,4 @@
5+<<<<<<< TREE
6 qtbase-opensource-src (5.4.0+dfsg-4ubuntu3) UNRELEASED; urgency=medium
7
8 * Add debian/patches/make-sure-there-s-a-scene.patch cherry picked from
9@@ -5,6 +6,23 @@
10
11 -- Scott Kitterman <scott@kitterman.com> Sun, 22 Feb 2015 02:27:22 -0500
12
13+=======
14+qtbase-opensource-src (5.4.0+dfsg-4ubuntu3) UNRELEASED; urgency=medium
15+
16+ * Add upstream patches from 5.4 branch:
17+ + upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch
18+ To prevent mouse clicks from getting lost with the XCB plugin.
19+ + upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch
20+ To handle clipboard events correctly with the XCB plugin.
21+ * Add upstream patches from gerrit:
22+ + upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch
23+ To handlemore events with the XCB plugin and Qt4 applications which
24+ would terminate before sending the correct events thus loosing
25+ clipboard content.
26+
27+ -- Harald Sitter <sitter@kde.org> Mon, 23 Feb 2015 09:36:47 +0100
28+
29+>>>>>>> MERGE-SOURCE
30 qtbase-opensource-src (5.4.0+dfsg-4ubuntu2) vivid; urgency=medium
31
32 [ Timo Jyrinki ]
33
34=== modified file 'debian/patches/series'
35--- debian/patches/series 2015-02-22 18:44:34 +0000
36+++ debian/patches/series 2015-02-23 08:51:24 +0000
37@@ -24,6 +24,11 @@
38 QtBearer-networkmanager-make-sure-to-set-flag-Active.patch
39 Qt-should-not-print-warning-unless-we-have-an-API-mi.patch
40 Refactor-networkmanager-QtBearer-backend-to-use-QDBu.patch
41+<<<<<<< TREE
42
43 # Cherrypicked - will be in 5.4.2
44 make-sure-there-s-a-scene.patch
45+=======
46+upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch
47+upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch
48+upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch>>>>>>> MERGE-SOURCE
49
50=== added file 'debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch'
51--- debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch 1970-01-01 00:00:00 +0000
52+++ debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch 2015-02-23 08:51:24 +0000
53@@ -0,0 +1,36 @@
54+From a95b2e88603ecd18d54c384869ff1281e569f556 Mon Sep 17 00:00:00 2001
55+From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <mgraesslin@kde.org>
56+Date: Fri, 6 Feb 2015 07:34:43 +0100
57+Subject: [PATCH] Handle SelectionWindowDestroy in QXcbClipboard
58+
59+This change is related to 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2
60+which added handling for SelectionClientClose. Further testing showed
61+that with e.g. Qt 4 applications the SelectionClientClose is not
62+emitted, but the selection window seems to be destroyed before the
63+client is destroyed.
64+
65+Fur a destroyed selection window the same applies: the clipboard
66+content is no longer valid and we should emit the changed signal.
67+
68+Change-Id: Id3778a28b9f5601bf2c6e0106981316e0efa6e7c
69+---
70+ src/plugins/platforms/xcb/qxcbclipboard.cpp | 3 ++-
71+ 1 file changed, 2 insertions(+), 1 deletion(-)
72+
73+diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
74+index f56a29d..4b6caa9 100644
75+--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
76++++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
77+@@ -742,7 +742,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve
78+ m_xClipboard[mode]->reset();
79+ }
80+ emitChanged(mode);
81+- } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE)
82++ } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE ||
83++ event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY)
84+ emitChanged(mode);
85+ }
86+
87+--
88+2.1.4
89+
90
91=== added file 'debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch'
92--- debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch 1970-01-01 00:00:00 +0000
93+++ debian/patches/upstream_Handle-SelectionClientClose-in-QXcbClipboard.patch 2015-02-23 08:51:24 +0000
94@@ -0,0 +1,39 @@
95+From 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2 Mon Sep 17 00:00:00 2001
96+From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <mgraesslin@kde.org>
97+Date: Wed, 10 Dec 2014 07:27:23 +0100
98+Subject: [PATCH] Handle SelectionClientClose in QXcbClipboard
99+MIME-Version: 1.0
100+Content-Type: text/plain; charset=UTF-8
101+Content-Transfer-Encoding: 8bit
102+
103+QXcbClipboard listens for subtype SelectionClientClose of Xfixes
104+SelectionNotify event, but doesn't handle it. When the client holding
105+the clipboard selection closes the Clipboard becomes empty and thus the
106+change should be emitted.
107+
108+This fixes downstream KDE Bug #329174.
109+
110+Change-Id: I19fb8cfd7bd3b249c0bc6ca2a724a9aeeb05ac7e
111+Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
112+Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
113+---
114+ src/plugins/platforms/xcb/qxcbclipboard.cpp | 3 ++-
115+ 1 file changed, 2 insertions(+), 1 deletion(-)
116+
117+diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
118+index 8b3893e..f56a29d 100644
119+--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
120++++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
121+@@ -742,7 +742,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve
122+ m_xClipboard[mode]->reset();
123+ }
124+ emitChanged(mode);
125+- }
126++ } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE)
127++ emitChanged(mode);
128+ }
129+
130+
131+--
132+2.1.4
133+
134
135=== added file 'debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch'
136--- debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch 1970-01-01 00:00:00 +0000
137+++ debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch 2015-02-23 08:51:24 +0000
138@@ -0,0 +1,78 @@
139+From 76de1ac0a4cd384f608a14b5d77a8cf3ef1ec868 Mon Sep 17 00:00:00 2001
140+From: Alexander Volkov <a.volkov@rusbitech.ru>
141+Date: Mon, 9 Feb 2015 17:19:14 +0300
142+Subject: [PATCH] xcb: Update mouse buttons from MotionNotify events
143+
144+We don't receive ButtonRelease event after closing a popup
145+by clicking outside of the client area. Thus the internal
146+state of mouse buttons in the xcb plugin becomes outdated
147+until we receive ButtonRelease event.
148+
149+This commit updates the internal state of mouse buttons
150+from MotionNotify events. So when a user will move a mouse
151+on the client area, the xcb plugin will send a mouse event
152+with updated buttons to Qt Gui and QGuiApplication will
153+detect the following mouse events correctly.
154+
155+Task-number: QTBUG-32609
156+Task-number: QTBUG-35065
157+Task-number: QTBUG-43776
158+Task-number: QTBUG-44166
159+Task-number: QTBUG-44231
160+Change-Id: Ica334dfbf04f7ef81db86b25262328fe5da11808
161+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
162+Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
163+Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
164+---
165+ src/plugins/platforms/xcb/qxcbconnection.cpp | 14 ++++++++++----
166+ src/plugins/platforms/xcb/qxcbconnection.h | 1 +
167+ 2 files changed, 11 insertions(+), 4 deletions(-)
168+
169+diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
170+index 5510c3b..77e4601 100644
171+--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
172++++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
173+@@ -818,6 +818,15 @@ void QXcbConnection::handleButtonRelease(xcb_generic_event_t *ev)
174+ qCDebug(lcQpaXInput, "xcb: released mouse button %d, button state %X", event->detail, static_cast<unsigned int>(m_buttons));
175+ }
176+
177++void QXcbConnection::handleMotionNotify(xcb_generic_event_t *ev)
178++{
179++ xcb_motion_notify_event_t *event = (xcb_motion_notify_event_t *)ev;
180++
181++ m_buttons = (m_buttons & ~0x7) | translateMouseButtons(event->state);
182++ if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled()))
183++ qDebug("xcb: moved mouse to %4d, %4d; button state %X", event->event_x, event->event_y, static_cast<unsigned int>(m_buttons));
184++}
185++
186+ #ifndef QT_NO_XKB
187+ namespace {
188+ typedef union {
189+@@ -868,11 +877,8 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
190+ handleButtonRelease(event);
191+ HANDLE_PLATFORM_WINDOW_EVENT(xcb_button_release_event_t, event, handleButtonReleaseEvent);
192+ case XCB_MOTION_NOTIFY:
193+- if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled())) {
194+- xcb_motion_notify_event_t *mev = (xcb_motion_notify_event_t *)event;
195+- qDebug("xcb: moved mouse to %4d, %4d; button state %X", mev->event_x, mev->event_y, static_cast<unsigned int>(m_buttons));
196+- }
197+ m_keyboard->updateXKBStateFromCore(((xcb_motion_notify_event_t *)event)->state);
198++ handleMotionNotify(event);
199+ HANDLE_PLATFORM_WINDOW_EVENT(xcb_motion_notify_event_t, event, handleMotionNotifyEvent);
200+ case XCB_CONFIGURE_NOTIFY:
201+ HANDLE_PLATFORM_WINDOW_EVENT(xcb_configure_notify_event_t, event, handleConfigureNotifyEvent);
202+diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
203+index 4d05965..9a73006 100644
204+--- a/src/plugins/platforms/xcb/qxcbconnection.h
205++++ b/src/plugins/platforms/xcb/qxcbconnection.h
206+@@ -496,6 +496,7 @@ private:
207+ void updateScreens();
208+ void handleButtonPress(xcb_generic_event_t *event);
209+ void handleButtonRelease(xcb_generic_event_t *event);
210++ void handleMotionNotify(xcb_generic_event_t *event);
211+
212+ bool m_xi2Enabled;
213+ int m_xi2Minor;
214+--
215+2.1.4
216+

Subscribers

People subscribed via source and target branches