From 2cdfdc9212b5e79847aade99b9d1acd3cdd24661 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 18 Jul 2024 17:57:52 +0200 Subject: [PATCH] Prevent minimizing Dialog Windows on macOS This works around an issue with some embedded plugin windows not being properly restored when the window is restored after being minimized. It also prevents zooming (full-screen) display of dialog windows. Also recent macOS allows to maximize Windows even if they are not supposed to be resizable (also causing issues with some plugins). --- libs/tk/ydk/quartz/gdkwindow-quartz.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/tk/ydk/quartz/gdkwindow-quartz.c b/libs/tk/ydk/quartz/gdkwindow-quartz.c index b8a6f2e098..4cab5aab9a 100644 --- a/libs/tk/ydk/quartz/gdkwindow-quartz.c +++ b/libs/tk/ydk/quartz/gdkwindow-quartz.c @@ -2365,6 +2365,10 @@ gdk_window_set_type_hint (GdkWindow *window, [impl->toplevel setHasShadow: window_type_hint_to_shadow (hint)]; [impl->toplevel setLevel: window_type_hint_to_level (hint)]; [impl->toplevel setHidesOnDeactivate: window_type_hint_to_hides_on_deactivate (hint)]; + + bool allow_minimize_and_maximize = window_type_hint_to_level (hint) != NSFloatingWindowLevel; + [[impl->toplevel standardWindowButton:NSWindowMiniaturizeButton] setEnabled:allow_minimize_and_maximize]; + [[impl->toplevel standardWindowButton:NSWindowZoomButton] setEnabled:allow_minimize_and_maximize]; } GdkWindowTypeHint