From 818e2b77d141574a8ef8cf50bbe33241206a2ee9 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 1 Nov 2024 15:43:18 +0100 Subject: Wayland: Fix issue in maximization of a borderless window (#1099) Also fixes scenarios mixing fullscreen and maximization: - maximize - set fullscreen - unset fullscreen - un-maximize with and without window border. --- src/Fl_Window.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Fl_Window.cxx') diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index 6ded79b01..c0dad7e37 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -954,13 +954,14 @@ fl_uintptr_t Fl_Window::os_id() { return pWindowDriver->os_id();} This function is effective only with a show()'n, resizable, top-level window. Bordered and borderless windows can be used. + Fullscreen windows can't be used. \see Fl_Window::un_maximize(), Fl_Window::maximize_active() */ void Fl_Window::maximize() { - if (!shown() || parent() || !is_resizable() || maximize_active()) return; + if (!shown() || parent() || !is_resizable() || maximize_active() || fullscreen_active()) + return; set_flag(MAXIMIZED); - if (border()) pWindowDriver->maximize(); - else pWindowDriver->Fl_Window_Driver::maximize(); + pWindowDriver->maximize(); } /** @@ -968,10 +969,9 @@ void Fl_Window::maximize() { \see Fl_Window::maximize() */ void Fl_Window::un_maximize() { - if (!shown() || parent() || !is_resizable() || !maximize_active()) return; + if (!shown() || parent() || !is_resizable() || !maximize_active() || fullscreen_active()) return; clear_flag(MAXIMIZED); - if (border()) pWindowDriver->un_maximize(); - else pWindowDriver->Fl_Window_Driver::un_maximize(); + pWindowDriver->un_maximize(); } void Fl_Window::is_maximized_(bool b) { -- cgit v1.2.3