XCB: do not use reserved identifiers

Any identifier starting with underscore followed by a capital letter is
reserved for the implementation in C++, so don't use them. Rename the
entries in the Atom enumeration by adding an "Atom" prefix to them.

Change-Id: I059e2093149f39cc9324cd1159c0d9e076eda93a
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 3d72e8829fb9ebcd3b1179b54ad4053de05368ff)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Giuseppe D'Angelo 2023-02-02 00:51:23 +01:00 committed by Qt Cherry-pick Bot
parent 557ee37b8f
commit 5486628918
13 changed files with 445 additions and 445 deletions

View File

@ -10,204 +10,204 @@ class QXcbAtom
public: public:
enum Atom { enum Atom {
// window-manager <-> client protocols // window-manager <-> client protocols
WM_PROTOCOLS, AtomWM_PROTOCOLS,
WM_DELETE_WINDOW, AtomWM_DELETE_WINDOW,
WM_TAKE_FOCUS, AtomWM_TAKE_FOCUS,
_NET_WM_PING, Atom_NET_WM_PING,
_NET_WM_CONTEXT_HELP, Atom_NET_WM_CONTEXT_HELP,
_NET_WM_SYNC_REQUEST, Atom_NET_WM_SYNC_REQUEST,
_NET_WM_SYNC_REQUEST_COUNTER, Atom_NET_WM_SYNC_REQUEST_COUNTER,
MANAGER, // System tray notification AtomMANAGER, // System tray notification
_NET_SYSTEM_TRAY_OPCODE, // System tray operation Atom_NET_SYSTEM_TRAY_OPCODE, // System tray operation
// ICCCM window state // ICCCM window state
WM_STATE, AtomWM_STATE,
WM_CHANGE_STATE, AtomWM_CHANGE_STATE,
WM_CLASS, AtomWM_CLASS,
WM_NAME, AtomWM_NAME,
// Session management // Session management
WM_CLIENT_LEADER, AtomWM_CLIENT_LEADER,
WM_WINDOW_ROLE, AtomWM_WINDOW_ROLE,
SM_CLIENT_ID, AtomSM_CLIENT_ID,
WM_CLIENT_MACHINE, AtomWM_CLIENT_MACHINE,
// Clipboard // Clipboard
CLIPBOARD, AtomCLIPBOARD,
INCR, AtomINCR,
TARGETS, AtomTARGETS,
MULTIPLE, AtomMULTIPLE,
TIMESTAMP, AtomTIMESTAMP,
SAVE_TARGETS, AtomSAVE_TARGETS,
CLIP_TEMPORARY, AtomCLIP_TEMPORARY,
_QT_SELECTION, Atom_QT_SELECTION,
_QT_CLIPBOARD_SENTINEL, Atom_QT_CLIPBOARD_SENTINEL,
_QT_SELECTION_SENTINEL, Atom_QT_SELECTION_SENTINEL,
CLIPBOARD_MANAGER, AtomCLIPBOARD_MANAGER,
RESOURCE_MANAGER, AtomRESOURCE_MANAGER,
_XSETROOT_ID, Atom_XSETROOT_ID,
_QT_SCROLL_DONE, Atom_QT_SCROLL_DONE,
_QT_INPUT_ENCODING, Atom_QT_INPUT_ENCODING,
// Qt/XCB specific // Qt/XCB specific
_QT_CLOSE_CONNECTION, Atom_QT_CLOSE_CONNECTION,
_QT_GET_TIMESTAMP, Atom_QT_GET_TIMESTAMP,
_MOTIF_WM_HINTS, Atom_MOTIF_WM_HINTS,
DTWM_IS_RUNNING, AtomDTWM_IS_RUNNING,
ENLIGHTENMENT_DESKTOP, AtomENLIGHTENMENT_DESKTOP,
_DT_SAVE_MODE, Atom_DT_SAVE_MODE,
_SGI_DESKS_MANAGER, Atom_SGI_DESKS_MANAGER,
// EWMH (aka NETWM) // EWMH (aka NETWM)
_NET_SUPPORTED, Atom_NET_SUPPORTED,
_NET_VIRTUAL_ROOTS, Atom_NET_VIRTUAL_ROOTS,
_NET_WORKAREA, Atom_NET_WORKAREA,
_NET_MOVERESIZE_WINDOW, Atom_NET_MOVERESIZE_WINDOW,
_NET_WM_MOVERESIZE, Atom_NET_WM_MOVERESIZE,
_NET_WM_NAME, Atom_NET_WM_NAME,
_NET_WM_ICON_NAME, Atom_NET_WM_ICON_NAME,
_NET_WM_ICON, Atom_NET_WM_ICON,
_NET_WM_PID, Atom_NET_WM_PID,
_NET_WM_WINDOW_OPACITY, Atom_NET_WM_WINDOW_OPACITY,
_NET_WM_STATE, Atom_NET_WM_STATE,
_NET_WM_STATE_ABOVE, Atom_NET_WM_STATE_ABOVE,
_NET_WM_STATE_BELOW, Atom_NET_WM_STATE_BELOW,
_NET_WM_STATE_FULLSCREEN, Atom_NET_WM_STATE_FULLSCREEN,
_NET_WM_STATE_MAXIMIZED_HORZ, Atom_NET_WM_STATE_MAXIMIZED_HORZ,
_NET_WM_STATE_MAXIMIZED_VERT, Atom_NET_WM_STATE_MAXIMIZED_VERT,
_NET_WM_STATE_MODAL, Atom_NET_WM_STATE_MODAL,
_NET_WM_STATE_STAYS_ON_TOP, Atom_NET_WM_STATE_STAYS_ON_TOP,
_NET_WM_STATE_DEMANDS_ATTENTION, Atom_NET_WM_STATE_DEMANDS_ATTENTION,
_NET_WM_STATE_HIDDEN, Atom_NET_WM_STATE_HIDDEN,
_NET_WM_USER_TIME, Atom_NET_WM_USER_TIME,
_NET_WM_USER_TIME_WINDOW, Atom_NET_WM_USER_TIME_WINDOW,
_NET_WM_FULL_PLACEMENT, Atom_NET_WM_FULL_PLACEMENT,
_NET_WM_WINDOW_TYPE, Atom_NET_WM_WINDOW_TYPE,
_NET_WM_WINDOW_TYPE_DESKTOP, Atom_NET_WM_WINDOW_TYPE_DESKTOP,
_NET_WM_WINDOW_TYPE_DOCK, Atom_NET_WM_WINDOW_TYPE_DOCK,
_NET_WM_WINDOW_TYPE_TOOLBAR, Atom_NET_WM_WINDOW_TYPE_TOOLBAR,
_NET_WM_WINDOW_TYPE_MENU, Atom_NET_WM_WINDOW_TYPE_MENU,
_NET_WM_WINDOW_TYPE_UTILITY, Atom_NET_WM_WINDOW_TYPE_UTILITY,
_NET_WM_WINDOW_TYPE_SPLASH, Atom_NET_WM_WINDOW_TYPE_SPLASH,
_NET_WM_WINDOW_TYPE_DIALOG, Atom_NET_WM_WINDOW_TYPE_DIALOG,
_NET_WM_WINDOW_TYPE_DROPDOWN_MENU, Atom_NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
_NET_WM_WINDOW_TYPE_POPUP_MENU, Atom_NET_WM_WINDOW_TYPE_POPUP_MENU,
_NET_WM_WINDOW_TYPE_TOOLTIP, Atom_NET_WM_WINDOW_TYPE_TOOLTIP,
_NET_WM_WINDOW_TYPE_NOTIFICATION, Atom_NET_WM_WINDOW_TYPE_NOTIFICATION,
_NET_WM_WINDOW_TYPE_COMBO, Atom_NET_WM_WINDOW_TYPE_COMBO,
_NET_WM_WINDOW_TYPE_DND, Atom_NET_WM_WINDOW_TYPE_DND,
_NET_WM_WINDOW_TYPE_NORMAL, Atom_NET_WM_WINDOW_TYPE_NORMAL,
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE, Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE,
_KDE_NET_WM_FRAME_STRUT, Atom_KDE_NET_WM_FRAME_STRUT,
_NET_FRAME_EXTENTS, Atom_NET_FRAME_EXTENTS,
_NET_STARTUP_INFO, Atom_NET_STARTUP_INFO,
_NET_STARTUP_INFO_BEGIN, Atom_NET_STARTUP_INFO_BEGIN,
_NET_STARTUP_ID, Atom_NET_STARTUP_ID,
_NET_SUPPORTING_WM_CHECK, Atom_NET_SUPPORTING_WM_CHECK,
_NET_WM_CM_S0, Atom_NET_WM_CM_S0,
_NET_SYSTEM_TRAY_VISUAL, Atom_NET_SYSTEM_TRAY_VISUAL,
_NET_ACTIVE_WINDOW, Atom_NET_ACTIVE_WINDOW,
// Property formats // Property formats
TEXT, AtomTEXT,
UTF8_STRING, AtomUTF8_STRING,
CARDINAL, AtomCARDINAL,
// Xdnd // Xdnd
XdndEnter, AtomXdndEnter,
XdndPosition, AtomXdndPosition,
XdndStatus, AtomXdndStatus,
XdndLeave, AtomXdndLeave,
XdndDrop, AtomXdndDrop,
XdndFinished, AtomXdndFinished,
XdndTypelist, AtomXdndTypelist,
XdndActionList, AtomXdndActionList,
XdndSelection, AtomXdndSelection,
XdndAware, AtomXdndAware,
XdndProxy, AtomXdndProxy,
XdndActionCopy, AtomXdndActionCopy,
XdndActionLink, AtomXdndActionLink,
XdndActionMove, AtomXdndActionMove,
XdndActionAsk, AtomXdndActionAsk,
XdndActionPrivate, AtomXdndActionPrivate,
// Xkb // Xkb
_XKB_RULES_NAMES, Atom_XKB_RULES_NAMES,
// XEMBED // XEMBED
_XEMBED, Atom_XEMBED,
_XEMBED_INFO, Atom_XEMBED_INFO,
// XInput2 // XInput2
ButtonLeft, AtomButtonLeft,
ButtonMiddle, AtomButtonMiddle,
ButtonRight, AtomButtonRight,
ButtonWheelUp, AtomButtonWheelUp,
ButtonWheelDown, AtomButtonWheelDown,
ButtonHorizWheelLeft, AtomButtonHorizWheelLeft,
ButtonHorizWheelRight, AtomButtonHorizWheelRight,
AbsMTPositionX, AtomAbsMTPositionX,
AbsMTPositionY, AtomAbsMTPositionY,
AbsMTTouchMajor, AtomAbsMTTouchMajor,
AbsMTTouchMinor, AtomAbsMTTouchMinor,
AbsMTOrientation, AtomAbsMTOrientation,
AbsMTPressure, AtomAbsMTPressure,
AbsMTTrackingID, AtomAbsMTTrackingID,
MaxContacts, AtomMaxContacts,
RelX, AtomRelX,
RelY, AtomRelY,
// XInput2 tablet // XInput2 tablet
AbsX, AtomAbsX,
AbsY, AtomAbsY,
AbsPressure, AtomAbsPressure,
AbsTiltX, AtomAbsTiltX,
AbsTiltY, AtomAbsTiltY,
AbsWheel, AtomAbsWheel,
AbsDistance, AtomAbsDistance,
WacomSerialIDs, AtomWacomSerialIDs,
INTEGER, AtomINTEGER,
RelHorizWheel, AtomRelHorizWheel,
RelVertWheel, AtomRelVertWheel,
RelHorizScroll, AtomRelHorizScroll,
RelVertScroll, AtomRelVertScroll,
_XSETTINGS_SETTINGS, Atom_XSETTINGS_SETTINGS,
_COMPIZ_DECOR_PENDING, Atom_COMPIZ_DECOR_PENDING,
_COMPIZ_DECOR_REQUEST, Atom_COMPIZ_DECOR_REQUEST,
_COMPIZ_DECOR_DELETE_PIXMAP, Atom_COMPIZ_DECOR_DELETE_PIXMAP,
_COMPIZ_TOOLKIT_ACTION, Atom_COMPIZ_TOOLKIT_ACTION,
_GTK_LOAD_ICONTHEMES, Atom_GTK_LOAD_ICONTHEMES,
AT_SPI_BUS, AtomAT_SPI_BUS,
EDID, AtomEDID,
EDID_DATA, AtomEDID_DATA,
XFree86_DDC_EDID1_RAWDATA, AtomXFree86_DDC_EDID1_RAWDATA,
_ICC_PROFILE, Atom_ICC_PROFILE,
NAtoms NAtoms
}; };

View File

@ -31,7 +31,7 @@ public:
break; break;
case QClipboard::Clipboard: case QClipboard::Clipboard:
modeAtom = m_clipboard->atom(QXcbAtom::CLIPBOARD); modeAtom = m_clipboard->atom(QXcbAtom::AtomCLIPBOARD);
break; break;
default: default:
@ -61,7 +61,7 @@ protected:
// get the list of targets from the current clipboard owner - we do this // get the list of targets from the current clipboard owner - we do this
// once so that multiple calls to this function don't require multiple // once so that multiple calls to this function don't require multiple
// server round trips... // server round trips...
that->format_atoms = m_clipboard->getDataInFormat(modeAtom, m_clipboard->atom(QXcbAtom::TARGETS)); that->format_atoms = m_clipboard->getDataInFormat(modeAtom, m_clipboard->atom(QXcbAtom::AtomTARGETS));
if (format_atoms.size() > 0) { if (format_atoms.size() > 0) {
const xcb_atom_t *targets = (const xcb_atom_t *) format_atoms.data(); const xcb_atom_t *targets = (const xcb_atom_t *) format_atoms.data();
@ -203,7 +203,7 @@ QXcbClipboard::QXcbClipboard(QXcbConnection *c)
xcb_xfixes_select_selection_input_checked(xcb_connection(), connection()->qtSelectionOwner(), xcb_xfixes_select_selection_input_checked(xcb_connection(), connection()->qtSelectionOwner(),
XCB_ATOM_PRIMARY, mask); XCB_ATOM_PRIMARY, mask);
xcb_xfixes_select_selection_input_checked(xcb_connection(), connection()->qtSelectionOwner(), xcb_xfixes_select_selection_input_checked(xcb_connection(), connection()->qtSelectionOwner(),
atom(QXcbAtom::CLIPBOARD), mask); atom(QXcbAtom::AtomCLIPBOARD), mask);
} }
// xcb_change_property_request_t and xcb_get_property_request_t are the same size // xcb_change_property_request_t and xcb_get_property_request_t are the same size
@ -218,13 +218,13 @@ QXcbClipboard::~QXcbClipboard()
m_timestamp[QClipboard::Selection] != XCB_CURRENT_TIME) { m_timestamp[QClipboard::Selection] != XCB_CURRENT_TIME) {
// First we check if there is a clipboard manager. // First we check if there is a clipboard manager.
if (connection()->selectionOwner(atom(QXcbAtom::CLIPBOARD_MANAGER)) != XCB_NONE) { if (connection()->selectionOwner(atom(QXcbAtom::AtomCLIPBOARD_MANAGER)) != XCB_NONE) {
// we delete the property so the manager saves all TARGETS. // we delete the property so the manager saves all TARGETS.
xcb_delete_property(xcb_connection(), connection()->qtSelectionOwner(), xcb_delete_property(xcb_connection(), connection()->qtSelectionOwner(),
atom(QXcbAtom::_QT_SELECTION)); atom(QXcbAtom::Atom_QT_SELECTION));
xcb_convert_selection(xcb_connection(), connection()->qtSelectionOwner(), xcb_convert_selection(xcb_connection(), connection()->qtSelectionOwner(),
atom(QXcbAtom::CLIPBOARD_MANAGER), atom(QXcbAtom::SAVE_TARGETS), atom(QXcbAtom::AtomCLIPBOARD_MANAGER), atom(QXcbAtom::AtomSAVE_TARGETS),
atom(QXcbAtom::_QT_SELECTION), connection()->time()); atom(QXcbAtom::Atom_QT_SELECTION), connection()->time());
connection()->sync(); connection()->sync();
// waiting until the clipboard manager fetches the content. // waiting until the clipboard manager fetches the content.
@ -259,7 +259,7 @@ bool QXcbClipboard::handlePropertyNotify(const xcb_generic_event_t *event)
xcb_atom_t QXcbClipboard::atomForMode(QClipboard::Mode mode) const xcb_atom_t QXcbClipboard::atomForMode(QClipboard::Mode mode) const
{ {
if (mode == QClipboard::Clipboard) if (mode == QClipboard::Clipboard)
return atom(QXcbAtom::CLIPBOARD); return atom(QXcbAtom::AtomCLIPBOARD);
if (mode == QClipboard::Selection) if (mode == QClipboard::Selection)
return XCB_ATOM_PRIMARY; return XCB_ATOM_PRIMARY;
return XCB_NONE; return XCB_NONE;
@ -269,7 +269,7 @@ QClipboard::Mode QXcbClipboard::modeForAtom(xcb_atom_t a) const
{ {
if (a == XCB_ATOM_PRIMARY) if (a == XCB_ATOM_PRIMARY)
return QClipboard::Selection; return QClipboard::Selection;
if (a == atom(QXcbAtom::CLIPBOARD)) if (a == atom(QXcbAtom::AtomCLIPBOARD))
return QClipboard::Clipboard; return QClipboard::Clipboard;
// not supported enum value, used to detect errors // not supported enum value, used to detect errors
return QClipboard::FindBuffer; return QClipboard::FindBuffer;
@ -412,10 +412,10 @@ xcb_atom_t QXcbClipboard::sendTargetsSelection(QMimeData *d, xcb_window_t window
types.append(atoms.at(j)); types.append(atoms.at(j));
} }
} }
types.append(atom(QXcbAtom::TARGETS)); types.append(atom(QXcbAtom::AtomTARGETS));
types.append(atom(QXcbAtom::MULTIPLE)); types.append(atom(QXcbAtom::AtomMULTIPLE));
types.append(atom(QXcbAtom::TIMESTAMP)); types.append(atom(QXcbAtom::AtomTIMESTAMP));
types.append(atom(QXcbAtom::SAVE_TARGETS)); types.append(atom(QXcbAtom::AtomSAVE_TARGETS));
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, property, XCB_ATOM_ATOM, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, property, XCB_ATOM_ATOM,
32, types.size(), (const void *)types.constData()); 32, types.size(), (const void *)types.constData());
@ -439,7 +439,7 @@ xcb_atom_t QXcbClipboard::sendSelection(QMimeData *d, xcb_atom_t target, xcb_win
// don't allow INCR transfers when using MULTIPLE or to // don't allow INCR transfers when using MULTIPLE or to
// Motif clients (since Motif doesn't support INCR) // Motif clients (since Motif doesn't support INCR)
static xcb_atom_t motif_clip_temporary = atom(QXcbAtom::CLIP_TEMPORARY); static xcb_atom_t motif_clip_temporary = atom(QXcbAtom::AtomCLIP_TEMPORARY);
bool allow_incr = property != motif_clip_temporary; bool allow_incr = property != motif_clip_temporary;
// This 'bool' can be removed once there is a proper fix for QTBUG-32853 // This 'bool' can be removed once there is a proper fix for QTBUG-32853
if (m_clipboard_closing) if (m_clipboard_closing)
@ -448,7 +448,7 @@ xcb_atom_t QXcbClipboard::sendSelection(QMimeData *d, xcb_atom_t target, xcb_win
if (data.size() > m_maxPropertyRequestDataBytes && allow_incr) { if (data.size() > m_maxPropertyRequestDataBytes && allow_incr) {
long bytes = data.size(); long bytes = data.size();
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, property, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, property,
atom(QXcbAtom::INCR), 32, 1, (const void *)&bytes); atom(QXcbAtom::AtomINCR), 32, 1, (const void *)&bytes);
auto transaction = new QXcbClipboardTransaction(this, window, property, data, atomFormat, dataFormat); auto transaction = new QXcbClipboardTransaction(this, window, property, data, atomFormat, dataFormat);
m_transactions.insert(window, transaction); m_transactions.insert(window, transaction);
return property; return property;
@ -532,9 +532,9 @@ void QXcbClipboard::handleSelectionRequest(xcb_selection_request_event_t *req)
return; return;
} }
xcb_atom_t targetsAtom = atom(QXcbAtom::TARGETS); xcb_atom_t targetsAtom = atom(QXcbAtom::AtomTARGETS);
xcb_atom_t multipleAtom = atom(QXcbAtom::MULTIPLE); xcb_atom_t multipleAtom = atom(QXcbAtom::AtomMULTIPLE);
xcb_atom_t timestampAtom = atom(QXcbAtom::TIMESTAMP); xcb_atom_t timestampAtom = atom(QXcbAtom::AtomTIMESTAMP);
struct AtomPair { xcb_atom_t target; xcb_atom_t property; } *multi = nullptr; struct AtomPair { xcb_atom_t target; xcb_atom_t property; } *multi = nullptr;
xcb_atom_t multi_type = XCB_NONE; xcb_atom_t multi_type = XCB_NONE;
@ -708,7 +708,7 @@ bool QXcbClipboard::clipboardReadProperty(xcb_window_t win, xcb_atom_t property,
// correct size, not 0-term. // correct size, not 0-term.
if (size) if (size)
*size = buffer_offset; *size = buffer_offset;
if (*type == atom(QXcbAtom::INCR)) if (*type == atom(QXcbAtom::AtomINCR))
m_incr_receive_time = connection()->getTimestamp(); m_incr_receive_time = connection()->getTimestamp();
if (deleteProperty) if (deleteProperty)
xcb_delete_property(xcb_connection(), win, property); xcb_delete_property(xcb_connection(), win, property);
@ -747,12 +747,12 @@ xcb_generic_event_t *QXcbClipboard::waitForClipboardEvent(xcb_window_t window, i
const QXcbEventNode *flushedTailNode = queue->flushedTail(); const QXcbEventNode *flushedTailNode = queue->flushedTail();
if (checkManager) { if (checkManager) {
if (connection()->selectionOwner(atom(QXcbAtom::CLIPBOARD_MANAGER)) == XCB_NONE) if (connection()->selectionOwner(atom(QXcbAtom::AtomCLIPBOARD_MANAGER)) == XCB_NONE)
return nullptr; return nullptr;
} }
// process other clipboard events, since someone is probably requesting data from us // process other clipboard events, since someone is probably requesting data from us
auto clipboardAtom = atom(QXcbAtom::CLIPBOARD); auto clipboardAtom = atom(QXcbAtom::AtomCLIPBOARD);
e = queue->peek([clipboardAtom](xcb_generic_event_t *event, int type) { e = queue->peek([clipboardAtom](xcb_generic_event_t *event, int type) {
xcb_atom_t selection = XCB_ATOM_NONE; xcb_atom_t selection = XCB_ATOM_NONE;
if (type == XCB_SELECTION_REQUEST) if (type == XCB_SELECTION_REQUEST)
@ -846,7 +846,7 @@ QByteArray QXcbClipboard::clipboardReadIncrementalProperty(xcb_window_t win, xcb
QByteArray QXcbClipboard::getDataInFormat(xcb_atom_t modeAtom, xcb_atom_t fmtAtom) QByteArray QXcbClipboard::getDataInFormat(xcb_atom_t modeAtom, xcb_atom_t fmtAtom)
{ {
return getSelection(modeAtom, fmtAtom, atom(QXcbAtom::_QT_SELECTION)); return getSelection(modeAtom, fmtAtom, atom(QXcbAtom::Atom_QT_SELECTION));
} }
QByteArray QXcbClipboard::getSelection(xcb_atom_t selection, xcb_atom_t target, xcb_atom_t property, xcb_timestamp_t time) QByteArray QXcbClipboard::getSelection(xcb_atom_t selection, xcb_atom_t target, xcb_atom_t property, xcb_timestamp_t time)
@ -870,7 +870,7 @@ QByteArray QXcbClipboard::getSelection(xcb_atom_t selection, xcb_atom_t target,
xcb_atom_t type; xcb_atom_t type;
if (clipboardReadProperty(win, property, true, &buf, nullptr, &type, nullptr)) { if (clipboardReadProperty(win, property, true, &buf, nullptr, &type, nullptr)) {
if (type == atom(QXcbAtom::INCR)) { if (type == atom(QXcbAtom::AtomINCR)) {
int nbytes = buf.size() >= 4 ? *((int*)buf.data()) : 0; int nbytes = buf.size() >= 4 ? *((int*)buf.data()) : 0;
buf = clipboardReadIncrementalProperty(win, property, nbytes, false); buf = clipboardReadIncrementalProperty(win, property, nbytes, false);
} }

View File

@ -602,12 +602,12 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
if (clientMessage->format != 32) if (clientMessage->format != 32)
return; return;
#if QT_CONFIG(draganddrop) #if QT_CONFIG(draganddrop)
if (clientMessage->type == atom(QXcbAtom::XdndStatus)) if (clientMessage->type == atom(QXcbAtom::AtomXdndStatus))
drag()->handleStatus(clientMessage); drag()->handleStatus(clientMessage);
else if (clientMessage->type == atom(QXcbAtom::XdndFinished)) else if (clientMessage->type == atom(QXcbAtom::AtomXdndFinished))
drag()->handleFinished(clientMessage); drag()->handleFinished(clientMessage);
#endif #endif
if (m_systemTrayTracker && clientMessage->type == atom(QXcbAtom::MANAGER)) if (m_systemTrayTracker && clientMessage->type == atom(QXcbAtom::AtomMANAGER))
m_systemTrayTracker->notifyManagerClientMessageEvent(clientMessage); m_systemTrayTracker->notifyManagerClientMessageEvent(clientMessage);
HANDLE_PLATFORM_WINDOW_EVENT(xcb_client_message_event_t, window, handleClientMessageEvent); HANDLE_PLATFORM_WINDOW_EVENT(xcb_client_message_event_t, window, handleClientMessageEvent);
} }
@ -658,7 +658,7 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
setTime(selectionRequest->time); setTime(selectionRequest->time);
#endif #endif
#if QT_CONFIG(draganddrop) #if QT_CONFIG(draganddrop)
if (selectionRequest->selection == atom(QXcbAtom::XdndSelection)) if (selectionRequest->selection == atom(QXcbAtom::AtomXdndSelection))
m_drag->handleSelectionRequest(selectionRequest); m_drag->handleSelectionRequest(selectionRequest);
else else
#endif #endif
@ -686,11 +686,11 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
if (m_clipboard->handlePropertyNotify(event)) if (m_clipboard->handlePropertyNotify(event))
break; break;
#endif #endif
if (propertyNotify->atom == atom(QXcbAtom::_NET_WORKAREA)) { if (propertyNotify->atom == atom(QXcbAtom::Atom_NET_WORKAREA)) {
QXcbVirtualDesktop *virtualDesktop = virtualDesktopForRootWindow(propertyNotify->window); QXcbVirtualDesktop *virtualDesktop = virtualDesktopForRootWindow(propertyNotify->window);
if (virtualDesktop) if (virtualDesktop)
virtualDesktop->updateWorkArea(); virtualDesktop->updateWorkArea();
} else if (propertyNotify->atom == atom(QXcbAtom::_NET_SUPPORTED)) { } else if (propertyNotify->atom == atom(QXcbAtom::Atom_NET_SUPPORTED)) {
m_wmSupport->updateNetWMAtoms(); m_wmSupport->updateNetWMAtoms();
} else { } else {
HANDLE_PLATFORM_WINDOW_EVENT(xcb_property_notify_event_t, window, handlePropertyNotifyEvent); HANDLE_PLATFORM_WINDOW_EVENT(xcb_property_notify_event_t, window, handlePropertyNotifyEvent);
@ -787,13 +787,13 @@ void QXcbConnection::setStartupId(const QByteArray &nextId)
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
clientLeader(), clientLeader(),
atom(QXcbAtom::_NET_STARTUP_ID), atom(QXcbAtom::Atom_NET_STARTUP_ID),
atom(QXcbAtom::UTF8_STRING), atom(QXcbAtom::AtomUTF8_STRING),
8, 8,
nextId.size(), nextId.size(),
nextId.constData()); nextId.constData());
else else
xcb_delete_property(xcb_connection(), clientLeader(), atom(QXcbAtom::_NET_STARTUP_ID)); xcb_delete_property(xcb_connection(), clientLeader(), atom(QXcbAtom::Atom_NET_STARTUP_ID));
} }
} }
@ -822,7 +822,7 @@ xcb_timestamp_t QXcbConnection::getTimestamp()
{ {
// send a dummy event to myself to get the timestamp from X server. // send a dummy event to myself to get the timestamp from X server.
xcb_window_t window = rootWindow(); xcb_window_t window = rootWindow();
xcb_atom_t dummyAtom = atom(QXcbAtom::_QT_GET_TIMESTAMP); xcb_atom_t dummyAtom = atom(QXcbAtom::Atom_QT_GET_TIMESTAMP);
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, dummyAtom, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window, dummyAtom,
XCB_ATOM_INTEGER, 32, 0, nullptr); XCB_ATOM_INTEGER, 32, 0, nullptr);
@ -921,7 +921,7 @@ xcb_window_t QXcbConnection::clientLeader()
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_clientLeader, m_clientLeader,
atom(QXcbAtom::WM_CLIENT_LEADER), atom(QXcbAtom::AtomWM_CLIENT_LEADER),
XCB_ATOM_WINDOW, XCB_ATOM_WINDOW,
32, 32,
1, 1,
@ -934,7 +934,7 @@ xcb_window_t QXcbConnection::clientLeader()
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_clientLeader, m_clientLeader,
atom(QXcbAtom::SM_CLIENT_ID), atom(QXcbAtom::AtomSM_CLIENT_ID),
XCB_ATOM_STRING, XCB_ATOM_STRING,
8, 8,
session.size(), session.size(),
@ -1055,8 +1055,8 @@ bool QXcbConnection::isUserInputEvent(xcb_generic_event_t *event) const
if (eventType == XCB_CLIENT_MESSAGE) { if (eventType == XCB_CLIENT_MESSAGE) {
auto clientMessage = reinterpret_cast<const xcb_client_message_event_t *>(event); auto clientMessage = reinterpret_cast<const xcb_client_message_event_t *>(event);
if (clientMessage->format == 32 && clientMessage->type == atom(QXcbAtom::WM_PROTOCOLS)) if (clientMessage->format == 32 && clientMessage->type == atom(QXcbAtom::AtomWM_PROTOCOLS))
if (clientMessage->data.data32[0] == atom(QXcbAtom::WM_DELETE_WINDOW)) if (clientMessage->data.data32[0] == atom(QXcbAtom::AtomWM_DELETE_WINDOW))
isInputEvent = true; isInputEvent = true;
} }

View File

@ -270,9 +270,9 @@ void QXcbConnection::xi2SetupSlavePointerDevice(void *info, bool removeExisting,
tabletData.valuatorInfo[valuatorAtom] = info; tabletData.valuatorInfo[valuatorAtom] = info;
} }
#endif // QT_CONFIG(tabletevent) #endif // QT_CONFIG(tabletevent)
if (valuatorAtom == QXcbAtom::RelHorizScroll || valuatorAtom == QXcbAtom::RelHorizWheel) if (valuatorAtom == QXcbAtom::AtomRelHorizScroll || valuatorAtom == QXcbAtom::AtomRelHorizWheel)
scrollingDevice()->lastScrollPosition.setX(fixed3232ToReal(vci->value)); scrollingDevice()->lastScrollPosition.setX(fixed3232ToReal(vci->value));
else if (valuatorAtom == QXcbAtom::RelVertScroll || valuatorAtom == QXcbAtom::RelVertWheel) else if (valuatorAtom == QXcbAtom::AtomRelVertScroll || valuatorAtom == QXcbAtom::AtomRelVertWheel)
scrollingDevice()->lastScrollPosition.setY(fixed3232ToReal(vci->value)); scrollingDevice()->lastScrollPosition.setY(fixed3232ToReal(vci->value));
break; break;
} }
@ -300,14 +300,14 @@ void QXcbConnection::xi2SetupSlavePointerDevice(void *info, bool removeExisting,
xcb_atom_t label5 = labels[4]; xcb_atom_t label5 = labels[4];
// Some drivers have no labels on the wheel buttons, some have no label on just one and some have no label on // Some drivers have no labels on the wheel buttons, some have no label on just one and some have no label on
// button 4 and the wrong one on button 5. So we just check that they are not labelled with unrelated buttons. // button 4 and the wrong one on button 5. So we just check that they are not labelled with unrelated buttons.
if ((!label4 || qatom(label4) == QXcbAtom::ButtonWheelUp || qatom(label4) == QXcbAtom::ButtonWheelDown) && if ((!label4 || qatom(label4) == QXcbAtom::AtomButtonWheelUp || qatom(label4) == QXcbAtom::AtomButtonWheelDown) &&
(!label5 || qatom(label5) == QXcbAtom::ButtonWheelUp || qatom(label5) == QXcbAtom::ButtonWheelDown)) (!label5 || qatom(label5) == QXcbAtom::AtomButtonWheelUp || qatom(label5) == QXcbAtom::AtomButtonWheelDown))
scrollingDevice()->legacyOrientations |= Qt::Vertical; scrollingDevice()->legacyOrientations |= Qt::Vertical;
} }
if (bci->num_buttons >= 7) { if (bci->num_buttons >= 7) {
xcb_atom_t label6 = labels[5]; xcb_atom_t label6 = labels[5];
xcb_atom_t label7 = labels[6]; xcb_atom_t label7 = labels[6];
if ((!label6 || qatom(label6) == QXcbAtom::ButtonHorizWheelLeft) && (!label7 || qatom(label7) == QXcbAtom::ButtonHorizWheelRight)) if ((!label6 || qatom(label6) == QXcbAtom::AtomButtonHorizWheelLeft) && (!label7 || qatom(label7) == QXcbAtom::AtomButtonHorizWheelRight))
scrollingDevice()->legacyOrientations |= Qt::Horizontal; scrollingDevice()->legacyOrientations |= Qt::Horizontal;
} }
buttonCount = bci->num_buttons; buttonCount = bci->num_buttons;
@ -331,9 +331,9 @@ void QXcbConnection::xi2SetupSlavePointerDevice(void *info, bool removeExisting,
bool isTablet = false; bool isTablet = false;
#if QT_CONFIG(tabletevent) #if QT_CONFIG(tabletevent)
// If we have found the valuators which we expect a tablet to have, it might be a tablet. // If we have found the valuators which we expect a tablet to have, it might be a tablet.
if (tabletData.valuatorInfo.contains(QXcbAtom::AbsX) && if (tabletData.valuatorInfo.contains(QXcbAtom::AtomAbsX) &&
tabletData.valuatorInfo.contains(QXcbAtom::AbsY) && tabletData.valuatorInfo.contains(QXcbAtom::AtomAbsY) &&
tabletData.valuatorInfo.contains(QXcbAtom::AbsPressure)) tabletData.valuatorInfo.contains(QXcbAtom::AtomAbsPressure))
isTablet = true; isTablet = true;
// But we need to be careful not to take the touch and tablet-button devices as tablets. // But we need to be careful not to take the touch and tablet-button devices as tablets.
@ -356,7 +356,7 @@ void QXcbConnection::xi2SetupSlavePointerDevice(void *info, bool removeExisting,
// combined device (evdev) rather than separate pen/eraser (wacom driver) // combined device (evdev) rather than separate pen/eraser (wacom driver)
tabletData.pointerType = QPointingDevice::PointerType::Pen; tabletData.pointerType = QPointingDevice::PointerType::Pen;
dbgType = "pen"_L1; dbgType = "pen"_L1;
} else if (nameLower.contains("aiptek") /* && device == QXcbAtom::KEYBOARD */) { } else if (nameLower.contains("aiptek") /* && device == QXcbAtom::AtomKEYBOARD */) {
// some "Genius" tablets // some "Genius" tablets
isTablet = true; isTablet = true;
tabletData.pointerType = QPointingDevice::PointerType::Pen; tabletData.pointerType = QPointingDevice::PointerType::Pen;
@ -384,9 +384,9 @@ void QXcbConnection::xi2SetupSlavePointerDevice(void *info, bool removeExisting,
m_tabletData.append(tabletData); m_tabletData.append(tabletData);
qCDebug(lcQpaXInputDevices) << " it's a tablet with pointer type" << dbgType; qCDebug(lcQpaXInputDevices) << " it's a tablet with pointer type" << dbgType;
QPointingDevice::Capabilities capsOverride = QInputDevice::Capability::None; QPointingDevice::Capabilities capsOverride = QInputDevice::Capability::None;
if (tabletData.valuatorInfo.contains(QXcbAtom::AbsTiltX)) if (tabletData.valuatorInfo.contains(QXcbAtom::AtomAbsTiltX))
capsOverride.setFlag(QInputDevice::Capability::XTilt); capsOverride.setFlag(QInputDevice::Capability::XTilt);
if (tabletData.valuatorInfo.contains(QXcbAtom::AbsTiltY)) if (tabletData.valuatorInfo.contains(QXcbAtom::AtomAbsTiltY))
capsOverride.setFlag(QInputDevice::Capability::YTilt); capsOverride.setFlag(QInputDevice::Capability::YTilt);
// TODO can we get USB ID? // TODO can we get USB ID?
Q_ASSERT(deviceInfo->deviceid == tabletData.deviceId); Q_ASSERT(deviceInfo->deviceid == tabletData.deviceId);
@ -573,27 +573,27 @@ QXcbConnection::TouchDeviceData *QXcbConnection::populateTouchDevices(void *info
// Some devices (mice) report a resolution of 0; they will be excluded later, // Some devices (mice) report a resolution of 0; they will be excluded later,
// for now just prevent a division by zero // for now just prevent a division by zero
const int vciResolution = vci->resolution ? vci->resolution : 1; const int vciResolution = vci->resolution ? vci->resolution : 1;
if (valuatorAtom == QXcbAtom::AbsMTPositionX) if (valuatorAtom == QXcbAtom::AtomAbsMTPositionX)
caps |= QInputDevice::Capability::Position | QInputDevice::Capability::NormalizedPosition; caps |= QInputDevice::Capability::Position | QInputDevice::Capability::NormalizedPosition;
else if (valuatorAtom == QXcbAtom::AbsMTTouchMajor) else if (valuatorAtom == QXcbAtom::AtomAbsMTTouchMajor)
caps |= QInputDevice::Capability::Area; caps |= QInputDevice::Capability::Area;
else if (valuatorAtom == QXcbAtom::AbsMTOrientation) else if (valuatorAtom == QXcbAtom::AtomAbsMTOrientation)
dev.providesTouchOrientation = true; dev.providesTouchOrientation = true;
else if (valuatorAtom == QXcbAtom::AbsMTPressure || valuatorAtom == QXcbAtom::AbsPressure) else if (valuatorAtom == QXcbAtom::AtomAbsMTPressure || valuatorAtom == QXcbAtom::AtomAbsPressure)
caps |= QInputDevice::Capability::Pressure; caps |= QInputDevice::Capability::Pressure;
else if (valuatorAtom == QXcbAtom::RelX) { else if (valuatorAtom == QXcbAtom::AtomRelX) {
hasRelativeCoords = true; hasRelativeCoords = true;
dev.size.setWidth((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution); dev.size.setWidth((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution);
} else if (valuatorAtom == QXcbAtom::RelY) { } else if (valuatorAtom == QXcbAtom::AtomRelY) {
hasRelativeCoords = true; hasRelativeCoords = true;
dev.size.setHeight((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution); dev.size.setHeight((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution);
} else if (valuatorAtom == QXcbAtom::AbsX) { } else if (valuatorAtom == QXcbAtom::AtomAbsX) {
caps |= QInputDevice::Capability::Position; caps |= QInputDevice::Capability::Position;
dev.size.setWidth((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution); dev.size.setWidth((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution);
} else if (valuatorAtom == QXcbAtom::AbsY) { } else if (valuatorAtom == QXcbAtom::AtomAbsY) {
caps |= QInputDevice::Capability::Position; caps |= QInputDevice::Capability::Position;
dev.size.setHeight((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution); dev.size.setHeight((fixed3232ToReal(vci->max) - fixed3232ToReal(vci->min)) * 1000.0 / vciResolution);
} else if (valuatorAtom == QXcbAtom::RelVertWheel || valuatorAtom == QXcbAtom::RelHorizWheel) { } else if (valuatorAtom == QXcbAtom::AtomRelVertWheel || valuatorAtom == QXcbAtom::AtomRelHorizWheel) {
caps |= QInputDevice::Capability::Scroll; caps |= QInputDevice::Capability::Scroll;
} }
break; break;
@ -804,27 +804,27 @@ void QXcbConnection::xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindo
if (value < vci.min) if (value < vci.min)
value = vci.min; value = vci.min;
qreal valuatorNormalized = (value - vci.min) / (vci.max - vci.min); qreal valuatorNormalized = (value - vci.min) / (vci.max - vci.min);
if (vci.label == QXcbAtom::RelX) { if (vci.label == QXcbAtom::AtomRelX) {
nx = valuatorNormalized; nx = valuatorNormalized;
} else if (vci.label == QXcbAtom::RelY) { } else if (vci.label == QXcbAtom::AtomRelY) {
ny = valuatorNormalized; ny = valuatorNormalized;
} else if (vci.label == QXcbAtom::AbsX) { } else if (vci.label == QXcbAtom::AtomAbsX) {
nx = valuatorNormalized; nx = valuatorNormalized;
} else if (vci.label == QXcbAtom::AbsY) { } else if (vci.label == QXcbAtom::AtomAbsY) {
ny = valuatorNormalized; ny = valuatorNormalized;
} else if (vci.label == QXcbAtom::AbsMTPositionX) { } else if (vci.label == QXcbAtom::AtomAbsMTPositionX) {
nx = valuatorNormalized; nx = valuatorNormalized;
} else if (vci.label == QXcbAtom::AbsMTPositionY) { } else if (vci.label == QXcbAtom::AtomAbsMTPositionY) {
ny = valuatorNormalized; ny = valuatorNormalized;
} else if (vci.label == QXcbAtom::AbsMTTouchMajor) { } else if (vci.label == QXcbAtom::AtomAbsMTTouchMajor) {
const qreal sw = screen->geometry().width(); const qreal sw = screen->geometry().width();
const qreal sh = screen->geometry().height(); const qreal sh = screen->geometry().height();
w = valuatorNormalized * qHypot(sw, sh); w = valuatorNormalized * qHypot(sw, sh);
} else if (vci.label == QXcbAtom::AbsMTTouchMinor) { } else if (vci.label == QXcbAtom::AtomAbsMTTouchMinor) {
const qreal sw = screen->geometry().width(); const qreal sw = screen->geometry().width();
const qreal sh = screen->geometry().height(); const qreal sh = screen->geometry().height();
h = valuatorNormalized * qHypot(sw, sh); h = valuatorNormalized * qHypot(sw, sh);
} else if (vci.label == QXcbAtom::AbsMTOrientation) { } else if (vci.label == QXcbAtom::AtomAbsMTOrientation) {
// Find the closest axis. // Find the closest axis.
// 0 corresponds to the Y axis, vci.max to the X axis. // 0 corresponds to the Y axis, vci.max to the X axis.
// Flipping over the Y axis and rotating by 180 degrees // Flipping over the Y axis and rotating by 180 degrees
@ -835,7 +835,7 @@ void QXcbConnection::xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindo
value -= 2 * vci.max; value -= 2 * vci.max;
value = qAbs(value); value = qAbs(value);
majorAxisIsY = value < vci.max - value; majorAxisIsY = value < vci.max - value;
} else if (vci.label == QXcbAtom::AbsMTPressure || vci.label == QXcbAtom::AbsPressure) { } else if (vci.label == QXcbAtom::AtomAbsMTPressure || vci.label == QXcbAtom::AtomAbsPressure) {
touchPoint.pressure = valuatorNormalized; touchPoint.pressure = valuatorNormalized;
} }
@ -967,7 +967,7 @@ void QXcbConnection::abortSystemMoveResize(xcb_window_t window)
qCDebug(lcQpaXInputDevices) << "sending client message NET_WM_MOVERESIZE_CANCEL to window: " << window; qCDebug(lcQpaXInputDevices) << "sending client message NET_WM_MOVERESIZE_CANCEL to window: " << window;
m_startSystemMoveResizeInfo.window = XCB_NONE; m_startSystemMoveResizeInfo.window = XCB_NONE;
const xcb_atom_t moveResize = connection()->atom(QXcbAtom::_NET_WM_MOVERESIZE); const xcb_atom_t moveResize = connection()->atom(QXcbAtom::Atom_NET_WM_MOVERESIZE);
xcb_client_message_event_t xev; xcb_client_message_event_t xev;
xev.response_type = XCB_CLIENT_MESSAGE; xev.response_type = XCB_CLIENT_MESSAGE;
xev.type = moveResize; xev.type = moveResize;
@ -1275,9 +1275,9 @@ void QXcbConnection::xi2UpdateScrollingDevice(QInputDevice *dev)
if (classInfo->type == XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR) { if (classInfo->type == XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR) {
auto *vci = reinterpret_cast<xcb_input_valuator_class_t *>(classInfo); auto *vci = reinterpret_cast<xcb_input_valuator_class_t *>(classInfo);
const int valuatorAtom = qatom(vci->label); const int valuatorAtom = qatom(vci->label);
if (valuatorAtom == QXcbAtom::RelHorizScroll || valuatorAtom == QXcbAtom::RelHorizWheel) if (valuatorAtom == QXcbAtom::AtomRelHorizScroll || valuatorAtom == QXcbAtom::AtomRelHorizWheel)
scrollingDevice->lastScrollPosition.setX(fixed3232ToReal(vci->value)); scrollingDevice->lastScrollPosition.setX(fixed3232ToReal(vci->value));
else if (valuatorAtom == QXcbAtom::RelVertScroll || valuatorAtom == QXcbAtom::RelVertWheel) else if (valuatorAtom == QXcbAtom::AtomRelVertScroll || valuatorAtom == QXcbAtom::AtomRelVertWheel)
scrollingDevice->lastScrollPosition.setY(fixed3232ToReal(vci->value)); scrollingDevice->lastScrollPosition.setY(fixed3232ToReal(vci->value));
} }
} }
@ -1464,7 +1464,7 @@ bool QXcbConnection::xi2HandleTabletEvent(const void *event, TabletData *tabletD
// The evdev driver doesn't do it this way. // The evdev driver doesn't do it this way.
const auto *ev = reinterpret_cast<const xcb_input_property_event_t *>(event); const auto *ev = reinterpret_cast<const xcb_input_property_event_t *>(event);
if (ev->what == XCB_INPUT_PROPERTY_FLAG_MODIFIED) { if (ev->what == XCB_INPUT_PROPERTY_FLAG_MODIFIED) {
if (ev->property == atom(QXcbAtom::WacomSerialIDs)) { if (ev->property == atom(QXcbAtom::AtomWacomSerialIDs)) {
enum WacomSerialIndex { enum WacomSerialIndex {
_WACSER_USB_ID = 0, _WACSER_USB_ID = 0,
_WACSER_LAST_TOOL_SERIAL, _WACSER_LAST_TOOL_SERIAL,
@ -1477,7 +1477,7 @@ bool QXcbConnection::xi2HandleTabletEvent(const void *event, TabletData *tabletD
auto reply = Q_XCB_REPLY(xcb_input_xi_get_property, xcb_connection(), tabletData->deviceId, 0, auto reply = Q_XCB_REPLY(xcb_input_xi_get_property, xcb_connection(), tabletData->deviceId, 0,
ev->property, XCB_GET_PROPERTY_TYPE_ANY, 0, 100); ev->property, XCB_GET_PROPERTY_TYPE_ANY, 0, 100);
if (reply) { if (reply) {
if (reply->type == atom(QXcbAtom::INTEGER) && reply->format == 32 && reply->num_items == _WACSER_COUNT) { if (reply->type == atom(QXcbAtom::AtomINTEGER) && reply->format == 32 && reply->num_items == _WACSER_COUNT) {
quint32 *ptr = reinterpret_cast<quint32 *>(xcb_input_xi_get_property_items(reply.get())); quint32 *ptr = reinterpret_cast<quint32 *>(xcb_input_xi_get_property_items(reply.get()));
quint32 tool = ptr[_WACSER_TOOL_ID]; quint32 tool = ptr[_WACSER_TOOL_ID];
// Workaround for http://sourceforge.net/p/linuxwacom/bugs/246/ // Workaround for http://sourceforge.net/p/linuxwacom/bugs/246/
@ -1570,30 +1570,30 @@ void QXcbConnection::xi2ReportTabletEvent(const void *event, TabletData *tabletD
xi2GetValuatorValueIfSet(event, classInfo.number, &classInfo.curVal); xi2GetValuatorValueIfSet(event, classInfo.number, &classInfo.curVal);
double normalizedValue = (classInfo.curVal - classInfo.minVal) / (classInfo.maxVal - classInfo.minVal); double normalizedValue = (classInfo.curVal - classInfo.minVal) / (classInfo.maxVal - classInfo.minVal);
switch (valuator) { switch (valuator) {
case QXcbAtom::AbsX: case QXcbAtom::AtomAbsX:
if (Q_LIKELY(useValuators)) { if (Q_LIKELY(useValuators)) {
const qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.x(), physicalScreenArea.width()); const qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.x(), physicalScreenArea.width());
global.setX(value); global.setX(value);
local.setX(xcbWindow->mapFromGlobalF(global).x()); local.setX(xcbWindow->mapFromGlobalF(global).x());
} }
break; break;
case QXcbAtom::AbsY: case QXcbAtom::AtomAbsY:
if (Q_LIKELY(useValuators)) { if (Q_LIKELY(useValuators)) {
qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.y(), physicalScreenArea.height()); qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.y(), physicalScreenArea.height());
global.setY(value); global.setY(value);
local.setY(xcbWindow->mapFromGlobalF(global).y()); local.setY(xcbWindow->mapFromGlobalF(global).y());
} }
break; break;
case QXcbAtom::AbsPressure: case QXcbAtom::AtomAbsPressure:
pressure = normalizedValue; pressure = normalizedValue;
break; break;
case QXcbAtom::AbsTiltX: case QXcbAtom::AtomAbsTiltX:
xTilt = classInfo.curVal; xTilt = classInfo.curVal;
break; break;
case QXcbAtom::AbsTiltY: case QXcbAtom::AtomAbsTiltY:
yTilt = classInfo.curVal; yTilt = classInfo.curVal;
break; break;
case QXcbAtom::AbsWheel: case QXcbAtom::AtomAbsWheel:
switch (tabletData->tool) { switch (tabletData->tool) {
case QInputDevice::DeviceType::Airbrush: case QInputDevice::DeviceType::Airbrush:
tangentialPressure = normalizedValue * 2.0 - 1.0; // Convert 0..1 range to -1..+1 range tangentialPressure = normalizedValue * 2.0 - 1.0; // Convert 0..1 range to -1..+1 range

View File

@ -44,7 +44,7 @@ static xcb_window_t xdndProxy(QXcbConnection *c, xcb_window_t w)
xcb_window_t proxy = XCB_NONE; xcb_window_t proxy = XCB_NONE;
auto reply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(),
false, w, c->atom(QXcbAtom::XdndProxy), XCB_ATOM_WINDOW, 0, 1); false, w, c->atom(QXcbAtom::AtomXdndProxy), XCB_ATOM_WINDOW, 0, 1);
if (reply && reply->type == XCB_ATOM_WINDOW) if (reply && reply->type == XCB_ATOM_WINDOW)
proxy = *((xcb_window_t *)xcb_get_property_value(reply.get())); proxy = *((xcb_window_t *)xcb_get_property_value(reply.get()));
@ -54,7 +54,7 @@ static xcb_window_t xdndProxy(QXcbConnection *c, xcb_window_t w)
// exists and is real? // exists and is real?
reply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(), reply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(),
false, proxy, c->atom(QXcbAtom::XdndProxy), XCB_ATOM_WINDOW, 0, 1); false, proxy, c->atom(QXcbAtom::AtomXdndProxy), XCB_ATOM_WINDOW, 0, 1);
if (reply && reply->type == XCB_ATOM_WINDOW) { if (reply && reply->type == XCB_ATOM_WINDOW) {
xcb_window_t p = *((xcb_window_t *)xcb_get_property_value(reply.get())); xcb_window_t p = *((xcb_window_t *)xcb_get_property_value(reply.get()));
@ -140,7 +140,7 @@ void QXcbDrag::startDrag()
qCDebug(lcQpaXDnd) << "starting drag where source:" << connection()->qtSelectionOwner(); qCDebug(lcQpaXDnd) << "starting drag where source:" << connection()->qtSelectionOwner();
xcb_set_selection_owner(xcb_connection(), connection()->qtSelectionOwner(), xcb_set_selection_owner(xcb_connection(), connection()->qtSelectionOwner(),
atom(QXcbAtom::XdndSelection), connection()->time()); atom(QXcbAtom::AtomXdndSelection), connection()->time());
QStringList fmts = QXcbMime::formatsHelper(drag()->mimeData()); QStringList fmts = QXcbMime::formatsHelper(drag()->mimeData());
for (int i = 0; i < fmts.size(); ++i) { for (int i = 0; i < fmts.size(); ++i) {
@ -153,7 +153,7 @@ void QXcbDrag::startDrag()
if (drag_types.size() > 3) if (drag_types.size() > 3)
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, connection()->qtSelectionOwner(), xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, connection()->qtSelectionOwner(),
atom(QXcbAtom::XdndTypelist), atom(QXcbAtom::AtomXdndTypelist),
XCB_ATOM_ATOM, 32, drag_types.size(), (const void *)drag_types.constData()); XCB_ATOM_ATOM, 32, drag_types.size(), (const void *)drag_types.constData());
setUseCompositing(current_virtual_desktop->compositingActive()); setUseCompositing(current_virtual_desktop->compositingActive());
@ -187,7 +187,7 @@ Qt::DropAction QXcbDrag::defaultAction(Qt::DropActions possibleActions, Qt::Keyb
void QXcbDrag::handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) void QXcbDrag::handlePropertyNotifyEvent(const xcb_property_notify_event_t *event)
{ {
if (event->window != xdnd_dragsource || event->atom != atom(QXcbAtom::XdndActionList)) if (event->window != xdnd_dragsource || event->atom != atom(QXcbAtom::AtomXdndActionList))
return; return;
readActionList(); readActionList();
@ -233,7 +233,7 @@ xcb_window_t QXcbDrag::findRealWindow(const QPoint & pos, xcb_window_t w, int md
bool windowContainsMouse = !ignoreNonXdndAwareWindows; bool windowContainsMouse = !ignoreNonXdndAwareWindows;
{ {
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(),
false, w, connection()->atom(QXcbAtom::XdndAware), false, w, connection()->atom(QXcbAtom::AtomXdndAware),
XCB_GET_PROPERTY_TYPE_ANY, 0, 0); XCB_GET_PROPERTY_TYPE_ANY, 0, 0);
bool isAware = reply && reply->type != XCB_NONE; bool isAware = reply && reply->type != XCB_NONE;
if (isAware) { if (isAware) {
@ -306,7 +306,7 @@ bool QXcbDrag::findXdndAwareTarget(const QPoint &globalPos, xcb_window_t *target
xcb_window_t child = translate->child; xcb_window_t child = translate->child;
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, target, auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, target,
atom(QXcbAtom::XdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 0); atom(QXcbAtom::AtomXdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 0);
bool aware = reply && reply->type != XCB_NONE; bool aware = reply && reply->type != XCB_NONE;
if (aware) { if (aware) {
qCDebug(lcQpaXDnd) << "found XdndAware on" << target; qCDebug(lcQpaXDnd) << "found XdndAware on" << target;
@ -379,7 +379,7 @@ void QXcbDrag::move(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardMod
if (proxy_target) { if (proxy_target) {
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(),
false, proxy_target, false, proxy_target,
atom(QXcbAtom::XdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 1); atom(QXcbAtom::AtomXdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 1);
if (!reply || reply->type == XCB_NONE) { if (!reply || reply->type == XCB_NONE) {
target = 0; target = 0;
} else { } else {
@ -404,7 +404,7 @@ void QXcbDrag::move(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardMod
enter.sequence = 0; enter.sequence = 0;
enter.window = target; enter.window = target;
enter.format = 32; enter.format = 32;
enter.type = atom(QXcbAtom::XdndEnter); enter.type = atom(QXcbAtom::AtomXdndEnter);
enter.data.data32[0] = connection()->qtSelectionOwner(); enter.data.data32[0] = connection()->qtSelectionOwner();
enter.data.data32[1] = flags; enter.data.data32[1] = flags;
enter.data.data32[2] = drag_types.size() > 0 ? drag_types.at(0) : 0; enter.data.data32[2] = drag_types.size() > 0 ? drag_types.at(0) : 0;
@ -435,7 +435,7 @@ void QXcbDrag::move(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardMod
move.sequence = 0; move.sequence = 0;
move.window = target; move.window = target;
move.format = 32; move.format = 32;
move.type = atom(QXcbAtom::XdndPosition); move.type = atom(QXcbAtom::AtomXdndPosition);
move.data.data32[0] = connection()->qtSelectionOwner(); move.data.data32[0] = connection()->qtSelectionOwner();
move.data.data32[1] = 0; // flags move.data.data32[1] = 0; // flags
move.data.data32[2] = (globalPos.x() << 16) + globalPos.y(); move.data.data32[2] = (globalPos.x() << 16) + globalPos.y();
@ -481,7 +481,7 @@ void QXcbDrag::drop(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardMod
drop.sequence = 0; drop.sequence = 0;
drop.window = current_target; drop.window = current_target;
drop.format = 32; drop.format = 32;
drop.type = atom(QXcbAtom::XdndDrop); drop.type = atom(QXcbAtom::AtomXdndDrop);
drop.data.data32[0] = connection()->qtSelectionOwner(); drop.data.data32[0] = connection()->qtSelectionOwner();
drop.data.data32[1] = 0; // flags drop.data.data32[1] = 0; // flags
drop.data.data32[2] = connection()->time(); drop.data.data32[2] = connection()->time();
@ -521,11 +521,11 @@ void QXcbDrag::drop(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardMod
Qt::DropAction QXcbDrag::toDropAction(xcb_atom_t a) const Qt::DropAction QXcbDrag::toDropAction(xcb_atom_t a) const
{ {
if (a == atom(QXcbAtom::XdndActionCopy) || a == 0) if (a == atom(QXcbAtom::AtomXdndActionCopy) || a == 0)
return Qt::CopyAction; return Qt::CopyAction;
if (a == atom(QXcbAtom::XdndActionLink)) if (a == atom(QXcbAtom::AtomXdndActionLink))
return Qt::LinkAction; return Qt::LinkAction;
if (a == atom(QXcbAtom::XdndActionMove)) if (a == atom(QXcbAtom::AtomXdndActionMove))
return Qt::MoveAction; return Qt::MoveAction;
return Qt::CopyAction; return Qt::CopyAction;
} }
@ -534,7 +534,7 @@ Qt::DropActions QXcbDrag::toDropActions(const QList<xcb_atom_t> &atoms) const
{ {
Qt::DropActions actions; Qt::DropActions actions;
for (const auto actionAtom : atoms) { for (const auto actionAtom : atoms) {
if (actionAtom != atom(QXcbAtom::XdndActionAsk)) if (actionAtom != atom(QXcbAtom::AtomXdndActionAsk))
actions |= toDropAction(actionAtom); actions |= toDropAction(actionAtom);
} }
return actions; return actions;
@ -544,16 +544,16 @@ xcb_atom_t QXcbDrag::toXdndAction(Qt::DropAction a) const
{ {
switch (a) { switch (a) {
case Qt::CopyAction: case Qt::CopyAction:
return atom(QXcbAtom::XdndActionCopy); return atom(QXcbAtom::AtomXdndActionCopy);
case Qt::LinkAction: case Qt::LinkAction:
return atom(QXcbAtom::XdndActionLink); return atom(QXcbAtom::AtomXdndActionLink);
case Qt::MoveAction: case Qt::MoveAction:
case Qt::TargetMoveAction: case Qt::TargetMoveAction:
return atom(QXcbAtom::XdndActionMove); return atom(QXcbAtom::AtomXdndActionMove);
case Qt::IgnoreAction: case Qt::IgnoreAction:
return XCB_NONE; return XCB_NONE;
default: default:
return atom(QXcbAtom::XdndActionCopy); return atom(QXcbAtom::AtomXdndActionCopy);
} }
} }
@ -561,7 +561,7 @@ void QXcbDrag::readActionList()
{ {
drop_actions.clear(); drop_actions.clear();
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, xdnd_dragsource, auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, xdnd_dragsource,
atom(QXcbAtom::XdndActionList), XCB_ATOM_ATOM, atom(QXcbAtom::AtomXdndActionList), XCB_ATOM_ATOM,
0, 1024); 0, 1024);
if (reply && reply->type != XCB_NONE && reply->format == 32) { if (reply && reply->type != XCB_NONE && reply->format == 32) {
int length = xcb_get_property_value_length(reply.get()) / 4; int length = xcb_get_property_value_length(reply.get()) / 4;
@ -590,7 +590,7 @@ void QXcbDrag::setActionList(Qt::DropAction requestedAction, Qt::DropActions sup
if (current_actions != actions) { if (current_actions != actions) {
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, connection()->qtSelectionOwner(), xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, connection()->qtSelectionOwner(),
atom(QXcbAtom::XdndActionList), atom(QXcbAtom::AtomXdndActionList),
XCB_ATOM_ATOM, 32, actions.size(), actions.constData()); XCB_ATOM_ATOM, 32, actions.size(), actions.constData());
current_actions = actions; current_actions = actions;
} }
@ -701,7 +701,7 @@ void QXcbDrag::handleEnter(QPlatformWindow *, const xcb_client_message_event_t *
if (event->data.data32[1] & 1) { if (event->data.data32[1] & 1) {
// get the types from XdndTypeList // get the types from XdndTypeList
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, xdnd_dragsource, auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, xdnd_dragsource,
atom(QXcbAtom::XdndTypelist), XCB_ATOM_ATOM, atom(QXcbAtom::AtomXdndTypelist), XCB_ATOM_ATOM,
0, xdnd_max_type); 0, xdnd_max_type);
if (reply && reply->type != XCB_NONE && reply->format == 32) { if (reply && reply->type != XCB_NONE && reply->format == 32) {
int length = xcb_get_property_value_length(reply.get()) / 4; int length = xcb_get_property_value_length(reply.get()) / 4;
@ -761,7 +761,7 @@ void QXcbDrag::handle_xdnd_position(QPlatformWindow *w, const xcb_client_message
} else { } else {
dropData = m_dropData; dropData = m_dropData;
supported_actions = toDropActions(drop_actions); supported_actions = toDropActions(drop_actions);
if (e->data.data32[4] != atom(QXcbAtom::XdndActionAsk)) if (e->data.data32[4] != atom(QXcbAtom::AtomXdndActionAsk))
supported_actions |= Qt::DropActions(toDropAction(e->data.data32[4])); supported_actions |= Qt::DropActions(toDropAction(e->data.data32[4]));
} }
@ -783,7 +783,7 @@ void QXcbDrag::handle_xdnd_position(QPlatformWindow *w, const xcb_client_message
response.sequence = 0; response.sequence = 0;
response.window = xdnd_dragsource; response.window = xdnd_dragsource;
response.format = 32; response.format = 32;
response.type = atom(QXcbAtom::XdndStatus); response.type = atom(QXcbAtom::AtomXdndStatus);
response.data.data32[0] = xcb_window(w); response.data.data32[0] = xcb_window(w);
response.data.data32[1] = qt_response.isAccepted(); // flags response.data.data32[1] = qt_response.isAccepted(); // flags
response.data.data32[2] = 0; // x, y response.data.data32[2] = 0; // x, y
@ -835,7 +835,7 @@ namespace
void QXcbDrag::handlePosition(QPlatformWindow * w, const xcb_client_message_event_t *event) void QXcbDrag::handlePosition(QPlatformWindow * w, const xcb_client_message_event_t *event)
{ {
xcb_client_message_event_t *lastEvent = const_cast<xcb_client_message_event_t *>(event); xcb_client_message_event_t *lastEvent = const_cast<xcb_client_message_event_t *>(event);
ClientMessageScanner scanner(atom(QXcbAtom::XdndPosition)); ClientMessageScanner scanner(atom(QXcbAtom::AtomXdndPosition));
while (auto nextEvent = connection()->eventQueue()->peek(scanner)) { while (auto nextEvent = connection()->eventQueue()->peek(scanner)) {
if (lastEvent != event) if (lastEvent != event)
free(lastEvent); free(lastEvent);
@ -883,7 +883,7 @@ void QXcbDrag::handleStatus(const xcb_client_message_event_t *event)
xcb_client_message_event_t *lastEvent = const_cast<xcb_client_message_event_t *>(event); xcb_client_message_event_t *lastEvent = const_cast<xcb_client_message_event_t *>(event);
xcb_generic_event_t *nextEvent; xcb_generic_event_t *nextEvent;
ClientMessageScanner scanner(atom(QXcbAtom::XdndStatus)); ClientMessageScanner scanner(atom(QXcbAtom::AtomXdndStatus));
while ((nextEvent = connection()->eventQueue()->peek(scanner))) { while ((nextEvent = connection()->eventQueue()->peek(scanner))) {
if (lastEvent != event) if (lastEvent != event)
free(lastEvent); free(lastEvent);
@ -934,7 +934,7 @@ void QXcbDrag::send_leave()
leave.sequence = 0; leave.sequence = 0;
leave.window = current_target; leave.window = current_target;
leave.format = 32; leave.format = 32;
leave.type = atom(QXcbAtom::XdndLeave); leave.type = atom(QXcbAtom::AtomXdndLeave);
leave.data.data32[0] = connection()->qtSelectionOwner(); leave.data.data32[0] = connection()->qtSelectionOwner();
leave.data.data32[1] = 0; // flags leave.data.data32[1] = 0; // flags
leave.data.data32[2] = 0; // x, y leave.data.data32[2] = 0; // x, y
@ -1024,7 +1024,7 @@ void QXcbDrag::handleDrop(QPlatformWindow *, const xcb_client_message_event_t *e
finished.sequence = 0; finished.sequence = 0;
finished.window = xdnd_dragsource; finished.window = xdnd_dragsource;
finished.format = 32; finished.format = 32;
finished.type = atom(QXcbAtom::XdndFinished); finished.type = atom(QXcbAtom::AtomXdndFinished);
finished.data.data32[0] = currentWindow ? xcb_window(currentWindow.data()) : XCB_NONE; finished.data.data32[0] = currentWindow ? xcb_window(currentWindow.data()) : XCB_NONE;
finished.data.data32[1] = response.isAccepted(); // flags finished.data.data32[1] = response.isAccepted(); // flags
finished.data.data32[2] = toXdndAction(acceptedAaction); finished.data.data32[2] = toXdndAction(acceptedAaction);
@ -1141,7 +1141,7 @@ static xcb_window_t findXdndAwareParent(QXcbConnection *c, xcb_window_t window)
forever { forever {
// check if window has XdndAware // check if window has XdndAware
auto gpReply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(), false, window, auto gpReply = Q_XCB_REPLY(xcb_get_property, c->xcb_connection(), false, window,
c->atom(QXcbAtom::XdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 0); c->atom(QXcbAtom::AtomXdndAware), XCB_GET_PROPERTY_TYPE_ANY, 0, 0);
bool aware = gpReply && gpReply->type != XCB_NONE; bool aware = gpReply && gpReply->type != XCB_NONE;
if (aware) { if (aware) {
target = window; target = window;
@ -1248,7 +1248,7 @@ bool QXcbDrag::dndEnable(QXcbWindow *w, bool on)
desktop_proxy = new QWindow; desktop_proxy = new QWindow;
window = static_cast<QXcbWindow *>(desktop_proxy->handle()); window = static_cast<QXcbWindow *>(desktop_proxy->handle());
proxy_id = window->xcb_window(); proxy_id = window->xcb_window();
xcb_atom_t xdnd_proxy = atom(QXcbAtom::XdndProxy); xcb_atom_t xdnd_proxy = atom(QXcbAtom::AtomXdndProxy);
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, w->xcb_window(), xdnd_proxy, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, w->xcb_window(), xdnd_proxy,
XCB_ATOM_WINDOW, 32, 1, &proxy_id); XCB_ATOM_WINDOW, 32, 1, &proxy_id);
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, proxy_id, xdnd_proxy, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, proxy_id, xdnd_proxy,
@ -1262,14 +1262,14 @@ bool QXcbDrag::dndEnable(QXcbWindow *w, bool on)
qCDebug(lcQpaXDnd) << "setting XdndAware for" << window->xcb_window(); qCDebug(lcQpaXDnd) << "setting XdndAware for" << window->xcb_window();
xcb_atom_t atm = xdnd_version; xcb_atom_t atm = xdnd_version;
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window->xcb_window(), xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, window->xcb_window(),
atom(QXcbAtom::XdndAware), XCB_ATOM_ATOM, 32, 1, &atm); atom(QXcbAtom::AtomXdndAware), XCB_ATOM_ATOM, 32, 1, &atm);
return true; return true;
} else { } else {
return false; return false;
} }
} else { } else {
if (w->window()->type() == Qt::Desktop) { if (w->window()->type() == Qt::Desktop) {
xcb_delete_property(xcb_connection(), w->xcb_window(), atom(QXcbAtom::XdndProxy)); xcb_delete_property(xcb_connection(), w->xcb_window(), atom(QXcbAtom::AtomXdndProxy));
delete desktop_proxy; delete desktop_proxy;
desktop_proxy = nullptr; desktop_proxy = nullptr;
} else { } else {
@ -1321,10 +1321,10 @@ QVariant QXcbDropData::xdndObtainData(const QByteArray &format, QMetaType reques
return result; return result;
#ifndef QT_NO_CLIPBOARD #ifndef QT_NO_CLIPBOARD
if (c->selectionOwner(c->atom(QXcbAtom::XdndSelection)) == XCB_NONE) if (c->selectionOwner(c->atom(QXcbAtom::AtomXdndSelection)) == XCB_NONE)
return result; // should never happen? return result; // should never happen?
xcb_atom_t xdnd_selection = c->atom(QXcbAtom::XdndSelection); xcb_atom_t xdnd_selection = c->atom(QXcbAtom::AtomXdndSelection);
result = c->clipboard()->getSelection(xdnd_selection, a, xdnd_selection, drag->targetTime()); result = c->clipboard()->getSelection(xdnd_selection, a, xdnd_selection, drag->targetTime());
#endif #endif

View File

@ -345,7 +345,7 @@ void QXcbEventQueue::sendCloseConnectionEvent() const
event.format = 32; event.format = 32;
event.sequence = 0; event.sequence = 0;
event.window = window; event.window = window;
event.type = m_connection->atom(QXcbAtom::_QT_CLOSE_CONNECTION); event.type = m_connection->atom(QXcbAtom::Atom_QT_CLOSE_CONNECTION);
event.data.data32[0] = 0; event.data.data32[0] = 0;
xcb_send_event(c, false, window, XCB_EVENT_MASK_NO_EVENT, reinterpret_cast<const char *>(&event)); xcb_send_event(c, false, window, XCB_EVENT_MASK_NO_EVENT, reinterpret_cast<const char *>(&event));
@ -357,7 +357,7 @@ bool QXcbEventQueue::isCloseConnectionEvent(const xcb_generic_event_t *event)
{ {
if (event && (event->response_type & ~0x80) == XCB_CLIENT_MESSAGE) { if (event && (event->response_type & ~0x80) == XCB_CLIENT_MESSAGE) {
auto clientMessage = reinterpret_cast<const xcb_client_message_event_t *>(event); auto clientMessage = reinterpret_cast<const xcb_client_message_event_t *>(event);
if (clientMessage->type == m_connection->atom(QXcbAtom::_QT_CLOSE_CONNECTION)) if (clientMessage->type == m_connection->atom(QXcbAtom::Atom_QT_CLOSE_CONNECTION))
m_closeConnectionDetected = true; m_closeConnectionDetected = true;
} }
return m_closeConnectionDetected; return m_closeConnectionDetected;

View File

@ -27,8 +27,8 @@ QString QXcbMime::mimeAtomToString(QXcbConnection *connection, xcb_atom_t a)
// special cases for string type // special cases for string type
if (a == XCB_ATOM_STRING if (a == XCB_ATOM_STRING
|| a == connection->atom(QXcbAtom::UTF8_STRING) || a == connection->atom(QXcbAtom::AtomUTF8_STRING)
|| a == connection->atom(QXcbAtom::TEXT)) || a == connection->atom(QXcbAtom::AtomTEXT))
return "text/plain"_L1; return "text/plain"_L1;
// special case for images // special case for images
@ -54,15 +54,15 @@ bool QXcbMime::mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeDa
*atomFormat = a; *atomFormat = a;
*dataFormat = 8; *dataFormat = 8;
if ((a == connection->atom(QXcbAtom::UTF8_STRING) if ((a == connection->atom(QXcbAtom::AtomUTF8_STRING)
|| a == XCB_ATOM_STRING || a == XCB_ATOM_STRING
|| a == connection->atom(QXcbAtom::TEXT)) || a == connection->atom(QXcbAtom::AtomTEXT))
&& QInternalMimeData::hasFormatHelper("text/plain"_L1, mimeData)) { && QInternalMimeData::hasFormatHelper("text/plain"_L1, mimeData)) {
if (a == connection->atom(QXcbAtom::UTF8_STRING)) { if (a == connection->atom(QXcbAtom::AtomUTF8_STRING)) {
*data = QInternalMimeData::renderDataHelper("text/plain"_L1, mimeData); *data = QInternalMimeData::renderDataHelper("text/plain"_L1, mimeData);
ret = true; ret = true;
} else if (a == XCB_ATOM_STRING || } else if (a == XCB_ATOM_STRING ||
a == connection->atom(QXcbAtom::TEXT)) { a == connection->atom(QXcbAtom::AtomTEXT)) {
// ICCCM says STRING is latin1 // ICCCM says STRING is latin1
*data = QString::fromUtf8(QInternalMimeData::renderDataHelper( *data = QString::fromUtf8(QInternalMimeData::renderDataHelper(
"text/plain"_L1, mimeData)).toLatin1(); "text/plain"_L1, mimeData)).toLatin1();
@ -102,9 +102,9 @@ QList<xcb_atom_t> QXcbMime::mimeAtomsForFormat(QXcbConnection *connection, const
// special cases for strings // special cases for strings
if (format == "text/plain"_L1) { if (format == "text/plain"_L1) {
atoms.append(connection->atom(QXcbAtom::UTF8_STRING)); atoms.append(connection->atom(QXcbAtom::AtomUTF8_STRING));
atoms.append(XCB_ATOM_STRING); atoms.append(XCB_ATOM_STRING);
atoms.append(connection->atom(QXcbAtom::TEXT)); atoms.append(connection->atom(QXcbAtom::AtomTEXT));
} }
// special cases for uris // special cases for uris
@ -139,11 +139,11 @@ QVariant QXcbMime::mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a,
if (format == "text/plain"_L1) { if (format == "text/plain"_L1) {
if (data.endsWith('\0')) if (data.endsWith('\0'))
data.chop(1); data.chop(1);
if (a == connection->atom(QXcbAtom::UTF8_STRING)) { if (a == connection->atom(QXcbAtom::AtomUTF8_STRING)) {
return QString::fromUtf8(data); return QString::fromUtf8(data);
} }
if (a == XCB_ATOM_STRING || if (a == XCB_ATOM_STRING ||
a == connection->atom(QXcbAtom::TEXT)) a == connection->atom(QXcbAtom::AtomTEXT))
return QString::fromLatin1(data); return QString::fromLatin1(data);
} }
// If data contains UTF16 text, convert it to a string. // If data contains UTF16 text, convert it to a string.
@ -227,12 +227,12 @@ xcb_atom_t QXcbMime::mimeAtomForFormat(QXcbConnection *connection, const QString
// find matches for string types // find matches for string types
if (format == "text/plain"_L1) { if (format == "text/plain"_L1) {
if (atoms.contains(connection->atom(QXcbAtom::UTF8_STRING))) if (atoms.contains(connection->atom(QXcbAtom::AtomUTF8_STRING)))
return connection->atom(QXcbAtom::UTF8_STRING); return connection->atom(QXcbAtom::AtomUTF8_STRING);
if (atoms.contains(XCB_ATOM_STRING)) if (atoms.contains(XCB_ATOM_STRING))
return XCB_ATOM_STRING; return XCB_ATOM_STRING;
if (atoms.contains(connection->atom(QXcbAtom::TEXT))) if (atoms.contains(connection->atom(QXcbAtom::AtomTEXT)))
return connection->atom(QXcbAtom::TEXT); return connection->atom(QXcbAtom::AtomTEXT);
} }
// find matches for uri types // find matches for uri types

View File

@ -350,7 +350,7 @@ void *QXcbNativeInterface::atspiBus()
QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration()); QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration());
QXcbConnection *connection = integration->connection(); QXcbConnection *connection = integration->connection();
if (connection) { if (connection) {
auto atspiBusAtom = connection->atom(QXcbAtom::AT_SPI_BUS); auto atspiBusAtom = connection->atom(QXcbAtom::AtomAT_SPI_BUS);
auto reply = Q_XCB_REPLY(xcb_get_property, connection->xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, connection->xcb_connection(),
false, connection->rootWindow(), false, connection->rootWindow(),
atspiBusAtom, XCB_ATOM_STRING, 0, 128); atspiBusAtom, XCB_ATOM_STRING, 0, 128);

View File

@ -50,7 +50,7 @@ QXcbVirtualDesktop::QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
false, screen->root, false, screen->root,
atom(QXcbAtom::_NET_SUPPORTING_WM_CHECK), atom(QXcbAtom::Atom_NET_SUPPORTING_WM_CHECK),
XCB_ATOM_WINDOW, 0, 1024); XCB_ATOM_WINDOW, 0, 1024);
if (reply && reply->format == 32 && reply->type == XCB_ATOM_WINDOW) { if (reply && reply->format == 32 && reply->type == XCB_ATOM_WINDOW) {
xcb_window_t windowManager = *((xcb_window_t *)xcb_get_property_value(reply.get())); xcb_window_t windowManager = *((xcb_window_t *)xcb_get_property_value(reply.get()));
@ -249,7 +249,7 @@ QRect QXcbVirtualDesktop::getWorkArea() const
{ {
QRect r; QRect r;
auto workArea = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), false, screen()->root, auto workArea = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), false, screen()->root,
atom(QXcbAtom::_NET_WORKAREA), atom(QXcbAtom::Atom_NET_WORKAREA),
XCB_ATOM_CARDINAL, 0, 1024); XCB_ATOM_CARDINAL, 0, 1024);
if (workArea && workArea->type == XCB_ATOM_CARDINAL && workArea->format == 32 && workArea->value_len >= 4) { if (workArea && workArea->type == XCB_ATOM_CARDINAL && workArea->format == 32 && workArea->value_len >= 4) {
// If workArea->value_len > 4, the remaining ones seem to be for WM's virtual desktops // If workArea->value_len > 4, the remaining ones seem to be for WM's virtual desktops
@ -529,7 +529,7 @@ void QXcbScreen::updateColorSpaceAndEdid()
// Read colord ICC data (from GNOME settings) // Read colord ICC data (from GNOME settings)
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
false, screen()->root, false, screen()->root,
connection()->atom(QXcbAtom::_ICC_PROFILE), connection()->atom(QXcbAtom::Atom_ICC_PROFILE),
XCB_ATOM_CARDINAL, 0, 8192); XCB_ATOM_CARDINAL, 0, 8192);
if (reply->format == 8 && reply->type == XCB_ATOM_CARDINAL) { if (reply->format == 8 && reply->type == XCB_ATOM_CARDINAL) {
QByteArray data(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), reply->value_len); QByteArray data(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), reply->value_len);
@ -817,7 +817,7 @@ void QXcbScreen::sendStartupMessage(const QByteArray &message) const
xcb_client_message_event_t ev; xcb_client_message_event_t ev;
ev.response_type = XCB_CLIENT_MESSAGE; ev.response_type = XCB_CLIENT_MESSAGE;
ev.format = 8; ev.format = 8;
ev.type = connection()->atom(QXcbAtom::_NET_STARTUP_INFO_BEGIN); ev.type = connection()->atom(QXcbAtom::Atom_NET_STARTUP_INFO_BEGIN);
ev.sequence = 0; ev.sequence = 0;
ev.window = rootWindow; ev.window = rootWindow;
int sent = 0; int sent = 0;
@ -825,7 +825,7 @@ void QXcbScreen::sendStartupMessage(const QByteArray &message) const
const char *data = message.constData(); const char *data = message.constData();
do { do {
if (sent == 20) if (sent == 20)
ev.type = connection()->atom(QXcbAtom::_NET_STARTUP_INFO); ev.type = connection()->atom(QXcbAtom::Atom_NET_STARTUP_INFO);
const int start = sent; const int start = sent;
const int numBytes = qMin(length - start, 20); const int numBytes = qMin(length - start, 20);
@ -1095,11 +1095,11 @@ QByteArray QXcbScreen::getEdid() const
return result; return result;
// Try a bunch of atoms // Try a bunch of atoms
result = getOutputProperty(atom(QXcbAtom::EDID)); result = getOutputProperty(atom(QXcbAtom::AtomEDID));
if (result.isEmpty()) if (result.isEmpty())
result = getOutputProperty(atom(QXcbAtom::EDID_DATA)); result = getOutputProperty(atom(QXcbAtom::AtomEDID_DATA));
if (result.isEmpty()) if (result.isEmpty())
result = getOutputProperty(atom(QXcbAtom::XFree86_DDC_EDID1_RAWDATA)); result = getOutputProperty(atom(QXcbAtom::AtomXFree86_DDC_EDID1_RAWDATA));
return result; return result;
} }

View File

@ -26,7 +26,7 @@ enum {
QXcbSystemTrayTracker *QXcbSystemTrayTracker::create(QXcbConnection *connection) QXcbSystemTrayTracker *QXcbSystemTrayTracker::create(QXcbConnection *connection)
{ {
// Selection, tray atoms for GNOME, NET WM Specification // Selection, tray atoms for GNOME, NET WM Specification
const xcb_atom_t trayAtom = connection->atom(QXcbAtom::_NET_SYSTEM_TRAY_OPCODE); const xcb_atom_t trayAtom = connection->atom(QXcbAtom::Atom_NET_SYSTEM_TRAY_OPCODE);
if (!trayAtom) if (!trayAtom)
return nullptr; return nullptr;
const QByteArray netSysTray = QByteArrayLiteral("_NET_SYSTEM_TRAY_S") + QByteArray::number(connection->primaryScreenNumber()); const QByteArray netSysTray = QByteArrayLiteral("_NET_SYSTEM_TRAY_S") + QByteArray::number(connection->primaryScreenNumber());
@ -113,7 +113,7 @@ xcb_visualid_t QXcbSystemTrayTracker::netSystemTrayVisual()
if (m_trayWindow == XCB_WINDOW_NONE) if (m_trayWindow == XCB_WINDOW_NONE)
return XCB_NONE; return XCB_NONE;
xcb_atom_t tray_atom = m_connection->atom(QXcbAtom::_NET_SYSTEM_TRAY_VISUAL); xcb_atom_t tray_atom = m_connection->atom(QXcbAtom::Atom_NET_SYSTEM_TRAY_VISUAL);
// Get the xcb property for the _NET_SYSTEM_TRAY_VISUAL atom // Get the xcb property for the _NET_SYSTEM_TRAY_VISUAL atom
auto systray_atom_reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, m_connection->xcb_connection(), auto systray_atom_reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, m_connection->xcb_connection(),

View File

@ -360,20 +360,20 @@ void QXcbWindow::create()
xcb_atom_t properties[5]; xcb_atom_t properties[5];
int propertyCount = 0; int propertyCount = 0;
properties[propertyCount++] = atom(QXcbAtom::WM_DELETE_WINDOW); properties[propertyCount++] = atom(QXcbAtom::AtomWM_DELETE_WINDOW);
properties[propertyCount++] = atom(QXcbAtom::WM_TAKE_FOCUS); properties[propertyCount++] = atom(QXcbAtom::AtomWM_TAKE_FOCUS);
properties[propertyCount++] = atom(QXcbAtom::_NET_WM_PING); properties[propertyCount++] = atom(QXcbAtom::Atom_NET_WM_PING);
if (connection()->hasXSync()) if (connection()->hasXSync())
properties[propertyCount++] = atom(QXcbAtom::_NET_WM_SYNC_REQUEST); properties[propertyCount++] = atom(QXcbAtom::Atom_NET_WM_SYNC_REQUEST);
if (window()->flags() & Qt::WindowContextHelpButtonHint) if (window()->flags() & Qt::WindowContextHelpButtonHint)
properties[propertyCount++] = atom(QXcbAtom::_NET_WM_CONTEXT_HELP); properties[propertyCount++] = atom(QXcbAtom::Atom_NET_WM_CONTEXT_HELP);
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::WM_PROTOCOLS), atom(QXcbAtom::AtomWM_PROTOCOLS),
XCB_ATOM_ATOM, XCB_ATOM_ATOM,
32, 32,
propertyCount, propertyCount,
@ -384,7 +384,7 @@ void QXcbWindow::create()
const QByteArray wmClass = QXcbIntegration::instance()->wmClass(); const QByteArray wmClass = QXcbIntegration::instance()->wmClass();
if (!wmClass.isEmpty()) { if (!wmClass.isEmpty()) {
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE,
m_window, atom(QXcbAtom::WM_CLASS), m_window, atom(QXcbAtom::AtomWM_CLASS),
XCB_ATOM_STRING, 8, wmClass.size(), wmClass.constData()); XCB_ATOM_STRING, 8, wmClass.size(), wmClass.constData());
} }
@ -395,7 +395,7 @@ void QXcbWindow::create()
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::_NET_WM_SYNC_REQUEST_COUNTER), atom(QXcbAtom::Atom_NET_WM_SYNC_REQUEST_COUNTER),
XCB_ATOM_CARDINAL, XCB_ATOM_CARDINAL,
32, 32,
1, 1,
@ -405,13 +405,13 @@ void QXcbWindow::create()
// set the PID to let the WM kill the application if unresponsive // set the PID to let the WM kill the application if unresponsive
quint32 pid = getpid(); quint32 pid = getpid();
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::_NET_WM_PID), XCB_ATOM_CARDINAL, 32, atom(QXcbAtom::Atom_NET_WM_PID), XCB_ATOM_CARDINAL, 32,
1, &pid); 1, &pid);
const QByteArray clientMachine = QSysInfo::machineHostName().toLocal8Bit(); const QByteArray clientMachine = QSysInfo::machineHostName().toLocal8Bit();
if (!clientMachine.isEmpty()) { if (!clientMachine.isEmpty()) {
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::WM_CLIENT_MACHINE), XCB_ATOM_STRING, 8, atom(QXcbAtom::AtomWM_CLIENT_MACHINE), XCB_ATOM_STRING, 8,
clientMachine.size(), clientMachine.constData()); clientMachine.size(), clientMachine.constData());
} }
@ -425,14 +425,14 @@ void QXcbWindow::create()
xcb_window_t leader = connection()->clientLeader(); xcb_window_t leader = connection()->clientLeader();
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::WM_CLIENT_LEADER), XCB_ATOM_WINDOW, 32, atom(QXcbAtom::AtomWM_CLIENT_LEADER), XCB_ATOM_WINDOW, 32,
1, &leader); 1, &leader);
/* Add XEMBED info; this operation doesn't initiate the embedding. */ /* Add XEMBED info; this operation doesn't initiate the embedding. */
quint32 data[] = { XEMBED_VERSION, XEMBED_MAPPED }; quint32 data[] = { XEMBED_VERSION, XEMBED_MAPPED };
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::_XEMBED_INFO), atom(QXcbAtom::Atom_XEMBED_INFO),
atom(QXcbAtom::_XEMBED_INFO), atom(QXcbAtom::Atom_XEMBED_INFO),
32, 2, (void *)data); 32, 2, (void *)data);
if (connection()->hasXInput2()) if (connection()->hasXInput2())
@ -494,7 +494,7 @@ void QXcbWindow::destroy()
xcb_sync_destroy_counter(xcb_connection(), m_syncCounter); xcb_sync_destroy_counter(xcb_connection(), m_syncCounter);
if (m_window) { if (m_window) {
if (m_netWmUserTimeWindow) { if (m_netWmUserTimeWindow) {
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_USER_TIME_WINDOW)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_NET_WM_USER_TIME_WINDOW));
// Some window managers, like metacity, do XSelectInput on the _NET_WM_USER_TIME_WINDOW window, // Some window managers, like metacity, do XSelectInput on the _NET_WM_USER_TIME_WINDOW window,
// without trapping BadWindow (which crashes when the user time window is destroyed). // without trapping BadWindow (which crashes when the user time window is destroyed).
connection()->sync(); connection()->sync();
@ -563,9 +563,9 @@ void QXcbWindow::setGeometry(const QRect &rect)
QMargins QXcbWindow::frameMargins() const QMargins QXcbWindow::frameMargins() const
{ {
if (m_dirtyFrameMargins) { if (m_dirtyFrameMargins) {
if (connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::_NET_FRAME_EXTENTS))) { if (connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::Atom_NET_FRAME_EXTENTS))) {
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, m_window, auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, m_window,
atom(QXcbAtom::_NET_FRAME_EXTENTS), XCB_ATOM_CARDINAL, 0, 4); atom(QXcbAtom::Atom_NET_FRAME_EXTENTS), XCB_ATOM_CARDINAL, 0, 4);
if (reply && reply->type == XCB_ATOM_CARDINAL && reply->format == 32 && reply->value_len == 4) { if (reply && reply->type == XCB_ATOM_CARDINAL && reply->format == 32 && reply->value_len == 4) {
quint32 *data = (quint32 *)xcb_get_property_value(reply.get()); quint32 *data = (quint32 *)xcb_get_property_value(reply.get());
// _NET_FRAME_EXTENTS format is left, right, top, bottom // _NET_FRAME_EXTENTS format is left, right, top, bottom
@ -824,29 +824,29 @@ QXcbWindow::NetWmStates QXcbWindow::netWmStates()
NetWmStates result; NetWmStates result;
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
0, m_window, atom(QXcbAtom::_NET_WM_STATE), 0, m_window, atom(QXcbAtom::Atom_NET_WM_STATE),
XCB_ATOM_ATOM, 0, 1024); XCB_ATOM_ATOM, 0, 1024);
if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM) { if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM) {
const xcb_atom_t *states = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get())); const xcb_atom_t *states = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get()));
const xcb_atom_t *statesEnd = states + reply->length; const xcb_atom_t *statesEnd = states + reply->length;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_ABOVE))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_ABOVE)))
result |= NetWmStateAbove; result |= NetWmStateAbove;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_BELOW))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_BELOW)))
result |= NetWmStateBelow; result |= NetWmStateBelow;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN)))
result |= NetWmStateFullScreen; result |= NetWmStateFullScreen;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ)))
result |= NetWmStateMaximizedHorz; result |= NetWmStateMaximizedHorz;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT)))
result |= NetWmStateMaximizedVert; result |= NetWmStateMaximizedVert;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_MODAL))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_MODAL)))
result |= NetWmStateModal; result |= NetWmStateModal;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_STAYS_ON_TOP)))
result |= NetWmStateStaysOnTop; result |= NetWmStateStaysOnTop;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_DEMANDS_ATTENTION)))
result |= NetWmStateDemandsAttention; result |= NetWmStateDemandsAttention;
if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::_NET_WM_STATE_HIDDEN))) if (statesEnd != std::find(states, statesEnd, atom(QXcbAtom::Atom_NET_WM_STATE_HIDDEN)))
result |= NetWmStateHidden; result |= NetWmStateHidden;
} else { } else {
qCDebug(lcQpaXcb, "getting net wm state (%x), empty\n", m_window); qCDebug(lcQpaXcb, "getting net wm state (%x), empty\n", m_window);
@ -961,13 +961,13 @@ void QXcbWindow::setMotifWmHints(Qt::WindowFlags flags)
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::_MOTIF_WM_HINTS), atom(QXcbAtom::Atom_MOTIF_WM_HINTS),
atom(QXcbAtom::_MOTIF_WM_HINTS), atom(QXcbAtom::Atom_MOTIF_WM_HINTS),
32, 32,
5, 5,
&mwmhints); &mwmhints);
} else { } else {
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_MOTIF_WM_HINTS)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_MOTIF_WM_HINTS));
} }
} }
@ -979,7 +979,7 @@ void QXcbWindow::setNetWmState(bool set, xcb_atom_t one, xcb_atom_t two)
event.format = 32; event.format = 32;
event.sequence = 0; event.sequence = 0;
event.window = m_window; event.window = m_window;
event.type = atom(QXcbAtom::_NET_WM_STATE); event.type = atom(QXcbAtom::Atom_NET_WM_STATE);
event.data.data32[0] = set ? 1 : 0; event.data.data32[0] = set ? 1 : 0;
event.data.data32[1] = one; event.data.data32[1] = one;
event.data.data32[2] = two; event.data.data32[2] = two;
@ -995,20 +995,20 @@ void QXcbWindow::setNetWmState(Qt::WindowStates state)
{ {
if ((m_windowState ^ state) & Qt::WindowMaximized) { if ((m_windowState ^ state) & Qt::WindowMaximized) {
setNetWmState(state & Qt::WindowMaximized, setNetWmState(state & Qt::WindowMaximized,
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ), atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ),
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)); atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT));
} }
if ((m_windowState ^ state) & Qt::WindowFullScreen) if ((m_windowState ^ state) & Qt::WindowFullScreen)
setNetWmState(state & Qt::WindowFullScreen, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)); setNetWmState(state & Qt::WindowFullScreen, atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN));
} }
void QXcbWindow::setNetWmState(Qt::WindowFlags flags) void QXcbWindow::setNetWmState(Qt::WindowFlags flags)
{ {
setNetWmState(flags & Qt::WindowStaysOnTopHint, setNetWmState(flags & Qt::WindowStaysOnTopHint,
atom(QXcbAtom::_NET_WM_STATE_ABOVE), atom(QXcbAtom::Atom_NET_WM_STATE_ABOVE),
atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP)); atom(QXcbAtom::Atom_NET_WM_STATE_STAYS_ON_TOP));
setNetWmState(flags & Qt::WindowStaysOnBottomHint, atom(QXcbAtom::_NET_WM_STATE_BELOW)); setNetWmState(flags & Qt::WindowStaysOnBottomHint, atom(QXcbAtom::Atom_NET_WM_STATE_BELOW));
} }
void QXcbWindow::setNetWmStateOnUnmappedWindow() void QXcbWindow::setNetWmStateOnUnmappedWindow()
@ -1049,7 +1049,7 @@ void QXcbWindow::setNetWmStateOnUnmappedWindow()
QList<xcb_atom_t> atoms; QList<xcb_atom_t> atoms;
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
0, m_window, atom(QXcbAtom::_NET_WM_STATE), 0, m_window, atom(QXcbAtom::Atom_NET_WM_STATE),
XCB_ATOM_ATOM, 0, 1024); XCB_ATOM_ATOM, 0, 1024);
if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM && reply->value_len > 0) { if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM && reply->value_len > 0) {
const xcb_atom_t *data = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get())); const xcb_atom_t *data = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get()));
@ -1057,30 +1057,30 @@ void QXcbWindow::setNetWmStateOnUnmappedWindow()
memcpy((void *)&atoms.first(), (void *)data, reply->value_len * sizeof(xcb_atom_t)); memcpy((void *)&atoms.first(), (void *)data, reply->value_len * sizeof(xcb_atom_t));
} }
if (states & NetWmStateAbove && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_ABOVE))) if (states & NetWmStateAbove && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_ABOVE)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_ABOVE)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_ABOVE));
if (states & NetWmStateBelow && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_BELOW))) if (states & NetWmStateBelow && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_BELOW)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_BELOW)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_BELOW));
if (states & NetWmStateHidden && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_HIDDEN))) if (states & NetWmStateHidden && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_HIDDEN)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_HIDDEN)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_HIDDEN));
if (states & NetWmStateFullScreen && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN))) if (states & NetWmStateFullScreen && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN));
if (states & NetWmStateMaximizedHorz && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ))) if (states & NetWmStateMaximizedHorz && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ));
if (states & NetWmStateMaximizedVert && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT))) if (states & NetWmStateMaximizedVert && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT));
if (states & NetWmStateModal && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_MODAL))) if (states & NetWmStateModal && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_MODAL)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_MODAL)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_MODAL));
if (states & NetWmStateStaysOnTop && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP))) if (states & NetWmStateStaysOnTop && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_STAYS_ON_TOP)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_STAYS_ON_TOP)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_STAYS_ON_TOP));
if (states & NetWmStateDemandsAttention && !atoms.contains(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION))) if (states & NetWmStateDemandsAttention && !atoms.contains(atom(QXcbAtom::Atom_NET_WM_STATE_DEMANDS_ATTENTION)))
atoms.push_back(atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION)); atoms.push_back(atom(QXcbAtom::Atom_NET_WM_STATE_DEMANDS_ATTENTION));
if (atoms.isEmpty()) { if (atoms.isEmpty()) {
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_STATE)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_NET_WM_STATE));
} else { } else {
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::_NET_WM_STATE), XCB_ATOM_ATOM, 32, atom(QXcbAtom::Atom_NET_WM_STATE), XCB_ATOM_ATOM, 32,
atoms.size(), atoms.constData()); atoms.size(), atoms.constData());
} }
xcb_flush(xcb_connection()); xcb_flush(xcb_connection());
@ -1096,10 +1096,10 @@ void QXcbWindow::setWindowState(Qt::WindowStates state)
xcb_map_window(xcb_connection(), m_window); xcb_map_window(xcb_connection(), m_window);
if (m_windowState & Qt::WindowMaximized) if (m_windowState & Qt::WindowMaximized)
setNetWmState(false, setNetWmState(false,
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ), atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ),
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)); atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT));
if (m_windowState & Qt::WindowFullScreen) if (m_windowState & Qt::WindowFullScreen)
setNetWmState(false, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)); setNetWmState(false, atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN));
// set new state // set new state
if (state & Qt::WindowMinimized) { if (state & Qt::WindowMinimized) {
@ -1110,7 +1110,7 @@ void QXcbWindow::setWindowState(Qt::WindowStates state)
event.format = 32; event.format = 32;
event.sequence = 0; event.sequence = 0;
event.window = m_window; event.window = m_window;
event.type = atom(QXcbAtom::WM_CHANGE_STATE); event.type = atom(QXcbAtom::AtomWM_CHANGE_STATE);
event.data.data32[0] = XCB_ICCCM_WM_STATE_ICONIC; event.data.data32[0] = XCB_ICCCM_WM_STATE_ICONIC;
event.data.data32[1] = 0; event.data.data32[1] = 0;
event.data.data32[2] = 0; event.data.data32[2] = 0;
@ -1125,10 +1125,10 @@ void QXcbWindow::setWindowState(Qt::WindowStates state)
} }
if (state & Qt::WindowMaximized) if (state & Qt::WindowMaximized)
setNetWmState(true, setNetWmState(true,
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ), atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_HORZ),
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT)); atom(QXcbAtom::Atom_NET_WM_STATE_MAXIMIZED_VERT));
if (state & Qt::WindowFullScreen) if (state & Qt::WindowFullScreen)
setNetWmState(true, atom(QXcbAtom::_NET_WM_STATE_FULLSCREEN)); setNetWmState(true, atom(QXcbAtom::Atom_NET_WM_STATE_FULLSCREEN));
setNetWmState(state); setNetWmState(state);
@ -1155,7 +1155,7 @@ void QXcbWindow::updateNetWmUserTime(xcb_timestamp_t timestamp)
if (timestamp != 0) if (timestamp != 0)
connection()->setNetWmUserTime(timestamp); connection()->setNetWmUserTime(timestamp);
const bool isSupportedByWM = connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::_NET_WM_USER_TIME_WINDOW)); const bool isSupportedByWM = connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::Atom_NET_WM_USER_TIME_WINDOW));
if (m_netWmUserTimeWindow || isSupportedByWM) { if (m_netWmUserTimeWindow || isSupportedByWM) {
if (!m_netWmUserTimeWindow) { if (!m_netWmUserTimeWindow) {
m_netWmUserTimeWindow = xcb_generate_id(xcb_connection()); m_netWmUserTimeWindow = xcb_generate_id(xcb_connection());
@ -1170,9 +1170,9 @@ void QXcbWindow::updateNetWmUserTime(xcb_timestamp_t timestamp)
0, // value mask 0, // value mask
nullptr); // value list nullptr); // value list
wid = m_netWmUserTimeWindow; wid = m_netWmUserTimeWindow;
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, atom(QXcbAtom::_NET_WM_USER_TIME_WINDOW), xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, atom(QXcbAtom::Atom_NET_WM_USER_TIME_WINDOW),
XCB_ATOM_WINDOW, 32, 1, &m_netWmUserTimeWindow); XCB_ATOM_WINDOW, 32, 1, &m_netWmUserTimeWindow);
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_USER_TIME)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_NET_WM_USER_TIME));
QXcbWindow::setWindowTitle(connection(), m_netWmUserTimeWindow, QXcbWindow::setWindowTitle(connection(), m_netWmUserTimeWindow,
QStringLiteral("Qt NET_WM User Time Window")); QStringLiteral("Qt NET_WM User Time Window"));
@ -1180,14 +1180,14 @@ void QXcbWindow::updateNetWmUserTime(xcb_timestamp_t timestamp)
} else if (!isSupportedByWM) { } else if (!isSupportedByWM) {
// WM no longer supports it, then we should remove the // WM no longer supports it, then we should remove the
// _NET_WM_USER_TIME_WINDOW atom. // _NET_WM_USER_TIME_WINDOW atom.
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_USER_TIME_WINDOW)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_NET_WM_USER_TIME_WINDOW));
xcb_destroy_window(xcb_connection(), m_netWmUserTimeWindow); xcb_destroy_window(xcb_connection(), m_netWmUserTimeWindow);
m_netWmUserTimeWindow = XCB_NONE; m_netWmUserTimeWindow = XCB_NONE;
} else { } else {
wid = m_netWmUserTimeWindow; wid = m_netWmUserTimeWindow;
} }
} }
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, wid, atom(QXcbAtom::_NET_WM_USER_TIME), xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, wid, atom(QXcbAtom::Atom_NET_WM_USER_TIME),
XCB_ATOM_CARDINAL, 32, 1, &timestamp); XCB_ATOM_CARDINAL, 32, 1, &timestamp);
} }
@ -1262,8 +1262,8 @@ void QXcbWindow::setWindowIconText(const QString &title)
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::_NET_WM_ICON_NAME), atom(QXcbAtom::Atom_NET_WM_ICON_NAME),
atom(QXcbAtom::UTF8_STRING), atom(QXcbAtom::AtomUTF8_STRING),
8, 8,
ba.size(), ba.size(),
ba.constData()); ba.constData());
@ -1306,15 +1306,15 @@ void QXcbWindow::setWindowIcon(const QIcon &icon)
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::_NET_WM_ICON), atom(QXcbAtom::Atom_NET_WM_ICON),
atom(QXcbAtom::CARDINAL), atom(QXcbAtom::AtomCARDINAL),
32, 32,
icon_data.size(), icon_data.size(),
(unsigned char *) icon_data.data()); (unsigned char *) icon_data.data());
} else { } else {
xcb_delete_property(xcb_connection(), xcb_delete_property(xcb_connection(),
m_window, m_window,
atom(QXcbAtom::_NET_WM_ICON)); atom(QXcbAtom::Atom_NET_WM_ICON));
} }
} }
@ -1401,14 +1401,14 @@ void QXcbWindow::requestActivateWindow()
if (window()->isTopLevel() if (window()->isTopLevel()
&& !(window()->flags() & Qt::X11BypassWindowManagerHint) && !(window()->flags() & Qt::X11BypassWindowManagerHint)
&& (!focusWindow || !window()->isAncestorOf(focusWindow)) && (!focusWindow || !window()->isAncestorOf(focusWindow))
&& connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::_NET_ACTIVE_WINDOW))) { && connection()->wmSupport()->isSupportedByWM(atom(QXcbAtom::Atom_NET_ACTIVE_WINDOW))) {
xcb_client_message_event_t event; xcb_client_message_event_t event;
event.response_type = XCB_CLIENT_MESSAGE; event.response_type = XCB_CLIENT_MESSAGE;
event.format = 32; event.format = 32;
event.sequence = 0; event.sequence = 0;
event.window = m_window; event.window = m_window;
event.type = atom(QXcbAtom::_NET_ACTIVE_WINDOW); event.type = atom(QXcbAtom::Atom_NET_ACTIVE_WINDOW);
event.data.data32[0] = 1; event.data.data32[0] = 1;
event.data.data32[1] = connection()->time(); event.data.data32[1] = connection()->time();
event.data.data32[2] = focusWindow ? focusWindow->winId() : XCB_NONE; event.data.data32[2] = focusWindow ? focusWindow->winId() : XCB_NONE;
@ -1435,7 +1435,7 @@ QXcbWindow::WindowTypes QXcbWindow::wmWindowTypes() const
WindowTypes result; WindowTypes result;
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, xcb_connection(),
0, m_window, atom(QXcbAtom::_NET_WM_WINDOW_TYPE), 0, m_window, atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE),
XCB_ATOM_ATOM, 0, 1024); XCB_ATOM_ATOM, 0, 1024);
if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM) { if (reply && reply->format == 32 && reply->type == XCB_ATOM_ATOM) {
const xcb_atom_t *types = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get())); const xcb_atom_t *types = static_cast<const xcb_atom_t *>(xcb_get_property_value(reply.get()));
@ -1443,49 +1443,49 @@ QXcbWindow::WindowTypes QXcbWindow::wmWindowTypes() const
for (; types != types_end; types++) { for (; types != types_end; types++) {
QXcbAtom::Atom type = connection()->qatom(*types); QXcbAtom::Atom type = connection()->qatom(*types);
switch (type) { switch (type) {
case QXcbAtom::_NET_WM_WINDOW_TYPE_NORMAL: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NORMAL:
result |= WindowType::Normal; result |= WindowType::Normal;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_DESKTOP: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DESKTOP:
result |= WindowType::Desktop; result |= WindowType::Desktop;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_DOCK: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DOCK:
result |= WindowType::Dock; result |= WindowType::Dock;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_TOOLBAR: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_TOOLBAR:
result |= WindowType::Toolbar; result |= WindowType::Toolbar;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_MENU: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_MENU:
result |= WindowType::Menu; result |= WindowType::Menu;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_UTILITY: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_UTILITY:
result |= WindowType::Utility; result |= WindowType::Utility;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_SPLASH: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_SPLASH:
result |= WindowType::Splash; result |= WindowType::Splash;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_DIALOG: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DIALOG:
result |= WindowType::Dialog; result |= WindowType::Dialog;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_DROPDOWN_MENU: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DROPDOWN_MENU:
result |= WindowType::DropDownMenu; result |= WindowType::DropDownMenu;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_POPUP_MENU: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_POPUP_MENU:
result |= WindowType::PopupMenu; result |= WindowType::PopupMenu;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_TOOLTIP: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_TOOLTIP:
result |= WindowType::Tooltip; result |= WindowType::Tooltip;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_NOTIFICATION: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NOTIFICATION:
result |= WindowType::Notification; result |= WindowType::Notification;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_COMBO: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_COMBO:
result |= WindowType::Combo; result |= WindowType::Combo;
break; break;
case QXcbAtom::_NET_WM_WINDOW_TYPE_DND: case QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DND:
result |= WindowType::Dnd; result |= WindowType::Dnd;
break; break;
case QXcbAtom::_KDE_NET_WM_WINDOW_TYPE_OVERRIDE: case QXcbAtom::Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE:
result |= WindowType::KdeOverride; result |= WindowType::KdeOverride;
break; break;
default: default:
@ -1502,41 +1502,41 @@ void QXcbWindow::setWmWindowType(WindowTypes types, Qt::WindowFlags flags)
// manual selection 1 (these are never set by Qt and take precedence) // manual selection 1 (these are never set by Qt and take precedence)
if (types & WindowType::Normal) if (types & WindowType::Normal)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_NORMAL)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NORMAL));
if (types & WindowType::Desktop) if (types & WindowType::Desktop)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DESKTOP)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DESKTOP));
if (types & WindowType::Dock) if (types & WindowType::Dock)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DOCK)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DOCK));
if (types & WindowType::Notification) if (types & WindowType::Notification)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_NOTIFICATION)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NOTIFICATION));
// manual selection 2 (Qt uses these during auto selection); // manual selection 2 (Qt uses these during auto selection);
if (types & WindowType::Utility) if (types & WindowType::Utility)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_UTILITY)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_UTILITY));
if (types & WindowType::Splash) if (types & WindowType::Splash)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_SPLASH)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_SPLASH));
if (types & WindowType::Dialog) if (types & WindowType::Dialog)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DIALOG)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DIALOG));
if (types & WindowType::Tooltip) if (types & WindowType::Tooltip)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_TOOLTIP)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_TOOLTIP));
if (types & WindowType::KdeOverride) if (types & WindowType::KdeOverride)
atoms.append(atom(QXcbAtom::_KDE_NET_WM_WINDOW_TYPE_OVERRIDE)); atoms.append(atom(QXcbAtom::Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE));
// manual selection 3 (these can be set by Qt, but don't have a // manual selection 3 (these can be set by Qt, but don't have a
// corresponding Qt::WindowType). note that order of the *MENU // corresponding Qt::WindowType). note that order of the *MENU
// atoms is important // atoms is important
if (types & WindowType::Menu) if (types & WindowType::Menu)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_MENU)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_MENU));
if (types & WindowType::DropDownMenu) if (types & WindowType::DropDownMenu)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DROPDOWN_MENU)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DROPDOWN_MENU));
if (types & WindowType::PopupMenu) if (types & WindowType::PopupMenu)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_POPUP_MENU)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_POPUP_MENU));
if (types & WindowType::Toolbar) if (types & WindowType::Toolbar)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_TOOLBAR)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_TOOLBAR));
if (types & WindowType::Combo) if (types & WindowType::Combo)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_COMBO)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_COMBO));
if (types & WindowType::Dnd) if (types & WindowType::Dnd)
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DND)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DND));
// automatic selection // automatic selection
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask)); Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
@ -1544,20 +1544,20 @@ void QXcbWindow::setWmWindowType(WindowTypes types, Qt::WindowFlags flags)
case Qt::Dialog: case Qt::Dialog:
case Qt::Sheet: case Qt::Sheet:
if (!(types & WindowType::Dialog)) if (!(types & WindowType::Dialog))
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_DIALOG)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_DIALOG));
break; break;
case Qt::Tool: case Qt::Tool:
case Qt::Drawer: case Qt::Drawer:
if (!(types & WindowType::Utility)) if (!(types & WindowType::Utility))
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_UTILITY)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_UTILITY));
break; break;
case Qt::ToolTip: case Qt::ToolTip:
if (!(types & WindowType::Tooltip)) if (!(types & WindowType::Tooltip))
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_TOOLTIP)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_TOOLTIP));
break; break;
case Qt::SplashScreen: case Qt::SplashScreen:
if (!(types & WindowType::Splash)) if (!(types & WindowType::Splash))
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_SPLASH)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_SPLASH));
break; break;
default: default:
break; break;
@ -1565,19 +1565,19 @@ void QXcbWindow::setWmWindowType(WindowTypes types, Qt::WindowFlags flags)
if ((flags & Qt::FramelessWindowHint) && !(types & WindowType::KdeOverride)) { if ((flags & Qt::FramelessWindowHint) && !(types & WindowType::KdeOverride)) {
// override netwm type - quick and easy for KDE noborder // override netwm type - quick and easy for KDE noborder
atoms.append(atom(QXcbAtom::_KDE_NET_WM_WINDOW_TYPE_OVERRIDE)); atoms.append(atom(QXcbAtom::Atom_KDE_NET_WM_WINDOW_TYPE_OVERRIDE));
} }
if (atoms.size() == 1 && atoms.first() == atom(QXcbAtom::_NET_WM_WINDOW_TYPE_NORMAL)) if (atoms.size() == 1 && atoms.first() == atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NORMAL))
atoms.clear(); atoms.clear();
else else
atoms.append(atom(QXcbAtom::_NET_WM_WINDOW_TYPE_NORMAL)); atoms.append(atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE_NORMAL));
if (atoms.isEmpty()) { if (atoms.isEmpty()) {
xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::_NET_WM_WINDOW_TYPE)); xcb_delete_property(xcb_connection(), m_window, atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE));
} else { } else {
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::_NET_WM_WINDOW_TYPE), XCB_ATOM_ATOM, 32, atom(QXcbAtom::Atom_NET_WM_WINDOW_TYPE), XCB_ATOM_ATOM, 32,
atoms.size(), atoms.constData()); atoms.size(), atoms.constData());
} }
xcb_flush(xcb_connection()); xcb_flush(xcb_connection());
@ -1587,7 +1587,7 @@ void QXcbWindow::setWindowRole(const QString &role)
{ {
QByteArray roleData = role.toLatin1(); QByteArray roleData = role.toLatin1();
xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window, xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::WM_WINDOW_ROLE), XCB_ATOM_STRING, 8, atom(QXcbAtom::AtomWM_WINDOW_ROLE), XCB_ATOM_STRING, 8,
roleData.size(), roleData.constData()); roleData.size(), roleData.constData());
} }
@ -1646,15 +1646,15 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even
if (event->format != 32) if (event->format != 32)
return; return;
if (event->type == atom(QXcbAtom::WM_PROTOCOLS)) { if (event->type == atom(QXcbAtom::AtomWM_PROTOCOLS)) {
xcb_atom_t protocolAtom = event->data.data32[0]; xcb_atom_t protocolAtom = event->data.data32[0];
if (protocolAtom == atom(QXcbAtom::WM_DELETE_WINDOW)) { if (protocolAtom == atom(QXcbAtom::AtomWM_DELETE_WINDOW)) {
QWindowSystemInterface::handleCloseEvent(window()); QWindowSystemInterface::handleCloseEvent(window());
} else if (protocolAtom == atom(QXcbAtom::WM_TAKE_FOCUS)) { } else if (protocolAtom == atom(QXcbAtom::AtomWM_TAKE_FOCUS)) {
connection()->setTime(event->data.data32[1]); connection()->setTime(event->data.data32[1]);
relayFocusToModalWindow(); relayFocusToModalWindow();
return; return;
} else if (protocolAtom == atom(QXcbAtom::_NET_WM_PING)) { } else if (protocolAtom == atom(QXcbAtom::Atom_NET_WM_PING)) {
if (event->window == xcbScreen()->root()) if (event->window == xcbScreen()->root())
return; return;
@ -1667,14 +1667,14 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even
XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,
(const char *)&reply); (const char *)&reply);
xcb_flush(xcb_connection()); xcb_flush(xcb_connection());
} else if (protocolAtom == atom(QXcbAtom::_NET_WM_SYNC_REQUEST)) { } else if (protocolAtom == atom(QXcbAtom::Atom_NET_WM_SYNC_REQUEST)) {
connection()->setTime(event->data.data32[1]); connection()->setTime(event->data.data32[1]);
m_syncValue.lo = event->data.data32[2]; m_syncValue.lo = event->data.data32[2];
m_syncValue.hi = event->data.data32[3]; m_syncValue.hi = event->data.data32[3];
if (connection()->hasXSync()) if (connection()->hasXSync())
m_syncState = SyncReceived; m_syncState = SyncReceived;
#ifndef QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS
} else if (protocolAtom == atom(QXcbAtom::_NET_WM_CONTEXT_HELP)) { } else if (protocolAtom == atom(QXcbAtom::Atom_NET_WM_CONTEXT_HELP)) {
QWindowSystemInterface::handleEnterWhatsThisEvent(); QWindowSystemInterface::handleEnterWhatsThisEvent();
#endif #endif
} else { } else {
@ -1682,29 +1682,29 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even
connection()->atomName(protocolAtom).constData()); connection()->atomName(protocolAtom).constData());
} }
#if QT_CONFIG(draganddrop) #if QT_CONFIG(draganddrop)
} else if (event->type == atom(QXcbAtom::XdndEnter)) { } else if (event->type == atom(QXcbAtom::AtomXdndEnter)) {
connection()->drag()->handleEnter(this, event); connection()->drag()->handleEnter(this, event);
} else if (event->type == atom(QXcbAtom::XdndPosition)) { } else if (event->type == atom(QXcbAtom::AtomXdndPosition)) {
connection()->drag()->handlePosition(this, event); connection()->drag()->handlePosition(this, event);
} else if (event->type == atom(QXcbAtom::XdndLeave)) { } else if (event->type == atom(QXcbAtom::AtomXdndLeave)) {
connection()->drag()->handleLeave(this, event); connection()->drag()->handleLeave(this, event);
} else if (event->type == atom(QXcbAtom::XdndDrop)) { } else if (event->type == atom(QXcbAtom::AtomXdndDrop)) {
connection()->drag()->handleDrop(this, event); connection()->drag()->handleDrop(this, event);
#endif #endif
} else if (event->type == atom(QXcbAtom::_XEMBED)) { } else if (event->type == atom(QXcbAtom::Atom_XEMBED)) {
handleXEmbedMessage(event); handleXEmbedMessage(event);
} else if (event->type == atom(QXcbAtom::_NET_ACTIVE_WINDOW)) { } else if (event->type == atom(QXcbAtom::Atom_NET_ACTIVE_WINDOW)) {
doFocusIn(); doFocusIn();
} else if (event->type == atom(QXcbAtom::MANAGER) } else if (event->type == atom(QXcbAtom::AtomMANAGER)
|| event->type == atom(QXcbAtom::_NET_WM_STATE) || event->type == atom(QXcbAtom::Atom_NET_WM_STATE)
|| event->type == atom(QXcbAtom::WM_CHANGE_STATE)) { || event->type == atom(QXcbAtom::AtomWM_CHANGE_STATE)) {
// Ignore _NET_WM_STATE, MANAGER which are relate to tray icons // Ignore _NET_WM_STATE, MANAGER which are relate to tray icons
// and other messages. // and other messages.
} else if (event->type == atom(QXcbAtom::_COMPIZ_DECOR_PENDING) } else if (event->type == atom(QXcbAtom::Atom_COMPIZ_DECOR_PENDING)
|| event->type == atom(QXcbAtom::_COMPIZ_DECOR_REQUEST) || event->type == atom(QXcbAtom::Atom_COMPIZ_DECOR_REQUEST)
|| event->type == atom(QXcbAtom::_COMPIZ_DECOR_DELETE_PIXMAP) || event->type == atom(QXcbAtom::Atom_COMPIZ_DECOR_DELETE_PIXMAP)
|| event->type == atom(QXcbAtom::_COMPIZ_TOOLKIT_ACTION) || event->type == atom(QXcbAtom::Atom_COMPIZ_TOOLKIT_ACTION)
|| event->type == atom(QXcbAtom::_GTK_LOAD_ICONTHEMES)) { || event->type == atom(QXcbAtom::Atom_GTK_LOAD_ICONTHEMES)) {
//silence the _COMPIZ and _GTK messages for now //silence the _COMPIZ and _GTK messages for now
} else { } else {
qCWarning(lcQpaXcb) << "Unhandled client message: " << connection()->atomName(event->type); qCWarning(lcQpaXcb) << "Unhandled client message: " << connection()->atomName(event->type);
@ -2136,17 +2136,17 @@ void QXcbWindow::handlePropertyNotifyEvent(const xcb_property_notify_event_t *ev
const bool propertyDeleted = event->state == XCB_PROPERTY_DELETE; const bool propertyDeleted = event->state == XCB_PROPERTY_DELETE;
if (event->atom == atom(QXcbAtom::_NET_WM_STATE) || event->atom == atom(QXcbAtom::WM_STATE)) { if (event->atom == atom(QXcbAtom::Atom_NET_WM_STATE) || event->atom == atom(QXcbAtom::AtomWM_STATE)) {
if (propertyDeleted) if (propertyDeleted)
return; return;
Qt::WindowStates newState = Qt::WindowNoState; Qt::WindowStates newState = Qt::WindowNoState;
if (event->atom == atom(QXcbAtom::WM_STATE)) { // WM_STATE: Quick check for 'Minimize'. if (event->atom == atom(QXcbAtom::AtomWM_STATE)) { // WM_STATE: Quick check for 'Minimize'.
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(),
0, m_window, atom(QXcbAtom::WM_STATE), 0, m_window, atom(QXcbAtom::AtomWM_STATE),
XCB_ATOM_ANY, 0, 1024); XCB_ATOM_ANY, 0, 1024);
if (reply && reply->format == 32 && reply->type == atom(QXcbAtom::WM_STATE)) { if (reply && reply->format == 32 && reply->type == atom(QXcbAtom::AtomWM_STATE)) {
const quint32 *data = (const quint32 *)xcb_get_property_value(reply.get()); const quint32 *data = (const quint32 *)xcb_get_property_value(reply.get());
if (reply->length != 0) if (reply->length != 0)
m_minimized = (data[0] == XCB_ICCCM_WM_STATE_ICONIC m_minimized = (data[0] == XCB_ICCCM_WM_STATE_ICONIC
@ -2176,7 +2176,7 @@ void QXcbWindow::handlePropertyNotifyEvent(const xcb_property_notify_event_t *ev
connection()->setMouseGrabber(nullptr); connection()->setMouseGrabber(nullptr);
} }
return; return;
} else if (event->atom == atom(QXcbAtom::_NET_FRAME_EXTENTS)) { } else if (event->atom == atom(QXcbAtom::Atom_NET_FRAME_EXTENTS)) {
m_dirtyFrameMargins = true; m_dirtyFrameMargins = true;
} }
} }
@ -2315,7 +2315,7 @@ bool QXcbWindow::startSystemMove()
bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int edges) bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int edges)
{ {
const xcb_atom_t moveResize = connection()->atom(QXcbAtom::_NET_WM_MOVERESIZE); const xcb_atom_t moveResize = connection()->atom(QXcbAtom::Atom_NET_WM_MOVERESIZE);
if (!connection()->wmSupport()->isSupportedByWM(moveResize)) if (!connection()->wmSupport()->isSupportedByWM(moveResize))
return false; return false;
@ -2363,7 +2363,7 @@ static uint qtEdgesToXcbMoveResizeDirection(Qt::Edges edges)
void QXcbWindow::doStartSystemMoveResize(const QPoint &globalPos, int edges) void QXcbWindow::doStartSystemMoveResize(const QPoint &globalPos, int edges)
{ {
qCDebug(lcQpaXInputDevices) << "triggered system move or resize via sending _NET_WM_MOVERESIZE client message"; qCDebug(lcQpaXInputDevices) << "triggered system move or resize via sending _NET_WM_MOVERESIZE client message";
const xcb_atom_t moveResize = connection()->atom(QXcbAtom::_NET_WM_MOVERESIZE); const xcb_atom_t moveResize = connection()->atom(QXcbAtom::Atom_NET_WM_MOVERESIZE);
xcb_client_message_event_t xev; xcb_client_message_event_t xev;
xev.response_type = XCB_CLIENT_MESSAGE; xev.response_type = XCB_CLIENT_MESSAGE;
xev.type = moveResize; xev.type = moveResize;
@ -2396,7 +2396,7 @@ void QXcbWindow::sendXEmbedMessage(xcb_window_t window, quint32 message,
event.format = 32; event.format = 32;
event.sequence = 0; event.sequence = 0;
event.window = window; event.window = window;
event.type = atom(QXcbAtom::_XEMBED); event.type = atom(QXcbAtom::Atom_XEMBED);
event.data.data32[0] = connection()->time(); event.data.data32[0] = connection()->time();
event.data.data32[1] = message; event.data.data32[1] = message;
event.data.data32[2] = detail; event.data.data32[2] = detail;
@ -2475,7 +2475,7 @@ void QXcbWindow::setOpacity(qreal level)
xcb_change_property(xcb_connection(), xcb_change_property(xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
m_window, m_window,
atom(QXcbAtom::_NET_WM_WINDOW_OPACITY), atom(QXcbAtom::Atom_NET_WM_WINDOW_OPACITY),
XCB_ATOM_CARDINAL, XCB_ATOM_CARDINAL,
32, 32,
1, 1,
@ -2513,7 +2513,7 @@ void QXcbWindow::setAlertState(bool enabled)
m_alertState = enabled; m_alertState = enabled;
setNetWmState(enabled, atom(QXcbAtom::_NET_WM_STATE_DEMANDS_ATTENTION)); setNetWmState(enabled, atom(QXcbAtom::Atom_NET_WM_STATE_DEMANDS_ATTENTION));
} }
uint QXcbWindow::visualId() const uint QXcbWindow::visualId() const
@ -2547,8 +2547,8 @@ void QXcbWindow::setWindowTitle(const QXcbConnection *conn, xcb_window_t window,
xcb_change_property(conn->xcb_connection(), xcb_change_property(conn->xcb_connection(),
XCB_PROP_MODE_REPLACE, XCB_PROP_MODE_REPLACE,
window, window,
conn->atom(QXcbAtom::_NET_WM_NAME), conn->atom(QXcbAtom::Atom_NET_WM_NAME),
conn->atom(QXcbAtom::UTF8_STRING), conn->atom(QXcbAtom::AtomUTF8_STRING),
8, 8,
ba.size(), ba.size(),
ba.constData()); ba.constData());
@ -2564,9 +2564,9 @@ void QXcbWindow::setWindowTitle(const QXcbConnection *conn, xcb_window_t window,
QString QXcbWindow::windowTitle(const QXcbConnection *conn, xcb_window_t window) QString QXcbWindow::windowTitle(const QXcbConnection *conn, xcb_window_t window)
{ {
const xcb_atom_t utf8Atom = conn->atom(QXcbAtom::UTF8_STRING); const xcb_atom_t utf8Atom = conn->atom(QXcbAtom::AtomUTF8_STRING);
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, conn->xcb_connection(), auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, conn->xcb_connection(),
false, window, conn->atom(QXcbAtom::_NET_WM_NAME), false, window, conn->atom(QXcbAtom::Atom_NET_WM_NAME),
utf8Atom, 0, 1024); utf8Atom, 0, 1024);
if (reply && reply->format == 8 && reply->type == utf8Atom) { if (reply && reply->format == 8 && reply->type == utf8Atom) {
const char *name = reinterpret_cast<const char *>(xcb_get_property_value(reply.get())); const char *name = reinterpret_cast<const char *>(xcb_get_property_value(reply.get()));
@ -2574,7 +2574,7 @@ QString QXcbWindow::windowTitle(const QXcbConnection *conn, xcb_window_t window)
} }
reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, conn->xcb_connection(), reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, conn->xcb_connection(),
false, window, conn->atom(QXcbAtom::WM_NAME), false, window, conn->atom(QXcbAtom::AtomWM_NAME),
XCB_ATOM_STRING, 0, 1024); XCB_ATOM_STRING, 0, 1024);
if (reply && reply->format == 8 && reply->type == XCB_ATOM_STRING) { if (reply && reply->format == 8 && reply->type == XCB_ATOM_STRING) {
const char *name = reinterpret_cast<const char *>(xcb_get_property_value(reply.get())); const char *name = reinterpret_cast<const char *>(xcb_get_property_value(reply.get()));

View File

@ -30,7 +30,7 @@ void QXcbWMSupport::updateNetWMAtoms()
int offset = 0; int offset = 0;
int remaining = 0; int remaining = 0;
do { do {
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, root, atom(QXcbAtom::_NET_SUPPORTED), XCB_ATOM_ATOM, offset, 1024); auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), false, root, atom(QXcbAtom::Atom_NET_SUPPORTED), XCB_ATOM_ATOM, offset, 1024);
if (!reply) if (!reply)
break; break;
@ -54,7 +54,7 @@ void QXcbWMSupport::updateVirtualRoots()
{ {
net_virtual_roots.clear(); net_virtual_roots.clear();
if (!isSupportedByWM(atom(QXcbAtom::_NET_VIRTUAL_ROOTS))) if (!isSupportedByWM(atom(QXcbAtom::Atom_NET_VIRTUAL_ROOTS)))
return; return;
xcb_window_t root = connection()->primaryScreen()->root(); xcb_window_t root = connection()->primaryScreen()->root();
@ -62,7 +62,7 @@ void QXcbWMSupport::updateVirtualRoots()
int remaining = 0; int remaining = 0;
do { do {
auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(), auto reply = Q_XCB_REPLY(xcb_get_property, xcb_connection(),
false, root, atom(QXcbAtom::_NET_VIRTUAL_ROOTS), XCB_ATOM_WINDOW, offset, 1024); false, root, atom(QXcbAtom::Atom_NET_VIRTUAL_ROOTS), XCB_ATOM_WINDOW, offset, 1024);
if (!reply) if (!reply)
break; break;

View File

@ -68,7 +68,7 @@ public:
int offset = 0; int offset = 0;
QByteArray settings; QByteArray settings;
xcb_atom_t _xsettings_atom = screen->connection()->atom(QXcbAtom::_XSETTINGS_SETTINGS); xcb_atom_t _xsettings_atom = screen->connection()->atom(QXcbAtom::Atom_XSETTINGS_SETTINGS);
while (1) { while (1) {
auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property, auto reply = Q_XCB_REPLY_UNCHECKED(xcb_get_property,
screen->xcb_connection(), screen->xcb_connection(),