diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-08-03 15:00:39 +0200 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-08-17 09:59:31 +0000 |
commit | 0e63111416e3407c4fa3eac33ae69028216cf1b7 (patch) | |
tree | 532b9db605a480042bd8c1e730301dc79b400f1f /src/plugins/platforms/xcb/qxcbclipboard.cpp | |
parent | b9a0276a79856ff4eb329b8c79925bfc41925c1c (diff) |
xcb: avoid unnecessary InternAtom requests
QXcbConnection::internAtom() creates the atom if it does not exist. The
lifetime of an atom is not tied to the interning client. Atoms remain
defined until server reset (lost connection, restart).
So create the atom once via QXcbConnection::initializeAllAtoms(), and
later fetch the atom value from local array, instead of repeating
InternAtom requests.
Change-Id: I3cae21895febad6e5daf8c32e72612202baaad64
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbclipboard.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbclipboard.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp index ca2eff170d..84831cdbe5 100644 --- a/src/plugins/platforms/xcb/qxcbclipboard.cpp +++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp @@ -832,7 +832,7 @@ xcb_generic_event_t *QXcbClipboard::waitForClipboardEvent(xcb_window_t window, i } // process other clipboard events, since someone is probably requesting data from us - auto clipboardAtom = connection()->internAtom("CLIPBOARD"); + auto clipboardAtom = atom(QXcbAtom::CLIPBOARD); e = connection()->checkEvent([clipboardAtom](xcb_generic_event_t *event, int type) { xcb_atom_t selection = XCB_ATOM_NONE; if (type == XCB_SELECTION_REQUEST) |