From 602c6ffd8a9154f323f38c2e599abea8947f1f04 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 22 Apr 2019 09:48:15 +0200 Subject: macOS: restore correct tabbing/untabbing of windows The recent commit "Simpler implementation of Fl_Cocoa_Window_Driver::resize()" c66caf5dce9331fd3e011873711a768adb28cf9d did not take care of tabbing/untabbing of windows. This is repaired here. --- src/Fl_cocoa.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 9d0edbb91..a097ee3cd 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3334,6 +3334,7 @@ void Fl_Cocoa_Window_Driver::show() { void Fl_Cocoa_Window_Driver::resize(int X, int Y, int W, int H) { if (visible_r()) { NSPoint pt = FLTKtoCocoa(pWindow, X, Y, H); + FLWindow *xid = fl_xid(pWindow); if (W != w() || H != h() || is_a_rescale()) { NSRect r; float s = Fl::screen_driver()->scale(screen_num()); @@ -3342,10 +3343,12 @@ void Fl_Cocoa_Window_Driver::resize(int X, int Y, int W, int H) { r.origin = pt; r.size.width = round(W*s); r.size.height = round(H*s) + bt; - [fl_xid(pWindow) setFrame:r display:YES]; + if (NSEqualRects(r, [xid frame])) // occurs with tabbed windows + pWindow->Fl_Group::resize(X, Y, W, H); + else [xid setFrame:r display:YES]; } else { - [fl_xid(pWindow) setFrameOrigin:pt]; // set cocoa coords to FLTK position + [xid setFrameOrigin:pt]; // set cocoa coords to FLTK position x(X); y(Y); // useful when frame did not move } } else pWindow->Fl_Group::resize(X, Y, W, H); -- cgit v1.2.3