diff options
author | vaxerski <[email protected]> | 2022-04-24 17:42:59 +0200 |
---|---|---|
committer | vaxerski <[email protected]> | 2022-04-24 17:42:59 +0200 |
commit | 86bb95c125563300a50973ab50eec44c2943b9d1 (patch) | |
tree | d40c0fc2cf1827bf851ab10e9a296fb264d1fdf7 | |
parent | d79837633027838a334db182e37f6ad6712cd248 (diff) | |
download | Hyprland-86bb95c125563300a50973ab50eec44c2943b9d1.tar.gz Hyprland-86bb95c125563300a50973ab50eec44c2943b9d1.zip |
some fixes for xwayland windows and focus
-rw-r--r-- | src/layout/DwindleLayout.cpp | 7 | ||||
-rw-r--r-- | src/managers/InputManager.cpp | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index a3fdeecb..8a6bd6d9 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -449,6 +449,7 @@ void CHyprDwindleLayout::onMouseMove(const Vector2D& mousePos) { if (g_pInputManager->dragButton == BTN_LEFT) { DRAGGINGWINDOW->m_vRealPosition.setValueAndWarp(m_vBeginDragPositionXY + DELTA); + g_pXWaylandManager->setWindowSize(DRAGGINGWINDOW, DRAGGINGWINDOW->m_vRealSize.goalv()); } else { if (DRAGGINGWINDOW->m_bIsFloating) { DRAGGINGWINDOW->m_vRealSize.setValueAndWarp(m_vBeginDragSizeXY + DELTA); @@ -601,8 +602,6 @@ void CHyprDwindleLayout::fullscreenRequestForWindow(CWindow* pWindow) { // get back its' dimensions from position and size pWindow->m_vRealPosition = pWindow->m_vPosition; pWindow->m_vRealSize = pWindow->m_vSize; - - g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize.goalv()); } } else { // if it now got fullscreen, make it fullscreen @@ -616,10 +615,10 @@ void CHyprDwindleLayout::fullscreenRequestForWindow(CWindow* pWindow) { // apply new pos and size being monitors' box pWindow->m_vRealPosition = PMONITOR->vecPosition; pWindow->m_vRealSize = PMONITOR->vecSize; - - g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize.goalv()); } + g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize.goalv()); + g_pCompositor->moveWindowToTop(pWindow); // we need to fix XWayland windows by sending them to NARNIA diff --git a/src/managers/InputManager.cpp b/src/managers/InputManager.cpp index 29f64f56..2b59ea51 100644 --- a/src/managers/InputManager.cpp +++ b/src/managers/InputManager.cpp @@ -116,7 +116,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { if (time) wlr_idle_notify_activity(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat); - Vector2D surfaceLocal = surfacePos == Vector2D(-1337, -1337) ? surfaceCoords : Vector2D(g_pCompositor->m_sWLRCursor->x, g_pCompositor->m_sWLRCursor->y) - surfacePos; + Vector2D surfaceLocal = surfacePos == Vector2D(-1337, -1337) ? surfaceCoords : mouseCoords - surfacePos; if (pFoundWindow) { if (g_pConfigManager->getInt("input:follow_mouse") == 0 && !refocus) { |