summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-03 15:33:55 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-03 15:33:55 +0200
commitfff7534721738b49f8338537bde97d1443391dba (patch)
treee5dc2df2da553855b34cd4c35d1cfa06e70935c0 /src/managers/KeybindManager.cpp
parentcd483a7a37c6024347659974701a76703c6e3a3a (diff)
fullscreen new window on fullscreen movefocus
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 895e7600..e54b2b88 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -742,9 +742,20 @@ void CKeybindManager::moveFocusTo(std::string args) {
g_pCompositor->m_sSeat.mouse->constraintActive = false;
auto switchToWindow = [&](CWindow* PWINDOWTOCHANGETO) {
- g_pCompositor->focusWindow(PWINDOWTOCHANGETO);
- Vector2D middle = PWINDOWTOCHANGETO->m_vRealPosition.goalv() + PWINDOWTOCHANGETO->m_vRealSize.goalv() / 2.f;
- g_pCompositor->warpCursorTo(middle);
+
+ if (PLASTWINDOW->m_iWorkspaceID == PWINDOWTOCHANGETO->m_iWorkspaceID && PLASTWINDOW->m_bIsFullscreen) {
+ const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PLASTWINDOW->m_iWorkspaceID);
+ const auto FSMODE = PWORKSPACE->m_efFullscreenMode;
+ g_pCompositor->setWindowFullscreen(PLASTWINDOW, false, FULLSCREEN_FULL);
+
+ g_pCompositor->focusWindow(PWINDOWTOCHANGETO);
+
+ g_pCompositor->setWindowFullscreen(PWINDOWTOCHANGETO, true, FSMODE);
+ } else {
+ g_pCompositor->focusWindow(PWINDOWTOCHANGETO);
+ Vector2D middle = PWINDOWTOCHANGETO->m_vRealPosition.goalv() + PWINDOWTOCHANGETO->m_vRealSize.goalv() / 2.f;
+ g_pCompositor->warpCursorTo(middle);
+ }
};
if (!g_pCompositor->windowValidMapped(PLASTWINDOW)) {