diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-03-26 02:26:09 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-03-26 02:26:19 +0000 |
| commit | a9d7526aae38dcdceb391fe9f00919c6c400abe3 (patch) | |
| tree | f284e380e2af65a02820f8910ffdcb8104a8535d /src/events/Windows.cpp | |
| parent | 414e37996d0c33a5792b8698146792a2a0359b93 (diff) | |
core: ensure m_pLastMonitor validity over unsafe state
ref #5241
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index d1cf9552..0d1665b7 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -53,6 +53,10 @@ void Events::listener_mapWindow(void* owner, void* data) { static auto PNEWTAKESOVERFS = CConfigValue<Hyprlang::INT>("misc:new_window_takes_over_fullscreen"); auto PMONITOR = g_pCompositor->m_pLastMonitor; + if (!g_pCompositor->m_pLastMonitor) { + g_pCompositor->setActiveMonitor(g_pCompositor->getMonitorFromVector({})); + PMONITOR = g_pCompositor->m_pLastMonitor; + } auto PWORKSPACE = PMONITOR->specialWorkspaceID ? g_pCompositor->getWorkspaceByID(PMONITOR->specialWorkspaceID) : g_pCompositor->getWorkspaceByID(PMONITOR->activeWorkspace); PWINDOW->m_iMonitorID = PMONITOR->ID; PWINDOW->m_iWorkspaceID = PMONITOR->specialWorkspaceID ? PMONITOR->specialWorkspaceID : PMONITOR->activeWorkspace; |
