Commit Graph

527 Commits

Author SHA1 Message Date
Manolo Gouy
fae02f2b4d Mac OS: complete changes needed for 10.13 "High Sierra" regarding how FLTK applications start.
With MacOS 10.13 "High Sierra", it was necessary to change what happens at application start time.
The new procedure is:
fl_open_display() calls [NSApp run], and during this call:
     the main event loop is started;
     the app delegate receives an openFile: message for each file dropped on the app icon. Each
           such filename is memorised in an NSMutableArray called dropped_files_list;
     the app delegate receives applicationDidFinishLaunching and stops the main event loop
           (this seems to occur unpredictably after the first openFile: message or after all of them).
When the FLTK event loop begins, it checks whether dropped_files_list is empty. If it is not,
   the first element of this list is a filename which is opened and is removed from dropped_files_list.

This new setup allows to turn resizable windows fullscreen and back as expected under MacOS,
and to support launching apps while dropping file(s) on its icon.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12508 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-17 09:01:28 +00:00
Manolo Gouy
507e39fd19 MacOS 10.13: fix problem with window made fullscreen by clicking on green window button - continued.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12503 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15 17:36:58 +00:00
Manolo Gouy
a8dbc90d99 MacOS 10.13: fix problem with window made fullscreen by clicking on green window button.
With MacOS 10.13 "High Sierra", when a window is made fullscreen by clicking on the green window button,
the window hides the system menubar, but it's not possible to show the menubar by moving the pointer
to the very top of the window. This new way of starting apps fixes this problem.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12502 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15 17:04:53 +00:00
Manolo Gouy
193c611fc2 Better implementation of Fl_Cocoa_Window_Driver::wait_for_expose() for Mac OS 10.13 High Sierra.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12486 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-11 15:19:45 +00:00
Manolo Gouy
ae2cc54519 Remove unnecessary local variable.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12342 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-20 09:25:49 +00:00
Manolo Gouy
cfe6e8e4b6 Simplify handling of the windowDidMove notification since MacOS 10.10
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12327 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-18 14:35:05 +00:00
Manolo Gouy
a74cca3219 Support of MacOS 10.13 to appear soon: fix handling of window moves in presence of subwindows.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12318 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-14 19:58:28 +00:00
Manolo Gouy
9276dad42f End of fix for STR#3387 "Bug of timer implementation on macosx"
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12306 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-11 12:03:05 +00:00
Manolo Gouy
66200436bf Fix for STR#3387 Bug of timer implementation on macosx
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12271 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-26 15:20:25 +00:00
Manolo Gouy
2cda5a4fa6 Make Fl_Screen_Driver::get_mouse(int&, int&) return the number of the mouse-containing screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-17 06:53:44 +00:00
Manolo Gouy
90efebb97e Divide virtual Fl_Screen_Driver::open_display() in a platform-specific part followed by a platform-independent part.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12245 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 14:05:47 +00:00
Manolo Gouy
cbc5a4842d Incorporate the code of function handleUpdateEvent() in the unique code section which calls it.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12169 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-03 13:30:36 +00:00
Manolo Gouy
a873e414bd Fix possible crash when turning fullscreen the scroll test program.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12091 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-09 20:55:50 +00:00
Manolo Gouy
c530cdeda6 Use Fl_Graphics_Driver::default_driver() when convenient.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12088 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-09 09:49:48 +00:00
Manolo Gouy
0c878d136c MacOS: fix possible issue with fullscreen windows containing hidden subwindows
An error occurred with the tabs test program
- activate the last tab (containing 3 subwindows)
- activate another tab (the subwindows get hidden)
- set window fullscreen ===> the subwindows are visible and they should not
- reactivate the last tab ===> the subwindows are not where they should be

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12083 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-06 18:28:24 +00:00
Manolo Gouy
214b3c32b5 MacOS: another way to make sure windowDidResize does not access Fl_Window after [FLWindow close] message was sent
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12082 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-06 18:20:58 +00:00
Manolo Gouy
2714c7600e MacOS: fix crash when closing a fullscreen window - continued
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12068 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-01 16:38:37 +00:00
Manolo Gouy
16d62ebbd4 MacOS: fix crash when closing a fullscreen window
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12067 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-01 16:36:08 +00:00
Manolo Gouy
31070778b7 Fix for STR#3308 - MacOS X-specific part.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12009 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-04 11:29:57 +00:00
Manolo Gouy
42624dc17f Avoid possible autorelease warning message sent by "fluid -c" that calls Fl_Window::size_range()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11992 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-28 14:41:40 +00:00
Manolo Gouy
6bba205c93 Remove the 'suppressed' variable from cocoaMouseHandler(), a useless residue from ancient code.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11960 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-21 06:13:38 +00:00
Manolo Gouy
6347dbde58 Restructure the code behind double Fl_Cocoa_Screen_Driver::wait(double time_to_wait)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11958 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-20 13:48:55 +00:00
Manolo Gouy
827fa250f3 Remove fl_wait() that is not part of the public API.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11953 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-20 12:58:51 +00:00
Manolo Gouy
c06374378f Remove fl_ready() not in public API and mostly same as Fl_XXX_Screen_Driver::ready()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11951 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-19 16:59:59 +00:00
Manolo Gouy
c5960df5fb Rewrite fl_open_callback() under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11929 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-09 15:56:33 +00:00
Manolo Gouy
4180cf5360 Add missing delete statements in ~Fl_XXX_Copy_Surface_Driver() and ~Fl_XXX_Image_Surface_Driver().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11891 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-24 08:53:29 +00:00
Manolo Gouy
207d8fe09b Add GLContext to the set of platform-dependent types defined in FL/platform_types.h
If a platform does not support OpenGL, it can just typedef GLContext as void*

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11733 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-05-13 06:45:40 +00:00
Manolo Gouy
cc35e003eb Move GL-related member functions from class Fl_Cocoa_Screen_Driver to class Fl_Cocoa_Gl_Window_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11728 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-05-09 16:10:54 +00:00
Manolo Gouy
aec24973be static function get_image_from_clipboard(Fl_Widget *) really returns Fl_RGB_Image* type
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11711 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-05-05 06:53:59 +00:00
Matthias Melcher
769d151a12 Virtualized add_fd and remove_fd into System Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11668 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 22:45:22 +00:00
Manolo Gouy
cd4498021e Have headers x.H, win32.H and mac.H share a unique definition of class Fl_X
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11667 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 20:47:25 +00:00
Manolo Gouy
4aa388d4ff Add static Fl_XXX_Window_Driver *driver(Fl_Window*) to get the platform-specific driver of a window.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11663 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 17:34:15 +00:00
Manolo Gouy
9f78323574 Move GL-related static member functions of the Fl_X class on Mac OS to class Fl_Cocoa_Screen_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11662 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 16:58:17 +00:00
Manolo Gouy
6600993adc Transform Fl_X::make(Fl_Window*) for Mac platform into Fl_X *Fl_Cocoa_Window_Driver::makeWindow()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11658 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 15:00:02 +00:00
Manolo Gouy
f9edd86753 Move several of the methods of class Fl_X for Mac platform to class Fl_Cocoa_Window_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11657 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 14:25:47 +00:00
Manolo Gouy
034cfc94a3 Move Fl_X::set_high_resolution() to classes Fl_Graphics_Driver and Fl_Quartz_Graphics_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11656 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 12:46:07 +00:00
Manolo Gouy
366f4bfbc9 Move the set_key_window() member function from class Fl_X to class Fl_Cocoa_Window_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11655 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19 06:34:40 +00:00
Manolo Gouy
c0f14ca2f0 Move other_xid member variable from class Fl_X to class F_Window_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11654 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18 17:02:44 +00:00
Manolo Gouy
e790ac9653 Move wait_for_expose member variable from class Fl_X to class Fl_Window_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11653 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18 16:11:15 +00:00
Manolo Gouy
0629b40afd Move set_cursor() member functions from class Fl_X to classes Fl_Window_Driver and derived.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11652 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18 14:31:07 +00:00
Manolo Gouy
85b5f02a8b Replace member function void Fl_X::flush() by virtual void Fl_Window_Driver::flush()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11646 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18 11:58:46 +00:00
Matthias Melcher
cdf85352c4 virtualized some Region calls.
There is a deeper issue here: regions should be handled by the graphics driver that is associated with the Fl_Window of this widget... .

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11643 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 15:36:23 +00:00
Matthias Melcher
cc57af841a virtualizes fl_set_spot and fl_reset_spot
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11640 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 14:22:02 +00:00
Manolo Gouy
a4e5dc0267 Move q_release_context() from class Fl_X to class Fl_Cocoa_Window_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11639 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 10:12:42 +00:00
Manolo Gouy
16beb869a5 Move Fl_X::gc for Mac platform to the Fl_Cocoa_Window_Driver class
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11638 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 09:25:00 +00:00
Manolo Gouy
2fcb4f4192 Move platform-dependent implementations of fl_open/close_display() to the Fl_Screen_Driver class
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11619 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-15 15:36:10 +00:00
Manolo Gouy
15715cd898 Move platform-dependent implementations of Fl::en/dis/able_im() to the Fl_Screen_Driver class
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11618 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-15 15:12:22 +00:00
Manolo Gouy
397a3b83bf Move platform-dependent implementations of fl_clipboard_notify_changes() to the Fl_System_Driver class
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11617 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-15 15:01:27 +00:00
Manolo Gouy
b1f8f3e2aa Move platform-dependent implementations of Fl::clipboard_contains() to the Fl_System_Driver class
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-15 14:49:46 +00:00
Manolo Gouy
d683841f9f Move the platform-dependent implementations of Fl::paste() to the Fl_System_Driver class.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11615 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-15 14:32:13 +00:00