diff options
| author | dannye <33dannye@gmail.com> | 2024-11-24 09:30:43 -0600 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-11-25 11:05:06 +0100 |
| commit | f60af127de72cfa83181ded148963c7a093f740a (patch) | |
| tree | 6108ef0e067ae2cddc3e09c23802f8fab110fff2 | |
| parent | 403981a2937742d04988d0891bcb71963372767c (diff) | |
Windows: Fix rescale bug while window is maximized
| -rw-r--r-- | src/Fl_win32.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index b87b05548..2b077748e 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1961,7 +1961,17 @@ int Fl_WinAPI_Window_Driver::fake_X_wm(int &X, int &Y, int &bt, int &bx, int &by //////////////////////////////////////////////////////////////// +static void delayed_maximize(Fl_Window *win) { + Fl::remove_check((Fl_Timeout_Handler)delayed_maximize, win); + win->un_maximize(); + win->maximize(); +} + + void Fl_WinAPI_Window_Driver::resize(int X, int Y, int W, int H) { + if (Fl_Window::is_a_rescale() && pWindow->maximize_active()) { + Fl::add_check((Fl_Timeout_Handler)delayed_maximize, pWindow); + } //fprintf(stderr, "resize w()=%d W=%d h()=%d H=%d\n",pWindow->w(), W,pWindow->h(), H); UINT flags = SWP_NOSENDCHANGING | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOOWNERZORDER; int is_a_resize = (W != w() || H != h() || Fl_Window::is_a_rescale()); |
