From f7d7eff7ad584b22ef43211f833073e0dad5ff10 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Tue, 1 Mar 2011 11:58:36 +0000 Subject: [PATCH] STR 2580: Fl::add_fd() now calls fl_open_display() because that is necessary for the fd event to be recovered by the event loop. Before main() is called, only fl_mac_os_version is initialized. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8488 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Device.H | 6 +----- src/Fl_Device.cxx | 8 ++++++++ src/Fl_cocoa.mm | 4 +--- src/fl_font_mac.cxx | 1 - src/fl_set_fonts_mac.cxx | 1 - 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index 630259059..0a5a49edc 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -517,11 +517,7 @@ public: static const char *class_id; const char *class_name() {return class_id;}; /** \brief A constructor that sets the graphics driver used by the display */ - Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_Surface_Device( graphics_driver) { -#ifdef __APPLE__ - fl_open_display(); -#endif - }; + Fl_Display_Device(Fl_Graphics_Driver *graphics_driver); /** Returns the platform display device. */ static inline Fl_Display_Device *display_device() {return _display;}; }; diff --git a/src/Fl_Device.cxx b/src/Fl_Device.cxx index 54a3224a3..2a7ff08be 100644 --- a/src/Fl_Device.cxx +++ b/src/Fl_Device.cxx @@ -72,6 +72,14 @@ void Fl_Graphics_Driver::text_extents(const char*t, int n, int& dx, int& dy, int dy = descent(); } +Fl_Display_Device::Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_Surface_Device( graphics_driver) { +#ifdef __APPLE__ + SInt32 version; + Gestalt(gestaltSystemVersion, &version); + fl_mac_os_version = (int)version; +#endif +}; + // // End of "$Id$". diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 57b03a889..eee31a9d7 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -293,6 +293,7 @@ static DataReady dataready; void DataReady::AddFD(int n, int events, void (*cb)(int, void*), void *v) { + fl_open_display(); // necessary for NSApp to be defined RemoveFD(n, events); int i = nfds++; if (i >= fd_array_size) @@ -1289,9 +1290,6 @@ void fl_open_display() { while (ign_event); fl_default_cursor = [NSCursor arrowCursor]; - SInt32 version; - Gestalt(gestaltSystemVersion, &version); - fl_mac_os_version = (int)version; // bring the application into foreground without a 'CARB' resource Boolean same_psn; diff --git a/src/fl_font_mac.cxx b/src/fl_font_mac.cxx index 1ee8342ba..14b7d3053 100644 --- a/src/fl_font_mac.cxx +++ b/src/fl_font_mac.cxx @@ -46,7 +46,6 @@ Fl_Font_Descriptor::Fl_Font_Descriptor(const char* name, Fl_Fontsize Size) { q_name = strdup(name); size = Size; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 -if (fl_mac_os_version == 0) fl_open_display(); if (fl_mac_os_version >= 0x1050) {//unfortunately, CTFontCreateWithName != NULL on 10.4 also! CFStringRef str = CFStringCreateWithCString(NULL, name, kCFStringEncodingUTF8); fontref = CTFontCreateWithName(str, size, NULL); diff --git a/src/fl_set_fonts_mac.cxx b/src/fl_set_fonts_mac.cxx index 8d4c48b86..cfe2f7f20 100644 --- a/src/fl_set_fonts_mac.cxx +++ b/src/fl_set_fonts_mac.cxx @@ -70,7 +70,6 @@ Fl_Font Fl::set_fonts(const char* xstarname) { if (fl_free_font > FL_FREE_FONT) return (Fl_Font)fl_free_font; // if already called #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - if(fl_mac_os_version == 0) fl_open_display(); if(fl_mac_os_version >= 0x1050) { //if(CTFontCreateWithFontDescriptor != NULL) {// CTFontCreateWithFontDescriptor != NULL on 10.4 also! int value[1] = {1};