summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-04-22 09:48:15 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-04-22 09:48:15 +0200
commit602c6ffd8a9154f323f38c2e599abea8947f1f04 (patch)
treed44cedc544bd7292dba04f6c7593f922fd89b8f2
parent98b4ece33e1073702f340ed574327e778485979b (diff)
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.
-rw-r--r--src/Fl_cocoa.mm7
1 files changed, 5 insertions, 2 deletions
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);