From f794c91293ca4249fe0883bad4371a4e9e8d4344 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:16:23 +0200 Subject: windows on top of fullscreen, lastmonitor fixes --- src/events/Windows.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/events/Windows.cpp') diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 92b26cf8..667a5ea3 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -24,7 +24,8 @@ void addViewCoords(void* pWindow, int* x, int* y) { void Events::listener_mapWindow(void* owner, void* data) { CWindow* PWINDOW = (CWindow*)owner; - const auto PMONITOR = g_pCompositor->m_pLastMonitor; + const auto PMONITOR = g_pCompositor->getMonitorFromCursor(); + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(PMONITOR->activeWorkspace); PWINDOW->m_iMonitorID = PMONITOR->ID; PWINDOW->m_bMappedX11 = true; PWINDOW->m_iWorkspaceID = PMONITOR->activeWorkspace; @@ -43,6 +44,12 @@ void Events::listener_mapWindow(void* owner, void* data) { if (g_pXWaylandManager->shouldBeFloated(PWINDOW)) PWINDOW->m_bIsFloating = true; + if (PWORKSPACE->hasFullscreenWindow && !PWINDOW->m_bIsFloating) { + const auto PFULLWINDOW = g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->ID); + g_pLayoutManager->getCurrentLayout()->fullscreenRequestForWindow(PFULLWINDOW); + g_pXWaylandManager->setWindowFullscreen(PFULLWINDOW, PFULLWINDOW->m_bIsFullscreen); + } + // window rules const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW); @@ -71,6 +78,7 @@ void Events::listener_mapWindow(void* owner, void* data) { if (PWINDOW->m_bIsFloating) { g_pLayoutManager->getCurrentLayout()->onWindowCreatedFloating(PWINDOW); + PWINDOW->m_bCreatedOverFullscreen = true; // size and move rules for (auto& r : WINDOWRULES) { -- cgit v1.2.3