summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-03-23 22:10:37 +0000
committerVaxry <vaxry@vaxry.net>2024-03-23 22:10:37 +0000
commit295128ab2a3c4ad1715bb7cd926880316f00e667 (patch)
treedbcc1859880ac84d565fc86b706d7e3da1340c94 /src/events/Windows.cpp
parent2d5fda4810f706a1b6e2c0a1021ce57c8ad2e7a9 (diff)
window: assign surface on create
ref #5076
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 7c4ae404..056d9108 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -877,6 +877,8 @@ void Events::listener_destroyWindow(void* owner, void* data) {
g_pCompositor->m_pLastFocus = nullptr;
}
+ PWINDOW->m_pWLSurface.unassign();
+
PWINDOW->hyprListener_commitWindow.removeCallback();
PWINDOW->hyprListener_mapWindow.removeCallback();
PWINDOW->hyprListener_unmapWindow.removeCallback();
@@ -1217,6 +1219,8 @@ void Events::listener_surfaceXWayland(wl_listener* listener, void* data) {
PNEWWINDOW->hyprListener_destroyWindow.initCallback(&XWSURFACE->events.destroy, &Events::listener_destroyWindow, PNEWWINDOW, "XWayland Window");
PNEWWINDOW->hyprListener_setOverrideRedirect.initCallback(&XWSURFACE->events.set_override_redirect, &Events::listener_setOverrideRedirect, PNEWWINDOW, "XWayland Window");
PNEWWINDOW->hyprListener_configureX11.initCallback(&XWSURFACE->events.request_configure, &Events::listener_configureX11, PNEWWINDOW, "XWayland Window");
+
+ PNEWWINDOW->m_pWLSurface.assign(g_pXWaylandManager->getWindowSurface(PNEWWINDOW), PNEWWINDOW);
}
void Events::listener_newXDGToplevel(wl_listener* listener, void* data) {
@@ -1232,6 +1236,8 @@ void Events::listener_newXDGToplevel(wl_listener* listener, void* data) {
PNEWWINDOW->hyprListener_mapWindow.initCallback(&XDGSURFACE->surface->events.map, &Events::listener_mapWindow, PNEWWINDOW, "XDG Window");
PNEWWINDOW->hyprListener_destroyWindow.initCallback(&XDGSURFACE->events.destroy, &Events::listener_destroyWindow, PNEWWINDOW, "XDG Window");
PNEWWINDOW->hyprListener_commitWindow.initCallback(&XDGSURFACE->surface->events.commit, &Events::listener_commitWindow, PNEWWINDOW, "XDG Window");
+
+ PNEWWINDOW->m_pWLSurface.assign(g_pXWaylandManager->getWindowSurface(PNEWWINDOW), PNEWWINDOW);
}
void Events::listener_NewXDGDeco(wl_listener* listener, void* data) {