diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2003-08-02 05:54:43 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2003-08-02 05:54:43 +0000 |
| commit | c2e889169308b826f68becc4c2c14ede857689c3 (patch) | |
| tree | 2a89063465be54138298fc8c0b1024ac8fe424d4 /src | |
| parent | 111cbdb0b060f7647e5d8852c80eeec54e442687 (diff) | |
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
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_mac.cxx | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/Fl_mac.cxx b/src/Fl_mac.cxx index e78f9a8e5..bfda9b7b1 100644 --- a/src/Fl_mac.cxx +++ b/src/Fl_mac.cxx @@ -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 $". // |
