Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QXcbKeyboard Class Reference

#include <qxcbkeyboard.h>

+ Inheritance diagram for QXcbKeyboard:
+ Collaboration diagram for QXcbKeyboard:

Public Member Functions

 QXcbKeyboard (QXcbConnection *connection)
 
 ~QXcbKeyboard ()
 
void initialize ()
 
void selectEvents ()
 
void handleKeyPressEvent (const xcb_key_press_event_t *event)
 
void handleKeyReleaseEvent (const xcb_key_release_event_t *event)
 
Qt::KeyboardModifiers translateModifiers (int s) const
 
void updateKeymap (xcb_mapping_notify_event_t *event)
 
void updateKeymap ()
 
QList< QKeyCombinationpossibleKeyCombinations (const QKeyEvent *event) const override
 
Qt::KeyboardModifiers queryKeyboardModifiers () const override
 
void updateXKBMods ()
 
xkb_mod_mask_t xkbModMask (quint16 state)
 
void updateXKBStateFromCore (quint16 state)
 
void updateXKBStateFromXI (void *modInfo, void *groupInfo)
 
int coreDeviceId () const
 
void updateXKBState (xcb_xkb_state_notify_event_t *state)
 
void handleStateChanges (xkb_state_component changedComponents)
 
- Public Member Functions inherited from QXcbObject
 QXcbObject (QXcbConnection *connection=nullptr)
 
void setConnection (QXcbConnection *connection)
 
QXcbConnectionconnection () const
 
xcb_atom_t atom (QXcbAtom::Atom atom) const
 
xcb_connection_t * xcb_connection () const
 
- Public Member Functions inherited from QPlatformKeyMapper
virtual ~QPlatformKeyMapper ()
 

Protected Types

typedef QMap< xcb_keysym_t, int > KeysymModifierMap
 

Protected Member Functions

void handleKeyEvent (xcb_window_t sourceWindow, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time, bool fromSendEvent)
 
void resolveMaskConflicts ()
 
struct xkb_keymap * keymapFromCore (const KeysymModifierMap &keysymMods)
 
void updateModifiers (const KeysymModifierMap &keysymMods)
 
KeysymModifierMap keysymsToModifiers ()
 
void updateVModMapping ()
 
void updateVModToRModMapping ()
 

Detailed Description

Definition at line 23 of file qxcbkeyboard.h.

Member Typedef Documentation

◆ KeysymModifierMap

typedef QMap<xcb_keysym_t, int> QXcbKeyboard::KeysymModifierMap
protected

Definition at line 59 of file qxcbkeyboard.h.

Constructor & Destructor Documentation

◆ QXcbKeyboard()

QXcbKeyboard::QXcbKeyboard ( QXcbConnection * connection)

Definition at line 501 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), QXcbBasicConnection::hasXKB(), qCWarning, selectEvents(), updateKeymap(), and QXcbObject::xcb_connection().

+ Here is the call graph for this function:

◆ ~QXcbKeyboard()

QXcbKeyboard::~QXcbKeyboard ( )

Definition at line 519 of file qxcbkeyboard.cpp.

Member Function Documentation

◆ coreDeviceId()

int QXcbKeyboard::coreDeviceId ( ) const
inline

Definition at line 48 of file qxcbkeyboard.h.

Referenced by QXcbConnection::handleXcbEvent().

+ Here is the caller graph for this function:

◆ handleKeyEvent()

void QXcbKeyboard::handleKeyEvent ( xcb_window_t sourceWindow,
QEvent::Type type,
xcb_keycode_t code,
quint16 state,
xcb_timestamp_t time,
bool fromSendEvent )
protected

◆ handleKeyPressEvent()

void QXcbKeyboard::handleKeyPressEvent ( const xcb_key_press_event_t * event)

Definition at line 923 of file qxcbkeyboard.cpp.

References fromSendEvent(), handleKeyEvent(), and QEvent::KeyPress.

+ Here is the call graph for this function:

◆ handleKeyReleaseEvent()

void QXcbKeyboard::handleKeyReleaseEvent ( const xcb_key_release_event_t * event)

Definition at line 928 of file qxcbkeyboard.cpp.

References fromSendEvent(), handleKeyEvent(), and QEvent::KeyRelease.

+ Here is the call graph for this function:

◆ handleStateChanges()

void QXcbKeyboard::handleStateChanges ( xkb_state_component changedComponents)

Definition at line 456 of file qxcbkeyboard.cpp.

References qCDebug.

Referenced by updateXKBState(), updateXKBStateFromCore(), and updateXKBStateFromXI().

+ Here is the caller graph for this function:

◆ initialize()

void QXcbKeyboard::initialize ( )

Definition at line 525 of file qxcbkeyboard.cpp.

References QGuiApplicationPrivate::platformIntegration(), and QXkbCommon::setXkbContext().

Referenced by QXcbIntegration::initialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ keymapFromCore()

struct xkb_keymap * QXcbKeyboard::keymapFromCore ( const KeysymModifierMap & keysymMods)
protected

Definition at line 82 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), QByteArray::constData(), getUnshiftedXKey(), i, QByteArray::number(), Q_XCB_REPLY, QByteArray(), QXcbBasicConnection::setup(), QByteArray::size(), symbolsGroupString(), and QXcbObject::xcb_connection().

Referenced by updateKeymap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ keysymsToModifiers()

QXcbKeyboard::KeysymModifierMap QXcbKeyboard::keysymsToModifiers ( )
protected

Definition at line 725 of file qxcbkeyboard.cpp.

References i, keycodes_contains(), map, Q_XCB_REPLY, qWarning, and QXcbObject::xcb_connection().

Referenced by updateKeymap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ possibleKeyCombinations()

QList< QKeyCombination > QXcbKeyboard::possibleKeyCombinations ( const QKeyEvent * event) const
overridevirtual

Reimplemented from QPlatformKeyMapper.

Definition at line 381 of file qxcbkeyboard.cpp.

References QXkbCommon::possibleKeyCombinations().

+ Here is the call graph for this function:

◆ queryKeyboardModifiers()

Qt::KeyboardModifiers QXcbKeyboard::queryKeyboardModifiers ( ) const
overridevirtual

Reimplemented from QPlatformKeyMapper.

Definition at line 387 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), QXcbCursor::queryPointer(), and translateModifiers().

Referenced by QXcbDrag::handleDrop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolveMaskConflicts()

void QXcbKeyboard::resolveMaskConflicts ( )
protected

Definition at line 812 of file qxcbkeyboard.cpp.

Referenced by updateModifiers().

+ Here is the caller graph for this function:

◆ selectEvents()

void QXcbKeyboard::selectEvents ( )

Definition at line 531 of file qxcbkeyboard.cpp.

References error, qCWarning, select(), and QXcbObject::xcb_connection().

Referenced by QXcbKeyboard().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ translateModifiers()

QT_BEGIN_NAMESPACE Qt::KeyboardModifiers QXcbKeyboard::translateModifiers ( int s) const

Definition at line 21 of file qxcbkeyboard.cpp.

References Qt::AltModifier, Qt::ControlModifier, Qt::GroupSwitchModifier, Qt::MetaModifier, Qt::NoModifier, ret, and Qt::ShiftModifier.

Referenced by QXcbWindow::handleButtonPressEvent(), QXcbWindow::handleButtonReleaseEvent(), handleKeyEvent(), QXcbWindow::handleMotionNotifyEvent(), QXcbWindow::handleXIMouseEvent(), and queryKeyboardModifiers().

+ Here is the caller graph for this function:

◆ updateKeymap() [1/2]

void QXcbKeyboard::updateKeymap ( )

Definition at line 333 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), keymapFromCore(), keysymsToModifiers(), logLevel, qCWarning, updateModifiers(), updateXKBMods(), QXkbCommon::verifyHasLatinLayout(), and QXcbObject::xcb_connection().

Referenced by QXcbKeyboard(), and updateKeymap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateKeymap() [2/2]

void QXcbKeyboard::updateKeymap ( xcb_mapping_notify_event_t * event)

Definition at line 324 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), and updateKeymap().

Referenced by QXcbConnection::handleXcbEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateModifiers()

void QXcbKeyboard::updateModifiers ( const KeysymModifierMap & keysymMods)
protected

Definition at line 693 of file qxcbkeyboard.cpp.

References applyModifier(), QXcbObject::connection(), resolveMaskConflicts(), updateVModMapping(), and updateVModToRModMapping().

Referenced by updateKeymap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateVModMapping()

void QXcbKeyboard::updateVModMapping ( )
protected

Definition at line 565 of file qxcbkeyboard.cpp.

References QXcbBasicConnection::atomName(), QXcbObject::connection(), QByteArray::data(), Q_XCB_REPLY, qstrcmp(), qWarning, and QXcbObject::xcb_connection().

Referenced by updateModifiers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateVModToRModMapping()

void QXcbKeyboard::updateVModToRModMapping ( )
protected

Definition at line 626 of file qxcbkeyboard.cpp.

References map, Q_XCB_REPLY, qWarning, and QXcbObject::xcb_connection().

Referenced by updateModifiers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateXKBMods()

void QXcbKeyboard::updateXKBMods ( )

Definition at line 489 of file qxcbkeyboard.cpp.

References XKB_MOD_NAME_CTRL, and XKB_MOD_NAME_SHIFT.

Referenced by updateKeymap().

+ Here is the caller graph for this function:

◆ updateXKBState()

void QXcbKeyboard::updateXKBState ( xcb_xkb_state_notify_event_t * state)

Definition at line 395 of file qxcbkeyboard.cpp.

References QXcbObject::connection(), handleStateChanges(), and state.

Referenced by QXcbConnection::handleXcbEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateXKBStateFromCore()

void QXcbKeyboard::updateXKBStateFromCore ( quint16 state)

Definition at line 416 of file qxcbkeyboard.cpp.

References handleStateChanges(), lockedGroup(), state, and xkbModMask().

Referenced by QXcbConnection::handleXcbEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateXKBStateFromXI()

void QXcbKeyboard::updateXKBStateFromXI ( void * modInfo,
void * groupInfo )

Definition at line 438 of file qxcbkeyboard.cpp.

References handleStateChanges().

Referenced by QXcbWindow::handleXIEnterLeave(), and QXcbWindow::handleXIMouseEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ xkbModMask()

xkb_mod_mask_t QXcbKeyboard::xkbModMask ( quint16 state)

Definition at line 465 of file qxcbkeyboard.cpp.

References state.

Referenced by handleKeyEvent(), and updateXKBStateFromCore().

+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: