diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-08-27 16:46:16 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-08-27 16:46:16 +0200 |
| commit | d245a157b6395955f12957b066b61233714733c3 (patch) | |
| tree | 9f0fec4fbdcc2dc325e1ac2c67d03b6f6aab1f04 /src | |
| parent | 7e3aabf80eff2c93c5d9d77f4022e69bc75097ff (diff) | |
Slightly simpler handle_close() in Fl_Wayland_Window_Driver.cxx
Diffstat (limited to 'src')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 8e6d94499..f5b43c962 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -889,9 +889,9 @@ void Fl_Wayland_Window_Driver::wait_for_expose() } -static void delayed_close(void *data) { - Fl::remove_check(delayed_close, data); - Fl::handle(FL_CLOSE, (Fl_Window*)data); +static void delayed_close(Fl_Window *win) { + Fl::remove_check((Fl_Timeout_Handler)delayed_close, win); + Fl::handle(FL_CLOSE, win); } @@ -899,16 +899,14 @@ static void handle_close(struct libdecor_frame *frame, void *user_data) { // runs when the close button of a window titlebar is pushed // or after "Quit" of the application menu // or after the Kill command of Sway - struct wld_window* wl_win = (struct wld_window*)user_data; - int X, Y = 0; - if (wl_win->kind == Fl_Wayland_Window_Driver::DECORATED) { - libdecor_frame_translate_coordinate(wl_win->frame, 0, 0, &X, &Y); - } - if (Y == 0) Fl::handle(FL_CLOSE, wl_win->fl_win); + Fl_Window* win = ((struct wld_window*)user_data)->fl_win; + int X, Y; + libdecor_frame_translate_coordinate(frame, 0, 0, &X, &Y); + if (Y == 0) Fl::handle(FL_CLOSE, win); else { // the close window attempt is delayed because libdecor // uses the frame after return from this function - Fl::add_check(delayed_close, wl_win->fl_win); + Fl::add_check((Fl_Timeout_Handler)delayed_close, win); } } |
