From fdbf7cdd09fb5d32d74908a22bbc4459ed2b5517 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Thu, 3 Jan 2019 16:02:54 +0100 Subject: xcb: use QXcbConnection::selectionOwner() convenience API Change-Id: I4fbae152829206b15bf0430d3fb2c9e2b6026566 Reviewed-by: Liang Qi --- src/plugins/platforms/xcb/qxcbclipboard.cpp | 6 ++---- src/plugins/platforms/xcb/qxcbsystemtraytracker.cpp | 10 +--------- src/plugins/platforms/xcb/qxcbsystemtraytracker.h | 2 +- src/plugins/platforms/xcb/qxcbxsettings.cpp | 7 +++---- 4 files changed, 7 insertions(+), 18 deletions(-) (limited to 'src/plugins') 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; -- cgit v1.2.3