summaryrefslogtreecommitdiff
path: root/src/managers/input/InputManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/input/InputManager.cpp')
-rw-r--r--src/managers/input/InputManager.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index 05317281..84ac00b5 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -171,26 +171,26 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
updateDragIcon();
if (!m_sDrag.drag && !m_lCurrentlyHeldButtons.empty() && g_pCompositor->m_pLastFocus && m_pLastMouseSurface) {
- if (m_bLastFocusOnLS) {
- foundSurface = m_pLastMouseSurface;
- pFoundLayerSurface = g_pCompositor->getLayerSurfaceFromSurface(foundSurface);
- if (pFoundLayerSurface) {
- surfacePos = g_pCompositor->getLayerSurfaceFromSurface(foundSurface)->position;
+ foundSurface = m_pLastMouseSurface;
+ pFoundLayerSurface = g_pCompositor->getLayerSurfaceFromSurface(foundSurface);
+ if (pFoundLayerSurface) {
+ surfacePos = pFoundLayerSurface->position;
+ m_bFocusHeldByButtons = true;
+ m_bRefocusHeldByButtons = refocus;
+ } else {
+ CInputPopup* foundPopup = m_sIMERelay.popupFromSurface(foundSurface);
+ if (foundPopup) {
+ surfacePos = foundPopup->globalBox().pos();
m_bFocusHeldByButtons = true;
m_bRefocusHeldByButtons = refocus;
- } else {
- // ?
- foundSurface = nullptr;
- pFoundLayerSurface = nullptr;
- }
- } else if (g_pCompositor->m_pLastWindow) {
- foundSurface = m_pLastMouseSurface;
- pFoundWindow = g_pCompositor->m_pLastWindow;
-
- surfaceCoords = g_pCompositor->vectorToSurfaceLocal(mouseCoords, pFoundWindow, foundSurface);
+ } else if (g_pCompositor->m_pLastWindow) {
+ foundSurface = m_pLastMouseSurface;
+ pFoundWindow = g_pCompositor->m_pLastWindow;
- m_bFocusHeldByButtons = true;
- m_bRefocusHeldByButtons = refocus;
+ surfaceCoords = g_pCompositor->vectorToSurfaceLocal(mouseCoords, pFoundWindow, foundSurface);
+ m_bFocusHeldByButtons = true;
+ m_bRefocusHeldByButtons = refocus;
+ }
}
}