diff options
authorTor Lillqvist <>2013-08-19 10:32:34 +0300
committerTor Lillqvist <>2013-08-19 10:58:37 +0300
commitbd507a0d093b7d5239992440a40d0a7453b38207 (patch)
parent08452f1208a2ecbf7c6f15a96efeedbe5210ec83 (diff)
fdo#39007: Brute force fix: Unlink a potential restorecount.plist file
It is not completely clear to me whether we really still might be leaving such files around. After all, we now in *two* places (at least in current master) tell our NSWindows to not be restorable... Norbert's code in AquaSalFrame::initWindowAndView() *and* Herbert Dürr's code in -[SalFrameWindow initWithSalFrame:]. On the other hand, Cocoa does seem to create the file and keep it around for a short while before removing it (in responce to our setRestorable:NO calls?), so there is a slight time window where if LO crashes, the file will be left around. Such a file might also be around from an older LO version, or manually planted there by somebody wanting to reproduce the bug... Of course, the *real* fix for this problem would be to make LO a *proper* Cocoa document centric application, that would use NSDocument, NSApplication etc like native applications are supposed to, and that *would* handle window restoration the Cocoa way. I.e., work with the system instead of against it. Change-Id: I9ed058130ddddf49cf0221d899bef3e2654589c7
2 files changed, 6 insertions, 0 deletions
diff --git a/vcl/ b/vcl/
index 363f82a6303d..ed9a0bd070b0 100644
--- a/vcl/
+++ b/vcl/
@@ -352,6 +352,10 @@ $(eval $(call gb_Library_add_cxxflags,vcl,\
+$(eval $(call gb_Library_add_defs,vcl,\
$(eval $(call gb_Library_add_defs,vcl,\
diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx
index 0f14d00904c8..89ce263b3690 100644
--- a/vcl/aqua/source/app/salinst.cxx
+++ b/vcl/aqua/source/app/salinst.cxx
@@ -184,6 +184,8 @@ static void initNSApp()
sal_Bool ImplSVMainHook( int * pnInit )
+ unlink([[NSString stringWithFormat:@"%@/Library/Saved Application State/%s.savedState/restorecount.plist", NSHomeDirectory(), MACOSX_BUNDLE_IDENTIFIER] UTF8String]);
gpnInit = pnInit;
bNoSVMain = false;