diff --git a/glfw/wl_decor.c b/glfw/wl_decor.c index 4b178f551..1d5cd791d 100644 --- a/glfw/wl_decor.c +++ b/glfw/wl_decor.c @@ -193,3 +193,10 @@ glfw_wl_set_maximized(_GLFWwindow *w, bool on) { else xdg_toplevel_unset_maximized(w->wl.xdg.toplevel); } } + +void +glfw_wl_set_minimized(_GLFWwindow *w) { + Frame *d = (Frame*)w->wl.frame; + if (d && d->libdecor) libdecor_frame_set_minimized(d->libdecor); + else if (w->wl.xdg.toplevel) xdg_toplevel_set_minimized(w->wl.xdg.toplevel); +} diff --git a/glfw/wl_decor.h b/glfw/wl_decor.h index 09df9f6f0..6ae16e478 100644 --- a/glfw/wl_decor.h +++ b/glfw/wl_decor.h @@ -16,3 +16,4 @@ void glfw_wl_unload_decorations_library(DECOR_LIB_HANDLE); int glfw_wl_dispatch_decor_events(void); void glfw_wl_set_fullscreen(_GLFWwindow *w, bool on, struct wl_output *monitor); void glfw_wl_set_maximized(_GLFWwindow *w, bool on); +void glfw_wl_set_minimized(_GLFWwindow *w); diff --git a/glfw/wl_window.c b/glfw/wl_window.c index 039cb586c..4a155d471 100644 --- a/glfw/wl_window.c +++ b/glfw/wl_window.c @@ -1462,11 +1462,7 @@ monotonic_t _glfwPlatformGetDoubleClickInterval(_GLFWwindow* window UNUSED) return ms_to_monotonic_t(500ll); } -void _glfwPlatformIconifyWindow(_GLFWwindow* window) -{ - if (window->wl.xdg.toplevel) - xdg_toplevel_set_minimized(window->wl.xdg.toplevel); -} +void _glfwPlatformIconifyWindow(_GLFWwindow* window) { glfw_wl_set_minimized(window); } void _glfwPlatformRestoreWindow(_GLFWwindow* window) {