mirror of
https://github.com/fltk/fltk.git
synced 2026-05-23 15:56:10 +08:00
OS X: some changes to support Apples ProjectBuilder.
OS X: FLTK now queries the true windows position from the window manager after creating a new window. This fixes the problem with popup menues showing up at the wrong position. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3067 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
CHANGES IN FLTK 1.1.4rc2
|
||||
|
||||
- OS X: some changes to make ProjectBuilder compiles
|
||||
possible. I'll add the PB project files later.
|
||||
- OS X: FLTK would not know where a window was positioned
|
||||
by the OS. As a result, popup menus could open at
|
||||
wrong positions.
|
||||
- Fl_Window::show(argc,argv) incorrectly opened the
|
||||
display prior to parsing the arguments; this prevented
|
||||
the "-display foo" option from working (STR #111)
|
||||
|
||||
+12
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* "$Id: filename.H,v 1.11.2.4.2.12 2003/01/30 21:40:42 easysw Exp $"
|
||||
* "$Id: filename.H,v 1.11.2.4.2.13 2003/08/02 05:54:43 matthiaswm Exp $"
|
||||
*
|
||||
* Filename header file for the Fast Light Tool Kit (FLTK).
|
||||
*
|
||||
@@ -55,6 +55,16 @@ inline int fl_filename_relative(char *to, const char *from) { return fl_filename
|
||||
|
||||
struct dirent {char d_name[1];};
|
||||
|
||||
# elif defined(__APPLE__) && defined(__PROJECTBUILDER__)
|
||||
|
||||
// Apple's ProjectBuilder has the nasty habit of including recursively
|
||||
// down the file tree. To avoid re-including <FL/dirent.h> we must
|
||||
// directly include the systems math file. (Plus, I could not find a
|
||||
// predefined macro for ProjectBuilder builds, so we have to define it
|
||||
// in the project)
|
||||
# include <sys/types.h>
|
||||
# include "/usr/include/dirent.h"
|
||||
|
||||
# else
|
||||
/*
|
||||
* WARNING: on some systems (very few nowadays?) <dirent.h> may not exist.
|
||||
@@ -117,5 +127,5 @@ FL_EXPORT int fl_filename_list(const char *d, struct dirent ***l,
|
||||
#endif /* FL_FILENAME_H */
|
||||
|
||||
/*
|
||||
* End of "$Id: filename.H,v 1.11.2.4.2.12 2003/01/30 21:40:42 easysw Exp $".
|
||||
* End of "$Id: filename.H,v 1.11.2.4.2.13 2003/08/02 05:54:43 matthiaswm Exp $".
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: math.h,v 1.4.2.4.2.8 2003/01/30 21:40:55 easysw Exp $"
|
||||
// "$Id: math.h,v 1.4.2.4.2.9 2003/08/02 05:54:43 matthiaswm Exp $"
|
||||
//
|
||||
// Math header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@@ -26,7 +26,16 @@
|
||||
#ifndef fl_math_h
|
||||
# define fl_math_h
|
||||
|
||||
# include <math.h>
|
||||
// Apple's ProjectBuilder has the nasty habit of including recursively
|
||||
// down the file tree. To avoid re-including <FL/math.h> we must
|
||||
// directly include the systems math file. (Plus, I could not find a
|
||||
// predefined macro for ProjectBuilder builds, so we have to define it
|
||||
// in the project)
|
||||
# if defined(__APPLE__) && defined(__PROJECTBUILDER__)
|
||||
# include "/usr/include/math.h"
|
||||
# else
|
||||
# include <math.h>
|
||||
# endif
|
||||
|
||||
|
||||
# ifndef M_PI
|
||||
@@ -57,5 +66,5 @@ inline double copysign(double a, double b) {return b<0 ? -a : a;}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: math.h,v 1.4.2.4.2.8 2003/01/30 21:40:55 easysw Exp $".
|
||||
// End of "$Id: math.h,v 1.4.2.4.2.9 2003/08/02 05:54:43 matthiaswm Exp $".
|
||||
//
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fluid.cxx,v 1.15.2.13.2.40 2003/07/29 02:12:36 easysw Exp $"
|
||||
// "$Id: fluid.cxx,v 1.15.2.13.2.41 2003/08/02 05:54:43 matthiaswm Exp $"
|
||||
//
|
||||
// FLUID main entry for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@@ -650,7 +650,7 @@ void update_history(const char *flname) {
|
||||
}
|
||||
|
||||
// Shell command support...
|
||||
#if !defined(WIN32) || defined(__CYGWIN__)
|
||||
#if ( !defined(WIN32) || defined(__CYGWIN__) ) && ( !defined(__MWERKS__) && !defined(__APPLE__) )
|
||||
// Support the full piped shell command...
|
||||
static FILE *shell_pipe = 0;
|
||||
|
||||
@@ -886,5 +886,5 @@ int main(int argc,char **argv) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fluid.cxx,v 1.15.2.13.2.40 2003/07/29 02:12:36 easysw Exp $".
|
||||
// End of "$Id: fluid.cxx,v 1.15.2.13.2.41 2003/08/02 05:54:43 matthiaswm Exp $".
|
||||
//
|
||||
|
||||
+13
-3
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_mac.cxx,v 1.1.2.50 2003/07/21 05:38:16 matthiaswm Exp $"
|
||||
// "$Id: Fl_mac.cxx,v 1.1.2.51 2003/08/02 05:54:43 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS specific code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@@ -666,6 +666,10 @@ static pascal OSStatus carbonWindowHandler( EventHandlerCallRef nextHandler, Eve
|
||||
|
||||
switch ( kind )
|
||||
{
|
||||
case kEventWindowBoundsChanging:
|
||||
GetEventParameter( event, kEventParamCurrentBounds, typeQDRectangle, NULL, sizeof(Rect), NULL, ¤tBounds );
|
||||
GetEventParameter( event, kEventParamOriginalBounds, typeQDRectangle, NULL, sizeof(Rect), NULL, &originalBounds );
|
||||
break;
|
||||
case kEventWindowDrawContent:
|
||||
handleUpdateEvent( fl_xid( window ) );
|
||||
ret = noErr;
|
||||
@@ -1615,8 +1619,9 @@ void Fl_X::make(Fl_Window* w)
|
||||
{ kEventClassWindow, kEventWindowActivated },
|
||||
{ kEventClassWindow, kEventWindowDeactivated },
|
||||
{ kEventClassWindow, kEventWindowClose },
|
||||
{ kEventClassWindow, kEventWindowBoundsChanging },
|
||||
{ kEventClassWindow, kEventWindowBoundsChanged } };
|
||||
ret = InstallWindowEventHandler( x->xid, windowHandler, 7, windowEvents, w, 0L );
|
||||
ret = InstallWindowEventHandler( x->xid, windowHandler, 8, windowEvents, w, 0L );
|
||||
ret = InstallTrackingHandler( dndTrackingHandler, x->xid, w );
|
||||
ret = InstallReceiveHandler( dndReceiveHandler, x->xid, w );
|
||||
}
|
||||
@@ -1637,6 +1642,11 @@ void Fl_X::make(Fl_Window* w)
|
||||
|
||||
ShowWindow(x->xid);
|
||||
|
||||
Rect rect;
|
||||
GetWindowBounds(x->xid, kWindowContentRgn, &rect);
|
||||
w->x(rect.left); w->y(rect.top);
|
||||
w->w(rect.right-rect.left); w->h(rect.bottom-rect.top);
|
||||
|
||||
w->handle(FL_SHOW);
|
||||
w->redraw(); // force draw to happen
|
||||
w->set_visible();
|
||||
@@ -1867,6 +1877,6 @@ void Fl::paste(Fl_Widget &receiver, int clipboard) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_mac.cxx,v 1.1.2.50 2003/07/21 05:38:16 matthiaswm Exp $".
|
||||
// End of "$Id: Fl_mac.cxx,v 1.1.2.51 2003/08/02 05:54:43 matthiaswm Exp $".
|
||||
//
|
||||
|
||||
|
||||
Reference in New Issue
Block a user