summaryrefslogtreecommitdiff
path: root/src/drivers/Cocoa
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-02-06 16:00:41 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2020-02-06 16:01:19 +0100
commit7cb0c2311cf014df7d640b250a0b177b26dc2a00 (patch)
treea863519435066a7957e4cccabcd20d25e7086bdc /src/drivers/Cocoa
parentc0b4fed619edac47f799acab49a9f23deab44b46 (diff)
Fix computation of Fl_Window::decorated_h() on macOS when screen is scaled.
Diffstat (limited to 'src/drivers/Cocoa')
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm3
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm
index fcd0deff9..afa595f5b 100644
--- a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm
+++ b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm
@@ -372,7 +372,8 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset
this->print_widget(win, x_offset, y_offset);
return;
}
- int bt = win->decorated_h() - win->h();
+ int bt, hleft, hright, hbottom;
+ Fl_Cocoa_Window_Driver::driver(win)->decoration_sizes(&bt, &hleft, &hright, &hbottom);
float s = Fl::screen_scale(win->screen_num());
if (s < 1) y_offset += bt*(1/s-1);
CALayer *layer = Fl_Cocoa_Window_Driver::driver(win)->get_titlebar_layer();
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
index 35daffd22..ca09e91b3 100644
--- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
+++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx
@@ -314,7 +314,8 @@ const Fl_Image* Fl_Cocoa_Window_Driver::shape() {
void Fl_Cocoa_Window_Driver::capture_titlebar_and_borders(Fl_RGB_Image*& top, Fl_RGB_Image*& left, Fl_RGB_Image*& bottom, Fl_RGB_Image*& right)
{
left = bottom = right = NULL;
- int htop = pWindow->decorated_h() - h();
+ int htop, hleft, hright, hbottom;
+ Fl_Cocoa_Window_Driver::decoration_sizes(&htop, &hleft, &hright, &hbottom);
CALayer *layer = get_titlebar_layer();
CGColorSpaceRef cspace = CGColorSpaceCreateDeviceRGB();
float s = Fl::screen_driver()->scale(screen_num());