diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-23 14:16:02 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-23 14:16:02 +0200 |
| commit | 0147975faf939db389bebaa95e3a12e5e5a8753f (patch) | |
| tree | c6933763435812460ebdc9609ed90eae21110753 /src/events/Windows.cpp | |
| parent | fa38dfd416b664033a96bb4af764fd54f7257d7b (diff) | |
New animation system
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 4887560c..5a79f624 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -33,6 +33,7 @@ void Events::listener_mapWindow(void* owner, void* data) { PWINDOW->m_bReadyToDelete = false; PWINDOW->m_bFadingOut = false; PWINDOW->m_szTitle = g_pXWaylandManager->getTitle(PWINDOW); + PWINDOW->m_fAlpha = 255.f; // checks if the window wants borders and sets the appriopriate flag g_pXWaylandManager->checkBorders(PWINDOW); @@ -112,6 +113,7 @@ void Events::listener_mapWindow(void* owner, void* data) { Debug::log(LOG, "Rule size, applying to window %x", PWINDOW); + PWINDOW->m_vRealSize = Vector2D(SIZEX, SIZEY); PWINDOW->m_vEffectiveSize = Vector2D(SIZEX, SIZEY); g_pXWaylandManager->setWindowSize(PWINDOW, PWINDOW->m_vEffectiveSize); } catch (...) { @@ -128,6 +130,7 @@ void Events::listener_mapWindow(void* owner, void* data) { Debug::log(LOG, "Rule move, applying to window %x", PWINDOW); + PWINDOW->m_vRealPosition = Vector2D(POSX, POSY) + PMONITOR->vecPosition; PWINDOW->m_vEffectivePosition = Vector2D(POSX, POSY) + PMONITOR->vecPosition; } catch (...) { Debug::log(LOG, "Rule move failed, rule: %s -> %s", r.szRule.c_str(), r.szValue.c_str()); @@ -194,6 +197,8 @@ void Events::listener_unmapWindow(void* owner, void* data) { // Allow the renderer to catch the last frame. g_pHyprOpenGL->makeWindowSnapshot(PWINDOW); + PWINDOW->m_fAlpha = 0.f; + PWINDOW->m_bMappedX11 = false; // remove the fullscreen window status from workspace if we closed it @@ -298,7 +303,7 @@ void Events::listener_configureX11(void* owner, void* data) { const auto E = (wlr_xwayland_surface_configure_event*)data; if (!PWINDOW->m_bIsFloating) { - g_pXWaylandManager->setWindowSize(PWINDOW, PWINDOW->m_vRealSize); + g_pXWaylandManager->setWindowSize(PWINDOW, PWINDOW->m_vRealSize.vec()); g_pInputManager->refocus(); return; } @@ -307,8 +312,8 @@ void Events::listener_configureX11(void* owner, void* data) { wlr_xwayland_surface_restack(PWINDOW->m_uSurface.xwayland, NULL, XCB_STACK_MODE_ABOVE); PWINDOW->m_vEffectivePosition = Vector2D(E->x, E->y); PWINDOW->m_vEffectiveSize = Vector2D(E->width, E->height); - PWINDOW->m_vRealPosition = PWINDOW->m_vEffectivePosition; - PWINDOW->m_vRealSize = PWINDOW->m_vRealSize; + PWINDOW->m_vRealPosition.setValue(PWINDOW->m_vEffectivePosition); + PWINDOW->m_vRealSize.setValue(PWINDOW->m_vEffectiveSize); PWINDOW->m_vPosition = PWINDOW->m_vPosition; PWINDOW->m_vSize = PWINDOW->m_vSize; @@ -322,7 +327,7 @@ void Events::listener_surfaceXWayland(wl_listener* listener, void* data) { Debug::log(LOG, "New XWayland Surface created."); - g_pCompositor->m_lWindows.push_back(CWindow()); + g_pCompositor->m_lWindows.emplace_back(); const auto PNEWWINDOW = &g_pCompositor->m_lWindows.back(); PNEWWINDOW->m_uSurface.xwayland = XWSURFACE; @@ -343,7 +348,7 @@ void Events::listener_newXDGSurface(wl_listener* listener, void* data) { if (XDGSURFACE->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL) return; // TODO: handle? - g_pCompositor->m_lWindows.push_back(CWindow()); + g_pCompositor->m_lWindows.emplace_back(); const auto PNEWWINDOW = &g_pCompositor->m_lWindows.back(); PNEWWINDOW->m_uSurface.xdg = XDGSURFACE; |
