Footnote highlight issues

Hi there,

I’ve been having repeated problems with Scrivener footnotes causing instabilities and occasional crashes. After trying to figure out for some time the exact sequence that causes the problems, it seems to be along these lines:

  1. I create a footnote (using the keyboard shortcut ctl-cmd-8), the grey highlight sometimes covering more than one word.
  2. I select a word within the highlighted area and use the ‘Look up…’ command (using the keyboard shortcut ctl-cmd-D).
  3. There is no response (the dictionary popup does not appear).
  4. I can no longer select the footnote (in console.app, the following error is listed: ‘12/07/2016 10:00:18.655 Scrivener[8805]: -[KBComment previewItemURL]: unrecognized selector sent to instance 0x8a4d340’)

This is, so far, the only problem I can reproduce, but I have had other issues, including:

  • the space bar no longer working when I type within the footmark highlighted area, having performed a ‘Look up…’
  • Scrivener not freezing, but refusing to respond to the quit command, making me use the ‘Force quit’ option.

I am using Scrivener vs 2.7 running under OS X 10.11.6 Public Beta - but please note this problem precedes the installation of the beta version of El Capitan.

Thanks,
Ben Woolley

PS: I also found this apparently related error message in the Console log:

12/07/2016 09:58:25.364 Scrivener[8805]: NSSoftLinking - The ShareKit framework’s library couldn’t be loaded from /System/Library/PrivateFrameworks/ShareKit.framework/Versions/A/ShareKit.

PPS:

If I perform steps 1 and 2, and then close the project, and then attempt to reopen it, the project window becomes unresponsive, and I get the following messages in the console.

12/07/2016 10:16:30.183 Scrivener[8884]: Cannot remove an observer <SCRMainWindowController 0xc99670> for the key path “values.SCRBinderFont” from <NSUserDefaultsController 0x1b59ff0> because it is not registered as an observer.
12/07/2016 10:16:30.185 Scrivener[8884]: (
0 CoreFoundation 0x926eca69 __raiseError + 201
1 libobjc.A.dylib 0x94b43fd1 objc_exception_throw + 276
2 CoreFoundation 0x926ec97d +[NSException raise:format:] + 141
3 Foundation 0x945a449f -[NSObject(NSKeyValueObserverRegistration) _removeObserver:forProperty:] + 726
4 Foundation 0x945a416a -[NSObject(NSKeyValueObserverRegistration) removeObserver:forKeyPath:] + 180
5 AppKit 0x9cff942b -[NSController removeObserver:forKeyPath:] + 116
6 Scrivener 0x000b50e4 Scrivener + 737508
7 Scrivener 0x00036628 Scrivener + 218664
8 Foundation 0x945967a2 __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_2 + 50
9 CoreFoundation 0x925fe144 CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 20
10 CoreFoundation 0x925fe0cb ___CFXRegistrationPost_block_invoke + 75
11 CoreFoundation 0x925fe03c _CFXRegistrationPost + 460
12 CoreFoundation 0x925fdd76 ___CFXNotificationPost_block_invoke + 54
13 CoreFoundation 0x925b76f3 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1715
14 CoreFoundation 0x925b6912 _CFXNotificationPost + 626
15 Foundation 0x945488b4 -[NSNotificationCenter postNotificationName:object:userInfo:] + 92
16 Foundation 0x94556db0 -[NSNotificationCenter postNotificationName:object:] + 56
17 AppKit 0x9d0ce13d __18-[NSWindow _close]_block_invoke + 232
18 QuickLookUI 0x9620fb68 -[QLSeamlessDocumentConcreteCloser closeWithContentFrame:block:] + 1191
19 QuickLookUI 0x9620f621 -[QLSeamlessDocumentCloser closeWindow:contentFrame:withBlock:] + 92
20 AppKit 0x9d0ce001 -[NSWindow _close] + 374
21 AppKit 0x9d0cde83 -[NSWindow close] + 33
22 AppKit 0x9d171520 __19-[NSWindow __close]_block_invoke + 176
23 AppKit 0x9d1b9048 -[NSDocument _something:didSomething:soContinue:] + 24
24 AppKit 0x9d1b914c __75-[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]_block_invoke_2 + 52
25 AppKit 0x9d1b767e __75-[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]_block_invoke + 679
26 AppKit 0x9d069b95 -[NSDocument performActivityWithSynchronousWaiting:usingBlock:cancellationHandler:] + 46
27 AppKit 0x9d1b7190 -[NSDocument performActivityWithSynchronousWaiting:usingBlock:] + 56
28 AppKit 0x9d1b714f -[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:] + 350
29 Scrivener 0x00010ea2 Scrivener + 65186
30 AppKit 0x9d39bd19 -[NSDocument shouldCloseWindowController:delegate:shouldCloseSelector:contextInfo:] + 366
31 AppKit 0x9d171455 -[NSWindow __close] + 357
32 AppKit 0x9d1711b8 -[NSWindow _close:] + 173
33 libobjc.A.dylib 0x94b413ee -[NSObject performSelector:withObject:] + 70
34 AppKit 0x9d07f1bd __36-[NSApplication sendAction:to:from:]_block_invoke + 51
35 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
36 AppKit 0x9d07f0de -[NSApplication sendAction:to:from:] + 610
37 AppKit 0x9d092991 -[NSControl sendAction:to:] + 102
38 AppKit 0x9d092885 __26-[NSCell _sendActionFrom:]_block_invoke + 176
39 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
40 AppKit 0x9d0927b4 -[NSCell _sendActionFrom:] + 161
41 AppKit 0x9d2f4349 __48-[NSCell trackMouse:inRect:ofView:untilMouseUp:]_block_invoke1010 + 43
42 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
43 AppKit 0x9d090b61 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2744
44 AppKit 0x9d0dd003 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 809
45 AppKit 0x9d08f190 -[NSControl mouseDown:] + 693
46 AppKit 0x9d1440e1 -[_NSThemeWidget mouseDown:] + 97
47 AppKit 0x9d68311b -[NSWindow _handleMouseDownEvent:isDelayedEvent:] + 6266
48 AppKit 0x9d684922 -[NSWindow _reallySendEvent:isDelayedEvent:] + 2303
49 AppKit 0x9d01b7b7 -[NSWindow sendEvent:] + 567
50 AppKit 0x9cf96b45 -[NSApplication sendEvent:] + 2919
51 Scrivener 0x00051a3a Scrivener + 330298
52 AppKit 0x9cde9ba7 -[NSApplication run] + 1159
53 AppKit 0x9cdb0469 NSApplicationMain + 1630
54 Scrivener 0x000027b5 Scrivener + 6069
55 ??? 0x00000001 0x0 + 1
)
12/07/2016 10:16:31.169 WindowServer[174]: disable_update_timeout: UI updates were forcibly disabled by application “Scrivener” for over 1.00 seconds. Server has re-enabled them.
12/07/2016 10:16:45.169 WindowServer[174]: disable_update_likely_unbalanced: UI updates still disabled by application “Scrivener” after 15.00 seconds (server forcibly re-enabled them after 1.00 seconds). Likely an unbalanced disableUpdate call.
12/07/2016 10:16:45.169 Scrivener[8884]: void CGSUpdateManager::log() const: conn 0x3036f legacy 1
12/07/2016 10:16:45.171 Scrivener[8884]: Backtrace (at 328125):
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 0 CoreGraphics 0x90c1d665 CGSDisableUpdate + 207
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 1 AppKit 0x9d7e1712 NSCGSDisableUpdatesLegacy + 46
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 2 AppKit 0x9d0602ba NSDisableScreenUpdates + 83
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 3 QuickLookUI 0x9620fb3f -[QLSeamlessDocumentConcreteCloser closeWithContentFrame:block:] + 1150
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 4 QuickLookUI 0x9620f621 -[QLSeamlessDocumentCloser closeWindow:contentFrame:withBlock:] + 92
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 5 AppKit 0x9d0ce001 -[NSWindow _close] + 374
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 6 AppKit 0x9d0cde83 -[NSWindow close] + 33
12/07/2016 10:16:45.171 Scrivener[8884]: void CGSUpdateManager::log() const: 7 AppKit 0x9d171520 __19-[NSWindow __close]_block_invoke + 176
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 8 AppKit 0x9d1b9048 -[NSDocument _something:didSomething:soContinue:] + 24
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 9 AppKit 0x9d1b914c __75-[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]_block_invoke_2 + 52
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 10 AppKit 0x9d1b767e __75-[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]_block_invoke + 679
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 11 AppKit 0x9d069b95 -[NSDocument performActivityWithSynchronousWaiting:usingBlock:cancellationHandler:] + 46
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 12 AppKit 0x9d1b7190 -[NSDocument performActivityWithSynchronousWaiting:usingBlock:] + 56
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 13 AppKit 0x9d1b714f -[NSDocument canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:] + 350
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 14 Scrivener 0x00010ea2 Scrivener + 65186
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 15 AppKit 0x9d39bd19 -[NSDocument shouldCloseWindowController:delegate:shouldCloseSelector:contextInfo:] + 366
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 16 AppKit 0x9d171455 -[NSWindow __close] + 357
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 17 AppKit 0x9d1711b8 -[NSWindow _close:] + 173
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 18 libobjc.A.dylib 0x94b413ee -[NSObject performSelector:withObject:] + 70
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 19 AppKit 0x9d07f1bd __36-[NSApplication sendAction:to:from:]_block_invoke + 51
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 20 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 21 AppKit 0x9d07f0de -[NSApplication sendAction:to:from:] + 610
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 22 AppKit 0x9d092991 -[NSControl sendAction:to:] + 102
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 23 AppKit 0x9d092885 __26-[NSCell _sendActionFrom:]_block_invoke + 176
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 24 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 25 AppKit 0x9d0927b4 -[NSCell _sendActionFrom:] + 161
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 26 AppKit 0x9d2f4349 __48-[NSCell trackMouse:inRect:ofView:untilMouseUp:]_block_invoke1010 + 43
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 27 libsystem_trace.dylib 0x9a4ab3c1 _os_activity_initiate + 85
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 28 AppKit 0x9d090b61 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2744
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 29 AppKit 0x9d0dd003 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 809
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 30 AppKit 0x9d08f190 -[NSControl mouseDown:] + 693
12/07/2016 10:16:45.172 Scrivener[8884]: void CGSUpdateManager::log() const: 31 AppKit 0x9d1440e1 -[_NSThemeWidget mouseDown:] + 97

One thing I would do first is go into Scrivener’s General preference pane and at the very bottom enable the Show internal error alerts setting. It sounds like some of the things you are experiencing could be secondary symptoms of an exception being thrown earlier. Once something breaks in the software, all bets are off as to it working properly until you restart it. Having this option enabled will let you know the moment that happens so you can restart and avoid the secondary symptoms. Plus you’ll get some diagnostic data from the alert that might help us (it might also be the same thing you got in Console though, from the look of it).

As to fixing the problem, I would first try resetting your preferences, this seems like the kind of problem that might arise from broken settings (I couldn’t reproduce anything like this myself, it might be OS X related though and I’m on 10.10 at the moment, I’ll test 10.11.5 later):

  1. Go to the main preferences panel in Scrivener and use the Manage… drop-down menu to backup a copy of your settings to the desktop.
  2. From the main Scrivener menu, select “Reveal Support Folder in Finder”. This will open a window in Finder.
  3. Quit Scrivener.
  4. Back in that Finder window opened in step #2, press Cmd-UpArrow twice. You should be in a “Library” folder, double-click on the “Preferences” folder.
  5. You should see one or two files starting with “com.literatureandlatte.scrivener2”. Move any files like that to the trash.
  6. Log out of your account and back in, or if you’re okay with the shell, fire off this command: killall -u $USER cfprefsd. Either of those steps will flush preference caches.
  7. Reload Scrivener and verify the problem is gone.
  8. Use the Manage… drop-down to load your preferences from the desktop backup file.

By the way the ShareKit console message can be ignored.