diff options
Diffstat (limited to 'src/managers/SeatManager.cpp')
| -rw-r--r-- | src/managers/SeatManager.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/managers/SeatManager.cpp b/src/managers/SeatManager.cpp index a107dced..5c48eed5 100644 --- a/src/managers/SeatManager.cpp +++ b/src/managers/SeatManager.cpp @@ -211,10 +211,12 @@ void CSeatManager::sendKeyboardMods(uint32_t depressed, uint32_t latched, uint32 } void CSeatManager::setPointerFocus(SP<CWLSurfaceResource> surf, const Vector2D& local) { + const bool dndActive = PROTO::data && PROTO::data->dndActive(); + if (m_state.pointerFocus == surf) return; - if (PROTO::data->dndActive() && surf) { + if (dndActive && surf) { if (m_state.dndPointerFocus == surf) return; Log::logger->log(Log::DEBUG, "[seatmgr] Refusing pointer focus during an active dnd, but setting dndPointerFocus"); @@ -304,7 +306,7 @@ void CSeatManager::sendPointerMotion(uint32_t timeMs, const Vector2D& local) { } void CSeatManager::sendPointerButton(uint32_t timeMs, uint32_t key, wl_pointer_button_state state_) { - if (!m_state.pointerFocusResource || PROTO::data->dndActive()) + if (!m_state.pointerFocusResource || (PROTO::data && PROTO::data->dndActive())) return; for (auto const& s : m_seatResources) { |
