diff --git a/intern/ghost/intern/GHOST_WindowWayland.cpp b/intern/ghost/intern/GHOST_WindowWayland.cpp index 7e9697d6a69..3445898a6a8 100644 --- a/intern/ghost/intern/GHOST_WindowWayland.cpp +++ b/intern/ghost/intern/GHOST_WindowWayland.cpp @@ -332,7 +332,10 @@ static void xdg_toplevel_handle_configure(void *data, static void xdg_toplevel_handle_close(void *data, xdg_toplevel * /*xdg_toplevel*/) { CLOG_INFO(LOG, 2, "close"); - static_cast(data)->ghost_window->close(); + + GWL_Window *win = static_cast(data); + + win->ghost_window->close(); } static const xdg_toplevel_listener xdg_toplevel_listener = { @@ -424,16 +427,18 @@ static void frame_handle_close(struct libdecor_frame * /*frame*/, void *data) { CLOG_INFO(LOG, 2, "close"); - static_cast(data)->ghost_window->close(); + GWL_Window *win = static_cast(data); + + win->ghost_window->close(); } static void frame_handle_commit(struct libdecor_frame * /*frame*/, void *data) { CLOG_INFO(LOG, 2, "commit"); - /* We have to swap twice to keep any pop-up menus alive. */ - static_cast(data)->ghost_window->swapBuffers(); - static_cast(data)->ghost_window->swapBuffers(); + GWL_Window *win = static_cast(data); + + win->ghost_window->swapBuffers(); } static struct libdecor_frame_interface libdecor_frame_iface = { @@ -461,7 +466,10 @@ static void xdg_toplevel_decoration_handle_configure( const uint32_t mode) { CLOG_INFO(LOG, 2, "configure (mode=%u)", mode); - static_cast(data)->xdg_decor->mode = (zxdg_toplevel_decoration_v1_mode)mode; + + GWL_Window *win = static_cast(data); + + win->xdg_decor->mode = (zxdg_toplevel_decoration_v1_mode)mode; } static const zxdg_toplevel_decoration_v1_listener xdg_toplevel_decoration_v1_listener = {