summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2023-12-10 16:28:12 +0000
committerGitHub <noreply@github.com>2023-12-10 16:28:12 +0000
commit9f5b9053c6fb7942a0ff27dc61fc6874e4354888 (patch)
treef117abba6e6b5c2f4a673e67039225f7fca04be2 /src/events/Windows.cpp
parentb3dc58e1047cba0778831bdb069c3ceba6ec216e (diff)
internal: Remake borders as window decorations (#4104)
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 2ee70264..ff68d13f 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -506,14 +506,6 @@ void Events::listener_mapWindow(void* owner, void* data) {
"XWayland Window Late");
}
- // do the animation thing
- g_pAnimationManager->onWindowPostCreateClose(PWINDOW, false);
- PWINDOW->m_fAlpha.setValueAndWarp(0.f);
- PWINDOW->m_fAlpha = 1.f;
-
- PWINDOW->m_vRealPosition.setCallbackOnEnd(setAnimToMove);
- PWINDOW->m_vRealSize.setCallbackOnEnd(setAnimToMove);
-
if ((requestsFullscreen && (!PWINDOW->m_bNoFullscreenRequest || overridingNoFullscreen)) || (requestsMaximize && (!PWINDOW->m_bNoMaximizeRequest || overridingNoMaximize)) ||
requestsFakeFullscreen) {
// fix fullscreen on requested (basically do a switcheroo)
@@ -627,6 +619,19 @@ void Events::listener_mapWindow(void* owner, void* data) {
g_pEventManager->postEvent(SHyprIPCEvent{"openwindow", std::format("{:x},{},{},{}", PWINDOW, workspaceID, g_pXWaylandManager->getAppIDClass(PWINDOW), PWINDOW->m_szTitle)});
EMIT_HOOK_EVENT("openWindow", PWINDOW);
+ // apply data from default decos. Borders, shadows.
+ g_pDecorationPositioner->forceRecalcFor(PWINDOW);
+ PWINDOW->updateWindowDecos();
+ g_pLayoutManager->getCurrentLayout()->recalculateWindow(PWINDOW);
+
+ // do animations
+ g_pAnimationManager->onWindowPostCreateClose(PWINDOW, false);
+ PWINDOW->m_fAlpha.setValueAndWarp(0.f);
+ PWINDOW->m_fAlpha = 1.f;
+
+ PWINDOW->m_vRealPosition.setCallbackOnEnd(setAnimToMove);
+ PWINDOW->m_vRealSize.setCallbackOnEnd(setAnimToMove);
+
// recalc the values for this window
g_pCompositor->updateWindowAnimatedDecorationValues(PWINDOW);
// avoid this window being visible