summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2019-01-03 16:02:54 +0100
committerLiang Qi <liang.qi@qt.io>2021-10-22 23:30:07 +0200
commitfdbf7cdd09fb5d32d74908a22bbc4459ed2b5517 (patch)
treea37e744b253281071960707a542f8c0799e7a33d /src/plugins/platforms
parent7f0e227d8afa578e6875c1e790e226e3366a01fb (diff)
xcb: use QXcbConnection::selectionOwner() convenience API
Change-Id: I4fbae152829206b15bf0430d3fb2c9e2b6026566 Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/xcb/qxcbclipboard.cpp6
-rw-r--r--src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp10
-rw-r--r--src/plugins/platforms/xcb/qxcbsystemtraytracker.h2
-rw-r--r--src/plugins/platforms/xcb/qxcbxsettings.cpp7
4 files changed, 7 insertions, 18 deletions
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
index d41ddebc0d..54fdcf620b 100644
--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
@@ -254,8 +254,7 @@ QXcbClipboard::~QXcbClipboard()
m_timestamp[QClipboard::Selection] != XCB_CURRENT_TIME) {
// First we check if there is a clipboard manager.
- auto reply = Q_XCB_REPLY(xcb_get_selection_owner, xcb_connection(), atom(QXcbAtom::CLIPBOARD_MANAGER));
- if (reply && reply->owner != XCB_NONE) {
+ if (connection()->selectionOwner(atom(QXcbAtom::CLIPBOARD_MANAGER)) != XCB_NONE) {
// we delete the property so the manager saves all TARGETS.
xcb_delete_property(xcb_connection(), connection()->qtSelectionOwner(),
atom(QXcbAtom::_QT_SELECTION));
@@ -784,8 +783,7 @@ xcb_generic_event_t *QXcbClipboard::waitForClipboardEvent(xcb_window_t window, i
const QXcbEventNode *flushedTailNode = queue->flushedTail();
if (checkManager) {
- auto reply = Q_XCB_REPLY(xcb_get_selection_owner, xcb_connection(), atom(QXcbAtom::CLIPBOARD_MANAGER));
- if (!reply || reply->owner == XCB_NONE)
+ if (connection()->selectionOwner(atom(QXcbAtom::CLIPBOARD_MANAGER)) == XCB_NONE)
return nullptr;
}
diff --git a/src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp b/src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp
index 6fae930497..3960c5d33f 100644
--- a/src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp
+++ b/src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp
@@ -83,14 +83,6 @@ QXcbSystemTrayTracker::QXcbSystemTrayTracker(QXcbConnection *connection,
{
}
-xcb_window_t QXcbSystemTrayTracker::locateTrayWindow(const QXcbConnection *connection, xcb_atom_t selection)
-{
- auto reply = Q_XCB_REPLY(xcb_get_selection_owner, connection->xcb_connection(), selection);
- if (!reply)
- return 0;
- return reply->owner;
-}
-
// Request a window to be docked on the tray.
void QXcbSystemTrayTracker::requestSystemTrayWindowDock(xcb_window_t window) const
{
@@ -110,7 +102,7 @@ void QXcbSystemTrayTracker::requestSystemTrayWindowDock(xcb_window_t window) con
xcb_window_t QXcbSystemTrayTracker::trayWindow()
{
if (!m_trayWindow) {
- m_trayWindow = QXcbSystemTrayTracker::locateTrayWindow(m_connection, m_selection);
+ m_trayWindow = m_connection->selectionOwner(m_selection);
if (m_trayWindow) { // Listen for DestroyNotify on tray.
m_connection->addWindowEventListener(m_trayWindow, this);
const quint32 mask = XCB_CW_EVENT_MASK;
diff --git a/src/plugins/platforms/xcb/qxcbsystemtraytracker.h b/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
index d2fc24c957..e8e24c82f3 100644
--- a/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
+++ b/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
@@ -70,7 +70,7 @@ private:
explicit QXcbSystemTrayTracker(QXcbConnection *connection,
xcb_atom_t trayAtom,
xcb_atom_t selection);
- static xcb_window_t locateTrayWindow(const QXcbConnection *connection, xcb_atom_t selection);
+
void emitSystemTrayWindowChanged();
xcb_visualid_t netSystemTrayVisual();
diff --git a/src/plugins/platforms/xcb/qxcbxsettings.cpp b/src/plugins/platforms/xcb/qxcbxsettings.cpp
index 902f196ba9..54b410f446 100644
--- a/src/plugins/platforms/xcb/qxcbxsettings.cpp
+++ b/src/plugins/platforms/xcb/qxcbxsettings.cpp
@@ -235,12 +235,11 @@ QXcbXSettings::QXcbXSettings(QXcbVirtualDesktop *screen)
xcb_atom_t selection_owner_atom = atom_reply->atom;
- auto selection_result = Q_XCB_REPLY(xcb_get_selection_owner,
- screen->xcb_connection(), selection_owner_atom);
- if (!selection_result)
+ xcb_window_t owner = screen->connection()->selectionOwner(selection_owner_atom);
+ if (owner == XCB_NONE)
return;
- d_ptr->x_settings_window = selection_result->owner;
+ d_ptr->x_settings_window = owner;
if (!d_ptr->x_settings_window)
return;