[SCM] qtbase packaging branch, ubuntu, updated. ubuntu/5.6.1+dfsg-3ubuntu2-10-ge76670e
Timo Jyrinki
timo at moszumanska.debian.org
Thu Aug 25 06:50:33 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtbase.git;a=commitdiff;h=5817138
The following commit has been merged in the ubuntu branch:
commit 58171380f094c696e7eefef69b33b5b0aed17556
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Mon Feb 29 13:12:30 2016 +0000
Remove patches included in 5.6 RC.
---
debian/patches/multiscreen.diff | 93 --------------
debian/patches/qnativesocketengine_freebsd.diff | 16 ---
debian/patches/qt_functions_missing_eval.diff | 16 ---
debian/patches/series | 5 -
..._dont_select_XInput_events_on_root_window.patch | 40 ------
...b_fix_drag_and_drop_when_window_is_hidden.patch | 139 ---------------------
6 files changed, 309 deletions(-)
diff --git a/debian/patches/multiscreen.diff b/debian/patches/multiscreen.diff
deleted file mode 100644
index 73a0262..0000000
--- a/debian/patches/multiscreen.diff
+++ /dev/null
@@ -1,93 +0,0 @@
-Description: xcb: Fix incorrect screen number reported by QDesktopWidget
-Origin: upstream, https://codereview.qt-project.org/#/c/138819/
-Last-Update: 2015-01-03
-
-commit a6b2a4642f07cd6e52b447e1e441b257990a8d03
-Author: Błażej Szczygieł <spaz16 at wp.pl>
-Date: Sun Oct 25 01:11:28 2015 +0200
-
- Fix incorrect screen number reported by QDesktopWidget
-
- Screens connected to separate graphics cards are detected as
- separate screens which don't have offset. This patch fixes obtaining
- the screen number by QWidget: it uses the screen assigned to the root
- widget. The patch also assigns a proper QScreen to each QDesktopWidget
- screen().
-
- It also fixes closing a popup menu by clicking on another screen.
-
- Task-number: QTBUG-48545
- Change-Id: I3d76261c0c067293d39949c4428b2d8dfd085dc7
- Reviewed-by: Shawn Rutledge <shawn.rutledge at theqtcompany.com>
-
---- a/src/widgets/kernel/qdesktopwidget.cpp
-+++ b/src/widgets/kernel/qdesktopwidget.cpp
-@@ -36,6 +36,7 @@
- #include "qdesktopwidget_p.h"
- #include "qscreen.h"
- #include "qwidget_p.h"
-+#include "qwindow.h"
-
- QT_BEGIN_NAMESPACE
-
-@@ -99,13 +100,18 @@
-
- QRegion virtualGeometry;
-
-- // update the geometry of each screen widget, determine virtual geometry
-- // and emit change signals afterwards.
-+ // update the geometry of each screen widget, determine virtual geometry,
-+ // set the new screen for window handle and emit change signals afterwards.
- QList<int> changedScreens;
- for (int i = 0; i < screens.length(); i++) {
-- const QRect screenGeometry = screenList.at(i)->geometry();
-- if (screenGeometry != screens.at(i)->geometry()) {
-- screens.at(i)->setGeometry(screenGeometry);
-+ QDesktopScreenWidget *screenWidget = screens.at(i);
-+ QScreen *qScreen = screenList.at(i);
-+ QWindow *winHandle = screenWidget->windowHandle();
-+ if (winHandle && winHandle->screen() != qScreen)
-+ winHandle->setScreen(qScreen);
-+ const QRect screenGeometry = qScreen->geometry();
-+ if (screenGeometry != screenWidget->geometry()) {
-+ screenWidget->setGeometry(screenGeometry);
- changedScreens.push_back(i);
- }
- virtualGeometry += screenGeometry;
-@@ -191,6 +197,21 @@
- if (!w)
- return 0;
-
-+ // Find the root widget, get a QScreen pointer from it and find
-+ // the screen number.
-+ const QWidget *root = w;
-+ const QWidget *tmp = w;
-+ while ((tmp = tmp->parentWidget()))
-+ root = tmp;
-+ QWindow *winHandle = root->windowHandle();
-+ if (winHandle) {
-+ int screenIdx = QGuiApplication::screens().indexOf(winHandle->screen());
-+ if (screenIdx > -1)
-+ return screenIdx;
-+ }
-+
-+ // If the screen number cannot be obtained using QScreen pointer,
-+ // get it from window position using screen geometry.
- QRect frame = w->frameGeometry();
- if (!w->isWindow())
- frame.moveTopLeft(w->mapToGlobal(QPoint(0, 0)));
---- a/src/widgets/widgets/qmenu.cpp
-+++ b/src/widgets/widgets/qmenu.cpp
-@@ -2586,7 +2586,11 @@
- Q_D(QMenu);
- if (d->aboutToHide || d->mouseEventTaken(e))
- return;
-- if (!rect().contains(e->pos())) {
-+ // Workaround for XCB on multiple screens which doesn't have offset. If the menu is open on one screen
-+ // and mouse clicks on second screen, e->pos() is QPoint(0,0) and the menu doesn't hide. This trick makes
-+ // possible to hide the menu when mouse clicks on another screen (e->screenPos() returns correct value).
-+ // Only when mouse clicks in QPoint(0,0) on second screen, the menu doesn't hide.
-+ if ((e->pos().isNull() && !e->screenPos().isNull()) || !rect().contains(e->pos())) {
- if (d->noReplayFor
- && QRect(d->noReplayFor->mapToGlobal(QPoint()), d->noReplayFor->size()).contains(e->globalPos()))
- setAttribute(Qt::WA_NoMouseReplay);
diff --git a/debian/patches/qnativesocketengine_freebsd.diff b/debian/patches/qnativesocketengine_freebsd.diff
deleted file mode 100644
index c9aa7c1..0000000
--- a/debian/patches/qnativesocketengine_freebsd.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: QNativeSocketEngine: fix undefined variable on FreeBSD
-Author: Dmitry Shachnev <mitya57 at debian.org>
-Forwarded: https://codereview.qt-project.org/144838
-Last-Update: 2015-12-30
-
---- a/src/network/socket/qnativesocketengine_unix.cpp
-+++ b/src/network/socket/qnativesocketengine_unix.cpp
-@@ -994,7 +994,7 @@
- # elif defined(IP_SENDSRCADDR)
- struct in_addr *data = reinterpret_cast<in_addr *>(CMSG_DATA(cmsgptr));
- cmsgptr->cmsg_type = IP_SENDSRCADDR;
-- addr->s_addr = htonl(header.senderAddress.toIPv4Address());
-+ data->s_addr = htonl(header.senderAddress.toIPv4Address());
- # endif
- cmsgptr->cmsg_level = IPPROTO_IP;
- msg.msg_controllen += CMSG_SPACE(sizeof(*data));
diff --git a/debian/patches/qt_functions_missing_eval.diff b/debian/patches/qt_functions_missing_eval.diff
deleted file mode 100644
index 07203e5..0000000
--- a/debian/patches/qt_functions_missing_eval.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: qt_functions.prf: Add missing $$eval
-Author: Dmitry Shachnev <mitya57 at debian.org>
-Forwarded: https://codereview.qt-project.org/144902
-Last-Update: 2016-01-02
-
---- a/mkspecs/features/qt_functions.prf
-+++ b/mkspecs/features/qt_functions.prf
-@@ -152,7 +152,7 @@
- pluginpath.value =
- ppaths = $$[QT_INSTALL_PLUGINS/get]
- for(qplug, QT_PLUGINS): \
-- contains(ptypes, QT_PLUGIN.$${qplug}.TYPE): \
-+ contains(ptypes, $$eval(QT_PLUGIN.$${qplug}.TYPE)): \
- ppaths += $$eval(QT_PLUGIN.$${qplug}.PATH)
- ppaths = $$unique(ppaths)
- for(qplug, ppaths) {
diff --git a/debian/patches/series b/debian/patches/series
index 2117c29..a6d1480 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,10 +1,5 @@
# Backported from upstream
no_dbus_dependency.diff
-qnativesocketengine_freebsd.diff
-qt_functions_missing_eval.diff
-multiscreen.diff
-xcb_dont_select_XInput_events_on_root_window.patch
-xcb_fix_drag_and_drop_when_window_is_hidden.patch
fix_not_delivering_focus.patch
# Debian specific.
diff --git a/debian/patches/xcb_dont_select_XInput_events_on_root_window.patch b/debian/patches/xcb_dont_select_XInput_events_on_root_window.patch
deleted file mode 100644
index 820cbc8..0000000
--- a/debian/patches/xcb_dont_select_XInput_events_on_root_window.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2d8b0d1cd566cc0c3ab600650b66cdc771d8314f Mon Sep 17 00:00:00 2001
-From: Shawn Rutledge <shawn.rutledge at digia.com>
-Date: Mon, 4 Jan 2016 15:09:10 +0100
-Subject: [PATCH] xcb: don't select XInput events on the root window
-
-If we select XInput events, then when the mouse is clicked, there will
-not be a fallback to a core pointer event. But a typical Qt application
-doesn't own the root window. If the window manager (such as OpenBox,
-Awesome or fvwm) relies on receiving core pointer click events, e.g.
-to show a desktop menu, then each time a device is hotplugged while a
-Qt application is running, we would select XI2 events and thereby
-prevent the window manager from receiving them.
-
-QDesktopWidget's native window is added to m_mapper, even when
-it isn't mapped. Then after hotplugging there's a hierarchy event,
-and that calls xi2Select for every window in m_mapper. The assumption
-with this patch is that the root window does need to be in m_mapper
-in case the QDesktopWidget is shown (that was done already in Qt 5.1:
-fca94fa5ed8321e84e7b0ff515620fbb901db545), but xi2Select must avoid
-selecting XI2 events on it to fix this bug.
-
-Task-number: QTBUG-49952
-Change-Id: I5c160e879d93fadfce14120ef2e89a4f71d4f599
-Reviewed-by: Uli Schlachter <psychon at znc.in>
-Reviewed-by: Paul Olav Tvete <paul.tvete at theqtcompany.com>
----
- src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
-+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
-@@ -274,7 +274,7 @@
-
- void QXcbConnection::xi2Select(xcb_window_t window)
- {
-- if (!m_xi2Enabled)
-+ if (!m_xi2Enabled || window == rootWindow())
- return;
-
- Display *xDisplay = static_cast<Display *>(m_xlib_display);
diff --git a/debian/patches/xcb_fix_drag_and_drop_when_window_is_hidden.patch b/debian/patches/xcb_fix_drag_and_drop_when_window_is_hidden.patch
deleted file mode 100644
index 3679aa7..0000000
--- a/debian/patches/xcb_fix_drag_and_drop_when_window_is_hidden.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From 0b3da1907d46a03e8838c4086b23d48ba69c8776 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= <spaz16 at wp.pl>
-Date: Sun, 18 Oct 2015 00:16:15 +0200
-Subject: [PATCH] xcb: fix drag and drop when window is hidden
-
-This patch fixes drag and drop operation on XCB platform when window
-will be hidden. The window can be hidden during dnd operation by
-switching virtual desktops or by minimizing all windows (show desktop)
-using key shortcut.
-
-The ShapedPixmapWindow must grab mouse before dnd operation if mouse is
-not grabbed by other window (like in Qt4).
-
-Task-number: QTBUG-46243
-Change-Id: I807bc842719a2d0ea0f4dcb733c06c1fd08813e1
-Reviewed-by: Shawn Rutledge <shawn.rutledge at theqtcompany.com>
----
- src/plugins/platforms/xcb/qxcbconnection.cpp | 5 +++++
- src/plugins/platforms/xcb/qxcbconnection.h | 3 +++
- src/plugins/platforms/xcb/qxcbdrag.cpp | 2 ++
- src/plugins/platforms/xcb/qxcbwindow.cpp | 21 +++++++++++++++++++--
- 4 files changed, 29 insertions(+), 2 deletions(-)
-
---- a/src/plugins/platforms/xcb/qxcbconnection.cpp
-+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
-@@ -535,6 +535,7 @@
- , has_xkb(false)
- , m_buttons(0)
- , m_focusWindow(0)
-+ , m_mouseGrabber(0)
- , m_clientLeader(0)
- , m_systemTrayTracker(0)
- , m_glIntegration(Q_NULLPTR)
-@@ -1328,6 +1329,10 @@
- {
- m_focusWindow = w;
- }
-+void QXcbConnection::setMouseGrabber(QXcbWindow *w)
-+{
-+ m_mouseGrabber = w;
-+}
-
- void QXcbConnection::grabServer()
- {
---- a/src/plugins/platforms/xcb/qxcbconnection.h
-+++ b/src/plugins/platforms/xcb/qxcbconnection.h
-@@ -469,6 +469,8 @@
-
- QXcbWindow *focusWindow() const { return m_focusWindow; }
- void setFocusWindow(QXcbWindow *);
-+ QXcbWindow *mouseGrabber() const { return m_mouseGrabber; }
-+ void setMouseGrabber(QXcbWindow *);
-
- QByteArray startupId() const { return m_startupId; }
- void setStartupId(const QByteArray &nextId) { m_startupId = nextId; }
-@@ -647,6 +649,7 @@
- Qt::MouseButtons m_buttons;
-
- QXcbWindow *m_focusWindow;
-+ QXcbWindow *m_mouseGrabber;
-
- xcb_window_t m_clientLeader;
- QByteArray m_startupId;
---- a/src/plugins/platforms/xcb/qxcbdrag.cpp
-+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
-@@ -194,6 +194,8 @@
-
- setUseCompositing(current_virtual_desktop->compositingActive());
- QBasicDrag::startDrag();
-+ if (connection()->mouseGrabber() == Q_NULLPTR)
-+ shapedPixmapWindow()->setMouseGrabEnabled(true);
- }
-
- void QXcbDrag::endDrag()
---- a/src/plugins/platforms/xcb/qxcbwindow.cpp
-+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
-@@ -594,12 +594,16 @@
- {
- if (window()->type() != Qt::ForeignWindow)
- destroy();
-+ else if (connection()->mouseGrabber() == this)
-+ connection()->setMouseGrabber(Q_NULLPTR);
- }
-
- void QXcbWindow::destroy()
- {
- if (connection()->focusWindow() == this)
- doFocusOut();
-+ if (connection()->mouseGrabber() == this)
-+ connection()->setMouseGrabber(Q_NULLPTR);
-
- if (m_syncCounter && m_usingSyncProtocol)
- Q_XCB_CALL(xcb_sync_destroy_counter(xcb_connection(), m_syncCounter));
-@@ -847,6 +851,9 @@
-
- xcb_flush(xcb_connection());
-
-+ if (connection()->mouseGrabber() == this)
-+ connection()->setMouseGrabber(Q_NULLPTR);
-+
- m_mapped = false;
- }
-
-@@ -2357,6 +2364,8 @@
- QWindowSystemInterface::handleWindowStateChanged(window(), newState);
- m_lastWindowStateEvent = newState;
- m_windowState = newState;
-+ if (m_windowState == Qt::WindowMinimized && connection()->mouseGrabber() == this)
-+ connection()->setMouseGrabber(Q_NULLPTR);
- }
- return;
- } else if (event->atom == atom(QXcbAtom::_NET_FRAME_EXTENTS)) {
-@@ -2411,9 +2420,15 @@
-
- bool QXcbWindow::setMouseGrabEnabled(bool grab)
- {
-+ if (!grab && connection()->mouseGrabber() == this)
-+ connection()->setMouseGrabber(Q_NULLPTR);
- #ifdef XCB_USE_XINPUT22
-- if (connection()->xi2MouseEvents())
-- return connection()->xi2SetMouseGrabEnabled(m_window, grab);
-+ if (connection()->xi2MouseEvents()) {
-+ bool result = connection()->xi2SetMouseGrabEnabled(m_window, grab);
-+ if (grab && result)
-+ connection()->setMouseGrabber(this);
-+ return result;
-+ }
- #endif
- if (grab && !connection()->canGrab())
- return false;
-@@ -2432,6 +2447,8 @@
- xcb_grab_pointer_reply_t *reply = xcb_grab_pointer_reply(xcb_connection(), cookie, NULL);
- bool result = !(!reply || reply->status != XCB_GRAB_STATUS_SUCCESS);
- free(reply);
-+ if (result)
-+ connection()->setMouseGrabber(this);
- return result;
- }
-
--
qtbase packaging
More information about the pkg-kde-commits
mailing list