Changeset View
Changeset View
Standalone View
Standalone View
xkb.cpp
Show First 20 Lines • Show All 348 Lines • ▼ Show 20 Line(s) | |||||
349 | 349 | | |||
350 | QString Xkb::layoutName() const | 350 | QString Xkb::layoutName() const | ||
351 | { | 351 | { | ||
352 | return layoutName(m_currentLayout); | 352 | return layoutName(m_currentLayout); | ||
353 | } | 353 | } | ||
354 | 354 | | |||
355 | QString Xkb::layoutName(xkb_layout_index_t layout) const | 355 | QString Xkb::layoutName(xkb_layout_index_t layout) const | ||
356 | { | 356 | { | ||
357 | if (!m_keymap) { | ||||
358 | return QString{}; | ||||
359 | } | ||||
357 | return QString::fromLocal8Bit(xkb_keymap_layout_get_name(m_keymap, layout)); | 360 | return QString::fromLocal8Bit(xkb_keymap_layout_get_name(m_keymap, layout)); | ||
358 | } | 361 | } | ||
359 | 362 | | |||
360 | QMap<xkb_layout_index_t, QString> Xkb::layoutNames() const | 363 | QMap<xkb_layout_index_t, QString> Xkb::layoutNames() const | ||
361 | { | 364 | { | ||
362 | QMap<xkb_layout_index_t, QString> layouts; | 365 | QMap<xkb_layout_index_t, QString> layouts; | ||
363 | const auto size = xkb_keymap_num_layouts(m_keymap); | 366 | const auto size = m_keymap ? xkb_keymap_num_layouts(m_keymap) : 0u; | ||
364 | for (xkb_layout_index_t i = 0; i < size; i++) { | 367 | for (xkb_layout_index_t i = 0; i < size; i++) { | ||
365 | layouts.insert(i, layoutName(i)); | 368 | layouts.insert(i, layoutName(i)); | ||
366 | } | 369 | } | ||
367 | return layouts; | 370 | return layouts; | ||
368 | } | 371 | } | ||
369 | 372 | | |||
370 | void Xkb::updateConsumedModifiers(uint32_t key) | 373 | void Xkb::updateConsumedModifiers(uint32_t key) | ||
371 | { | 374 | { | ||
Show All 10 Lines | |||||
382 | if (xkb_state_mod_index_is_consumed2(m_state, key + 8, m_metaModifier, XKB_CONSUMED_MODE_GTK) == 1) { | 385 | if (xkb_state_mod_index_is_consumed2(m_state, key + 8, m_metaModifier, XKB_CONSUMED_MODE_GTK) == 1) { | ||
383 | mods |= Qt::MetaModifier; | 386 | mods |= Qt::MetaModifier; | ||
384 | } | 387 | } | ||
385 | m_consumedModifiers = mods; | 388 | m_consumedModifiers = mods; | ||
386 | } | 389 | } | ||
387 | 390 | | |||
388 | Qt::KeyboardModifiers Xkb::modifiersRelevantForGlobalShortcuts() const | 391 | Qt::KeyboardModifiers Xkb::modifiersRelevantForGlobalShortcuts() const | ||
389 | { | 392 | { | ||
393 | if (!m_state) { | ||||
394 | return Qt::NoModifier; | ||||
395 | } | ||||
390 | Qt::KeyboardModifiers mods = Qt::NoModifier; | 396 | Qt::KeyboardModifiers mods = Qt::NoModifier; | ||
391 | if (xkb_state_mod_index_is_active(m_state, m_shiftModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | 397 | if (xkb_state_mod_index_is_active(m_state, m_shiftModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | ||
392 | mods |= Qt::ShiftModifier; | 398 | mods |= Qt::ShiftModifier; | ||
393 | } | 399 | } | ||
394 | if (xkb_state_mod_index_is_active(m_state, m_altModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | 400 | if (xkb_state_mod_index_is_active(m_state, m_altModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | ||
395 | mods |= Qt::AltModifier; | 401 | mods |= Qt::AltModifier; | ||
396 | } | 402 | } | ||
397 | if (xkb_state_mod_index_is_active(m_state, m_controlModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | 403 | if (xkb_state_mod_index_is_active(m_state, m_controlModifier, XKB_STATE_MODS_EFFECTIVE) == 1) { | ||
▲ Show 20 Lines • Show All 100 Lines • Show Last 20 Lines |