Author: hdu
Date: Mon Feb 24 09:49:19 2014
New Revision: 1571205

URL: http://svn.apache.org/r1571205
Log:
#i119006# delay AOO/Mac initial event until the app has finished lauching

delaying the initial event prevents complaints from OSX>=10.7's "windows 
restore"
feature to recur infinitely. Apparently OSX cleans things up for us just before
we get the applicationDidFinishLaunching() callback. This should solve one of 
the
most popular support questions for AOO on Mac for good.

Modified:
    openoffice/trunk/main/vcl/aqua/source/app/salinst.cxx
    openoffice/trunk/main/vcl/aqua/source/app/vclnsapp.mm
    openoffice/trunk/main/vcl/inc/aqua/vclnsapp.h

Modified: openoffice/trunk/main/vcl/aqua/source/app/salinst.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/aqua/source/app/salinst.cxx?rev=1571205&r1=1571204&r2=1571205&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/aqua/source/app/salinst.cxx (original)
+++ openoffice/trunk/main/vcl/aqua/source/app/salinst.cxx Mon Feb 24 09:49:19 
2014
@@ -209,23 +209,10 @@ static void initNSApp()
 sal_Bool ImplSVMainHook( sal_Bool * pbInit )
 {
        gpbInit = pbInit;
-    
-    bNoSVMain = false;
-    initNSApp();
-    
-    NSEvent* pEvent = [NSEvent otherEventWithType: NSApplicationDefined
-                               location: NSZeroPoint
-                               modifierFlags: 0
-                               timestamp: 0
-                               windowNumber: 0
-                               context: nil
-                               subtype: AquaSalInstance::AppExecuteSVMain
-                               data1: 0
-                               data2: 0 ];
-    if( pEvent )
-    {
-        [NSApp postEvent: pEvent atStart: NO];
-        
+
+       bNoSVMain = false;
+       initNSApp();
+
         rtl::OUString aExeURL, aExe;
         osl_getExecutableFile( &aExeURL.pData );
         osl_getSystemPathFromFileURL( aExeURL.pData, &aExe.pData );
@@ -239,11 +226,6 @@ sal_Bool ImplSVMainHook( sal_Bool * pbIn
         const char* pArgv[] = { aByteExe.getStr(), NULL };
         NSApplicationMain( 1, pArgv );
 #endif
-    }
-    else
-    {
-        DBG_ERROR( "NSApplication initialization could not be done" );
-    }
 
     return TRUE;   // indicate that ImplSVMainHook is implemented
 }

Modified: openoffice/trunk/main/vcl/aqua/source/app/vclnsapp.mm
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/aqua/source/app/vclnsapp.mm?rev=1571205&r1=1571204&r2=1571205&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/aqua/source/app/vclnsapp.mm (original)
+++ openoffice/trunk/main/vcl/aqua/source/app/vclnsapp.mm Mon Feb 24 09:49:19 
2014
@@ -54,6 +54,22 @@
 @end
 
 @implementation VCL_NSApplication
+
+-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
+{
+    NSEvent* pEvent = [NSEvent otherEventWithType: NSApplicationDefined
+                               location: NSZeroPoint
+                               modifierFlags: 0
+                               timestamp: 0
+                               windowNumber: 0
+                               context: nil
+                               subtype: AquaSalInstance::AppExecuteSVMain
+                               data1: 0
+                               data2: 0 ];
+    if( pEvent )
+        [NSApp postEvent: pEvent atStart: NO];
+}
+
 -(void)sendEvent:(NSEvent*)pEvent
 {
     NSEventType eType = [pEvent type];

Modified: openoffice/trunk/main/vcl/inc/aqua/vclnsapp.h
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/inc/aqua/vclnsapp.h?rev=1571205&r1=1571204&r2=1571205&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/inc/aqua/vclnsapp.h (original)
+++ openoffice/trunk/main/vcl/inc/aqua/vclnsapp.h Mon Feb 24 09:49:19 2014
@@ -40,6 +40,7 @@ class AquaSalFrame;
 @interface VCL_NSApplication : NSApplication
 {
 }
+-(void)applicationDidFinishLaunching:(NSNotification*)aNotification;
 -(void)sendEvent:(NSEvent*)pEvent;
 -(void)sendSuperEvent:(NSEvent*)pEvent;
 -(NSMenu*)applicationDockMenu:(NSApplication *)sender;


Reply via email to