aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/SPDatabaseDocument.m34
1 files changed, 18 insertions, 16 deletions
diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m
index 2931ba9f..51fc7a7e 100644
--- a/Source/SPDatabaseDocument.m
+++ b/Source/SPDatabaseDocument.m
@@ -6303,22 +6303,24 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0;
#ifndef SP_CODA /* update selected table in SPTablesList */
- BOOL focusOnFilter = YES;
- if (targetItemName) focusOnFilter = NO;
-
- // If a the table has changed, update the selection
- if (![targetItemName isEqualToString:[self table]] && targetItemName) {
- focusOnFilter = ![tablesListInstance selectItemWithName:targetItemName];
- }
-
- // Ensure the window focus is on the table list or the filter as appropriate
- [[tablesListInstance onMainThread] setTableListSelectability:YES];
- if (focusOnFilter) {
- [[tablesListInstance onMainThread] makeTableListFilterHaveFocus];
- } else {
- [[tablesListInstance onMainThread] makeTableListHaveFocus];
- }
- [[tablesListInstance onMainThread] setTableListSelectability:NO];
+ SPMainQSync(^{
+ BOOL focusOnFilter = YES;
+ if (targetItemName) focusOnFilter = NO;
+
+ // If a the table has changed, update the selection
+ if (![targetItemName isEqualToString:[self table]] && targetItemName) {
+ focusOnFilter = ![tablesListInstance selectItemWithName:targetItemName];
+ }
+
+ // Ensure the window focus is on the table list or the filter as appropriate
+ [tablesListInstance setTableListSelectability:YES];
+ if (focusOnFilter) {
+ [tablesListInstance makeTableListFilterHaveFocus];
+ } else {
+ [tablesListInstance makeTableListHaveFocus];
+ }
+ [tablesListInstance setTableListSelectability:NO];
+ });
#endif
[self endTask];