Commit Graph

700 Commits

Author SHA1 Message Date
ManoloFLTK
80f5740468 Avoid useless code when drawing directly. 2019-10-20 15:37:05 +02:00
ManoloFLTK
4d350b61c1 Rewrite for macOS 10.15 Catalina
Another way to support what occurs under macOS 10.15 where the bitmap graphics context
prepared by the system when drawRect: runs sometimes changes its number of bytes/row
even if the width and height are unchanged.
This is expected to perform better when the number of bytes/row alternates between
two values.
2019-10-14 15:41:53 +02:00
ManoloFLTK
9863fef25a Fix for macOS Catalina 10.15
Under Catalina, the bitmap graphics context prepared by the system when drawRect: runs
sometimes changes its number of bytes/row even if the width and height are unchanged.
2019-10-12 16:02:00 +02:00
ManoloFLTK
72e712efbd Faster processing of layer-backed views used with MacOS ≥ 10.14
Calls to CGBitmapContextCreateImage() and CGContextDrawImage() are replaced
by faster calls to memcpy().
2019-10-09 11:49:24 +02:00
ManoloFLTK
940b7ba13d Faster drawing of layer-based windows if entirely redrawn 2019-09-24 12:57:29 +02:00
ManoloFLTK
17d155d916 Fix window moving between retina/non-retina display with a GL subwindow. 2019-08-27 17:44:31 +02:00
ManoloFLTK
33eb87940d Fix a case when fl_read_window() did not capture subwindows correctly.
The case was under macOS with a non-GL parent window mapped to a retina display
containing a GL subwindow and if the app did not call Fl::use_high_res_GL(1).
2019-08-21 12:01:51 +02:00
ManoloFLTK
e16eea32be Avoid repetition of the same multiplication. 2019-08-19 09:34:42 +02:00
ManoloFLTK
8c39007b26 Improved implementation of layer-backed views under macOS ≥ 10.14
This new implementation does all screen drawing through the drawRect: method.
The benefit is that [[NSGraphicsContext currentContext] CGContext] provides
a system-built drawing context whose product ultimately appears on screen.
Feed-back from the fldigi FLTK application shows that this procedure is
measurably faster that the previous one when drawing a rapidly changing image.
2019-08-18 21:56:12 +02:00
ManoloFLTK
3c41e2d372 Correct guard for adequate version of macOS SDK 2019-07-06 09:22:06 +02:00
ManoloFLTK
71faa15432 Add support for macOS 10.15 "Catalina"
This is relatively to Catalina public beta for now.
2019-07-06 09:16:39 +02:00
ManoloFLTK
ef1c937606 Fix a bug appeared in macOS 10.15 Catalina Beta about GUI scaling transient window.
The bug is that the app freezes for a few seconds before the yellow transient window is closed
if the close message is set from within a timer callback.
If the window to close returns NO to the canBecomeKeyWindow message, the bug does not occur.
Anyway it's good that canBecomeKeyWindow returns NO for a window with the OUTPUT flag.
2019-07-03 15:21:31 +02:00
ManoloFLTK
aa9f0a6962 Move Fl_Cocoa_Window_Driver::capture_titlebar_and_borders() to Fl_Cocoa_Window_Driver.cxx from Fl_cocoa.mm 2019-06-12 10:02:11 +02:00
ManoloFLTK
5ab26a17b0 Better use of the did_view_resolution_change message sent to FLViewLayer 2019-06-03 21:09:03 +02:00
ManoloFLTK
da6d671d9b Support for fl_scroll() under macOS when GUI is scaled - cont'd
Handles support of non-layered windows
2019-05-22 10:56:19 +02:00
ManoloFLTK
9b80a38345 Support for fl_scroll() under macOS when GUI is scaled 2019-05-21 21:17:11 +02:00
ManoloFLTK
07f4fd4380 More accurate implementation of Fl_Cocoa_Window_Driver::decoration_sizes(). 2019-05-20 13:30:57 +02:00
ManoloFLTK
159572785d Remove small duplication of code 2019-05-20 13:16:31 +02:00
ManoloFLTK
30e05510fa Avoid small repetition 2019-05-18 17:40:18 +02:00
ManoloFLTK
99419b2f63 Have Fl_Cocoa_Window_Driver::flush() use the drawRect: method to draw to non-layered views 2019-05-17 15:23:55 +02:00
Manolo Gouy
88c2994e20 Restore use for GL windows under macOS 10.14.0 2019-05-15 21:55:10 +02:00
ManoloFLTK
fa5c2718da Remove class FLGLViewLayer and get simpler code. 2019-05-15 13:59:29 +02:00
ManoloFLTK
e236091a99 Fix GUI rescaling when one window is iconified (macOS) 2019-05-13 15:06:19 +02:00
ManoloFLTK
dd687e7fbc Fix GUI scaling in presence of un-show()'n subwindows (macOS) 2019-05-12 19:02:15 +02:00
ManoloFLTK
467e216681 Use more convenient API for function get_window_frame_sizes() 2019-05-09 10:22:31 +02:00
ManoloFLTK
32439ec259 Fix Fl_Cocoa_Window_Driver::capture_titlebar_and_borders() when GUI is scaled down 2019-05-08 16:27:53 +02:00
ManoloFLTK
12dedc26cd Adapt function fake_X_wm() to rescaled GUI. 2019-05-08 12:25:48 +02:00
ManoloFLTK
d88ef8f039 Avoid double window redraw after resize 2019-05-08 11:53:25 +02:00
ManoloFLTK
5a57c928a1 Remove unnecessary code 2019-05-07 12:45:44 +02:00
ManoloFLTK
c00f31ab10 Slightly simpler code for what is specific to macOS 10.14.0 2019-05-06 16:55:41 +02:00
ManoloFLTK
fea125eca9 Restore forcing the position of a window before it's shown 2019-05-06 16:50:42 +02:00
ManoloFLTK
38cf195727 Remove call to Fl_Group::init_sizes() because it's expected from the caller. 2019-05-04 13:25:28 +02:00
ManoloFLTK
ef355e2762 Fix control for subwindow leakage in presence of GUI scaling 2019-05-04 09:44:29 +02:00
ManoloFLTK
5fde73b9ea Reworked algorithm to support window moving across screens 2019-05-02 20:53:10 +02:00
ManoloFLTK
738cce154e macOS: further fix to window moving necessary for macOS 10.3
Running the tabs test app with all 6 subwindows shown under 10.3
and moving the window around had 3 subwindows drift away
from their correct position.
2019-04-28 18:34:24 +02:00
ManoloFLTK
172063b2ad macOS: yet simpler implementation of window resize and rescale. 2019-04-28 15:31:02 +02:00
ManoloFLTK
9ac73175be Use NSViewFrameDidChangeNotification instead of NSWindowDidResizeNotification
This allows to support the tabbing/untabbing of windows with simpler, clearer code.

This commit also fixes the resizing of Fl_Overlay_Window that was broken in the
recent commit "Simpler implementation of Fl_Cocoa_Window_Driver::resize()"
    c66caf5dce
2019-04-25 10:30:59 +02:00
ManoloFLTK
6f82d88af3 macOS: restore correct tabbing/untabbing of windows - continued
slightly simpler and more explicit than previous commit at
    602c6ffd8a
2019-04-23 08:11:10 +02:00
ManoloFLTK
94f859c373 Consistently compute the current GUI scaling factor value. 2019-04-22 10:02:32 +02:00
ManoloFLTK
602c6ffd8a macOS: restore correct tabbing/untabbing of windows
The recent commit "Simpler implementation of Fl_Cocoa_Window_Driver::resize()"
    c66caf5dce
did not take care of tabbing/untabbing of windows.
This is repaired here.
2019-04-22 09:48:15 +02:00
ManoloFLTK
98b4ece33e Reorder Fl_Cocoa_Window_Driver to support upward OS compatibility 2019-04-21 09:45:06 +02:00
ManoloFLTK
f3bfe93a51 Fix Fl_Cocoa_Window_Driver::fullscreen_off()
The correct order of operations is to resize the window after having set its style.
2019-04-21 09:27:44 +02:00
ManoloFLTK
3f5580d49c macOS: better support of Fl_Window::border(int) 2019-04-20 22:01:48 +02:00
ManoloFLTK
ebbee5301b macOS: simpler handling of GL windows when first displayed.
tested on macOS versions 10.3, 10.6, 10.9, 10.14
2019-04-19 13:03:49 +02:00
ManoloFLTK
698fe39ff1 Minor code reordering 2019-04-15 16:08:16 +02:00
ManoloFLTK
72954f39d8 Minor code reordering. 2019-04-15 12:04:52 +02:00
ManoloFLTK
3fa2b73698 Update comments of Fl_Cocoa_Window_Driver::make_current() for macOS 10.14 2019-04-11 13:04:53 +02:00
ManoloFLTK
86849aac8f Improve Fl_Cocoa_Window_Driver::make_current() 2019-04-09 12:43:03 +02:00
ManoloFLTK
c66caf5dce Simpler implementation of Fl_Cocoa_Window_Driver::resize() 2019-04-07 09:09:33 +02:00
ManoloFLTK
607689c890 macOS: More efficient window rescaling that rarely calls Fl_Group::resize() 2019-03-28 17:30:18 +01:00