diff options
author | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-17 17:24:26 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-17 17:24:26 +0000 |
commit | 410fdf146246e014f1598e1880b5326e75159c43 (patch) | |
tree | 704c4d0b1359ac6db660a325c8ee7ab0ef35a93d /tikzit/src/gtk/Window.m | |
parent | f75835e188c1bf8010fb7cc18c7526934ff19eba (diff) |
Update props window when a window's document changes
A window's document can change when opening a document from a window
that is has no backing file and no changes. The properties window was
not getting updated propertly when this happened (it still referred to
the old document). Now it is updated properly.
Diffstat (limited to 'tikzit/src/gtk/Window.m')
-rw-r--r-- | tikzit/src/gtk/Window.m | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/tikzit/src/gtk/Window.m b/tikzit/src/gtk/Window.m index c5e7654..d5dcf03 100644 --- a/tikzit/src/gtk/Window.m +++ b/tikzit/src/gtk/Window.m @@ -148,9 +148,8 @@ static void update_paste_action (GtkClipboard *clipboard, GdkEvent *event, GtkAc [[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:[document pickSupport]]; [[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:document]; - [newDoc retain]; - [document release]; - document = newDoc; + TikzDocument *oldDoc = document; + document = [newDoc retain]; [graphPanel setDocument:document]; [self _updateTikz]; @@ -174,6 +173,21 @@ static void update_paste_action (GtkClipboard *clipboard, GdkEvent *event, GtkAc if ([document path] != nil) { [[RecentManager defaultManager] addRecentFile:[document path]]; } + + NSDictionary *userInfo; + userInfo = [NSDictionary dictionaryWithObjectsAndKeys: + document, @"document", + oldDoc, @"oldDocument", + nil]; + [[NSNotificationCenter defaultCenter] + postNotificationName:@"DocumentChanged" + object:self + userInfo:userInfo]; + [oldDoc release]; +} + +- (BOOL) hasFocus { + return gtk_window_has_toplevel_focus (GTK_WINDOW (window)); } - (void) present { |