Windows: Fix rescale bug while window is fullscreen
Possible via the Win+Shift+Left/Right keyboard shortcuts
This commit is contained in:
parent
f60af127de
commit
edcf49c63a
@ -1961,6 +1961,13 @@ int Fl_WinAPI_Window_Driver::fake_X_wm(int &X, int &Y, int &bt, int &bx, int &by
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
static void delayed_fullscreen(Fl_Window *win) {
|
||||
Fl::remove_check((Fl_Timeout_Handler)delayed_fullscreen, win);
|
||||
win->fullscreen_off();
|
||||
win->fullscreen();
|
||||
}
|
||||
|
||||
|
||||
static void delayed_maximize(Fl_Window *win) {
|
||||
Fl::remove_check((Fl_Timeout_Handler)delayed_maximize, win);
|
||||
win->un_maximize();
|
||||
@ -1969,10 +1976,12 @@ static void delayed_maximize(Fl_Window *win) {
|
||||
|
||||
|
||||
void Fl_WinAPI_Window_Driver::resize(int X, int Y, int W, int H) {
|
||||
if (Fl_Window::is_a_rescale() && pWindow->maximize_active()) {
|
||||
//fprintf(stderr, "resize w()=%d W=%d h()=%d H=%d\n",pWindow->w(), W,pWindow->h(), H);
|
||||
if (Fl_Window::is_a_rescale() && pWindow->fullscreen_active()) {
|
||||
Fl::add_check((Fl_Timeout_Handler)delayed_fullscreen, pWindow);
|
||||
} else 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());
|
||||
int resize_from_program = (pWindow != resize_bug_fix);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user