Add safety check in QWaylandInputDevice::Keyboard::modifiers()

::modifiers() might be invoked before being initialised. E.g. when
a pointer button event is emitted before the keymap is sent.

Change-Id: Ib95f9866d808b2a32ddfaa0862cdb3226fab1938
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
This commit is contained in:
Martin Gräßlin 2015-05-15 09:49:58 +02:00
parent 3822bac2b7
commit 022f452ed9

View File

@ -299,6 +299,9 @@ Qt::KeyboardModifiers QWaylandInputDevice::Keyboard::modifiers() const
Qt::KeyboardModifiers ret = Qt::NoModifier; Qt::KeyboardModifiers ret = Qt::NoModifier;
#ifndef QT_NO_WAYLAND_XKB #ifndef QT_NO_WAYLAND_XKB
if (!mXkbState)
return ret;
xkb_state_component cstate = static_cast<xkb_state_component>(XKB_STATE_DEPRESSED | XKB_STATE_LATCHED); xkb_state_component cstate = static_cast<xkb_state_component>(XKB_STATE_DEPRESSED | XKB_STATE_LATCHED);
if (xkb_state_mod_name_is_active(mXkbState, XKB_MOD_NAME_SHIFT, cstate)) if (xkb_state_mod_name_is_active(mXkbState, XKB_MOD_NAME_SHIFT, cstate))