diff options
author | Tor Lillqvist <tml@iki.fi> | 2012-09-26 16:01:09 +0300 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-10-01 09:45:05 +0000 |
commit | 887f67674108b5f45e7748f6fbbf1fa0131b0ba8 (patch) | |
tree | bfdbe85c7e57b1900cc772b080148d22e9309f20 /vcl | |
parent | 6232eeaa90643f2e067145296f8e97fb16f7ecf5 (diff) |
Silly workaround for fdo#55156
I feel dirty now.
Change-Id: I1cafb0c0494d56bc9c81594c2145b2cc4a1ee389
Reviewed-on: https://gerrit.libreoffice.org/710
Reviewed-by: Michael Meeks <michael.meeks@suse.com>
Tested-by: Michael Meeks <michael.meeks@suse.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/aqua/source/a11y/aqua11ywrapper.mm | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/vcl/aqua/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm index 2398e82a0fdb..1be3e4ae5910 100644 --- a/vcl/aqua/source/a11y/aqua11ywrapper.mm +++ b/vcl/aqua/source/a11y/aqua11ywrapper.mm @@ -378,12 +378,16 @@ static BOOL isPopupMenuOpen = NO; -(id)windowAttribute { // go upstairs until reaching the broken connection AquaA11yWrapper * aWrapper = self; + int loops = 0; while ( [ aWrapper accessibleContext ] -> getAccessibleParent().is() ) { AquaA11yWrapper *aTentativeParentWrapper = [ AquaA11yFactory wrapperForAccessibleContext: [ aWrapper accessibleContext ] -> getAccessibleParent() -> getAccessibleContext() ]; // Quick-and-dirty fix for infinite loop after fixing crash in // fdo#47275 if ( aTentativeParentWrapper == aWrapper ) break; + // Even dirtier fix for infinite loop in fdo#55156 + if ( loops++ == 100 ) + break; aWrapper = aTentativeParentWrapper; [ aWrapper autorelease ]; } |