diff options
author | Alex Merry <alex.merry@cs.ox.ac.uk> | 2013-01-28 16:36:58 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@cs.ox.ac.uk> | 2013-01-28 16:36:58 +0000 |
commit | f9bdbf93887313a79528696607d96140f33cbd84 (patch) | |
tree | 2981a41f81daba5c33e7131a30eb61fef42bfa4a /tikzit | |
parent | b8c6a1cf4fd38820549976cf5f7b8fffb9b1248d (diff) |
Associate utility windows with current main window
This allows the window manager to raise the windows as a group, for
example.
Diffstat (limited to 'tikzit')
-rw-r--r-- | tikzit/src/gtk/Application.m | 5 | ||||
-rw-r--r-- | tikzit/src/gtk/ContextWindow.h | 2 | ||||
-rw-r--r-- | tikzit/src/gtk/ContextWindow.m | 5 | ||||
-rw-r--r-- | tikzit/src/gtk/ToolBox.h | 4 | ||||
-rw-r--r-- | tikzit/src/gtk/ToolBox.m | 5 | ||||
-rw-r--r-- | tikzit/src/gtk/Window.h | 2 | ||||
-rw-r--r-- | tikzit/src/gtk/Window.m | 2 |
7 files changed, 23 insertions, 2 deletions
diff --git a/tikzit/src/gtk/Application.m b/tikzit/src/gtk/Application.m index cdf4b4e..61fb85d 100644 --- a/tikzit/src/gtk/Application.m +++ b/tikzit/src/gtk/Application.m @@ -345,6 +345,8 @@ Application* app = nil; object:window]; if ([openWindows count] == 0) { gtk_main_quit(); + } else { + [self setActiveWindow:[openWindows objectAtIndex:0]]; } } @@ -374,6 +376,9 @@ Application* app = nil; [contextWindow setDocument:[window document]]; + [contextWindow setTransientFor:window]; + [toolBox setTransientFor:window]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDocumentChanged:) diff --git a/tikzit/src/gtk/ContextWindow.h b/tikzit/src/gtk/ContextWindow.h index 1c2ca85..64ecd19 100644 --- a/tikzit/src/gtk/ContextWindow.h +++ b/tikzit/src/gtk/ContextWindow.h @@ -25,6 +25,7 @@ @class SelectionPane; @class StyleManager; @class TikzDocument; +@class Window; @interface ContextWindow: NSObject { PropertiesPane *propsPane; @@ -42,6 +43,7 @@ andEdgeStylesModel:(EdgeStylesModel*)esm; - (void) present; +- (void) setTransientFor:(Window*)parent; - (void) loadConfiguration:(Configuration*)config; - (void) saveConfiguration:(Configuration*)config; diff --git a/tikzit/src/gtk/ContextWindow.m b/tikzit/src/gtk/ContextWindow.m index 6fbcc59..a4d33ae 100644 --- a/tikzit/src/gtk/ContextWindow.m +++ b/tikzit/src/gtk/ContextWindow.m @@ -23,6 +23,7 @@ #import "PropertiesPane.h" #import "SelectionPane.h" #import "StyleManager.h" +#import "Window.h" #import "gtkhelpers.h" @@ -119,6 +120,10 @@ static gboolean props_window_delete_event_cb (GtkWidget *widget, GdkEvent *event gtk_window_present (GTK_WINDOW (window)); } +- (void) setTransientFor:(Window*)parent { + gtk_window_set_transient_for (GTK_WINDOW (window), [parent gtkWindow]); +} + - (void) loadConfiguration:(Configuration*)config { [propsPane loadConfiguration:config]; [selPane loadConfiguration:config]; diff --git a/tikzit/src/gtk/ToolBox.h b/tikzit/src/gtk/ToolBox.h index 87ee225..7076417 100644 --- a/tikzit/src/gtk/ToolBox.h +++ b/tikzit/src/gtk/ToolBox.h @@ -19,6 +19,7 @@ #import <gtk/gtk.h> @class Configuration; +@class Window; @protocol Tool; @interface ToolBox : NSObject { @@ -29,12 +30,13 @@ GtkWidget *configWidget; } -@property (assign) id<Tool> selectedTool; +@property (assign) id<Tool> selectedTool; - (id) initWithTools:(NSArray*)tools; - (void) show; - (void) present; +- (void) setTransientFor:(Window*)w; - (void) loadConfiguration:(Configuration*)config; - (void) saveConfiguration:(Configuration*)config; diff --git a/tikzit/src/gtk/ToolBox.m b/tikzit/src/gtk/ToolBox.m index af753d4..5d8f936 100644 --- a/tikzit/src/gtk/ToolBox.m +++ b/tikzit/src/gtk/ToolBox.m @@ -20,6 +20,7 @@ #import "Application.h" #import "Configuration.h" #import "Tool.h" +#import "Window.h" #import "gtkhelpers.h" #import "tztoolpalette.h" @@ -228,6 +229,10 @@ static void tool_button_toggled_cb (GtkWidget *widget, ToolBox *toolBox); gtk_window_present (GTK_WINDOW (window)); } +- (void) setTransientFor:(Window*)parent { + gtk_window_set_transient_for (GTK_WINDOW (window), [parent gtkWindow]); +} + - (void) loadConfiguration:(Configuration*)config { if ([config hasGroup:@"ToolBox"]) { tz_restore_window (GTK_WINDOW (window), diff --git a/tikzit/src/gtk/Window.h b/tikzit/src/gtk/Window.h index bac64a0..e1f64ac 100644 --- a/tikzit/src/gtk/Window.h +++ b/tikzit/src/gtk/Window.h @@ -59,8 +59,8 @@ * The document displayed by the window */ @property (retain) TikzDocument *document; - @property (readonly) BOOL hasFocus; +@property (readonly) GtkWindow *gtkWindow; /** * Create a window with an empty document diff --git a/tikzit/src/gtk/Window.m b/tikzit/src/gtk/Window.m index d5dcf03..15049ea 100644 --- a/tikzit/src/gtk/Window.m +++ b/tikzit/src/gtk/Window.m @@ -97,6 +97,8 @@ static void update_paste_action (GtkClipboard *clipboard, GdkEvent *event, GtkAc @implementation Window +@synthesize gtkWindow=window; + - (id) init { return [self initWithDocument:[TikzDocument documentWithStyleManager:[app styleManager]]]; } |