From b6e0122926b9bae1b9400ba3bf01e5b7d977b758 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 10 May 2022 16:52:46 +0200 Subject: Fix for issue #441: Some minor regressions with borderless+fullscreen (Wayland). --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 4cd614293..cabf831f7 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -876,6 +876,7 @@ static void xdg_surface_configure(void *data, struct xdg_surface *xdg_surface, u } window->configured_width = window->fl_win->w(); window->configured_height = window->fl_win->h(); + Fl::handle(FL_FOCUS, window->fl_win); window->fl_win->redraw(); Fl_Window_Driver::driver(window->fl_win)->flush(); } @@ -1303,10 +1304,12 @@ void Fl_Wayland_Window_Driver::update_scale() void Fl_Wayland_Window_Driver::use_border() { if (!shown() || pWindow->parent()) return; struct libdecor_frame *frame = fl_xid(pWindow)->frame; - if (frame && Fl_Wayland_Screen_Driver::compositor != Fl_Wayland_Screen_Driver::KDE) { + if (frame && Fl_Wayland_Screen_Driver::compositor != Fl_Wayland_Screen_Driver::KDE && + && fl_xid(pWindow)->xdg_surface) { libdecor_frame_set_visibility(frame, pWindow->border()); pWindow->redraw(); } else { + pWindow->wait_for_expose(); // useful for border(0) just after show() Fl_Window_Driver::use_border(); } } -- cgit v1.2.3