OSX: make sure closing the mainwindow forewards to the quitdialog - todo: check if m_window now public is a problem

This commit is contained in:
Jens Verwiebe 2013-09-28 17:55:22 +00:00
parent 99837ea844
commit 1a30e52142
2 changed files with 14 additions and 3 deletions

@ -1018,12 +1018,20 @@ void GHOST_SystemCocoa::notifyExternalEventProcessed()
//Note: called from NSWindow delegate
GHOST_TSuccess GHOST_SystemCocoa::handleWindowEvent(GHOST_TEventType eventType, GHOST_WindowCocoa* window)
{
NSArray *windowsList;
windowsList = [NSApp orderedWindows];
if (!validWindow(window)) {
return GHOST_kFailure;
}
switch (eventType) {
case GHOST_kEventWindowClose:
pushEvent( new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowClose, window) );
// make sure index 1 exists and compare window adress
if ([windowsList count] > 1 && (window->m_window != [windowsList objectAtIndex:1])) {
pushEvent( new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowClose, window) );
}
else {
handleQuitRequest(); // -> quit dialog
}
break;
case GHOST_kEventWindowActivate:
m_windowManager->setActiveWindow(window);

@ -269,6 +269,9 @@ public:
GHOST_TSuccess beginFullScreen() const {return GHOST_kFailure;}
GHOST_TSuccess endFullScreen() const {return GHOST_kFailure;}
/** The window containing the OpenGL view */
CocoaWindow *m_window;
protected:
@ -318,8 +321,8 @@ protected:
virtual GHOST_TSuccess setWindowCustomCursorShape(GHOST_TUns8 bitmap[16][2], GHOST_TUns8 mask[16][2], int hotX, int hotY);
/** The window containing the OpenGL view */
CocoaWindow *m_window;
// /** The window containing the OpenGL view */
// CocoaWindow *m_window;
/** The openGL view */
CocoaOpenGLView *m_openGLView;