summaryrefslogtreecommitdiff
path: root/gtk/scaffolding.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-07-25 16:29:18 +0100
committerVincent Sanders <vince@kyllikki.org>2014-07-27 18:07:00 +0100
commit06a1d75d52dc533474194c0c9b33eecf09b59068 (patch)
treeec124b7110b54489826b46b02decb1d1735f3014 /gtk/scaffolding.c
parent984299e5b4feda4ffb6fd80f0d1f489c32e6d512 (diff)
downloadnetsurf-06a1d75d52dc533474194c0c9b33eecf09b59068.tar.gz
netsurf-06a1d75d52dc533474194c0c9b33eecf09b59068.tar.bz2
stop gtk about dialog forcing navigation of existing browsing contexts
Diffstat (limited to 'gtk/scaffolding.c')
-rw-r--r--gtk/scaffolding.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/gtk/scaffolding.c b/gtk/scaffolding.c
index 5d9c58745..d3c526368 100644
--- a/gtk/scaffolding.c
+++ b/gtk/scaffolding.c
@@ -136,8 +136,8 @@ struct gtk_scaffolding {
struct gtk_scaffolding *next, *prev;
};
-/** current window for model dialogue use */
-static struct gtk_scaffolding *current_model;
+/** current scaffold for model dialogue use */
+static struct gtk_scaffolding *scaf_current;
/** global list for interface changes */
nsgtk_scaffolding *scaf_list = NULL;
@@ -497,7 +497,7 @@ static void nsgtk_openfile_open(const char *filename)
nsurl *url;
nserror error;
- bw = nsgtk_get_browser_window(current_model->top_level);
+ bw = nsgtk_get_browser_window(scaf_current->top_level);
urltxt = malloc(strlen(filename) + FILE_SCHEME_PREFIX_LEN + 1);
@@ -596,9 +596,9 @@ MULTIHANDLER(newtab)
MULTIHANDLER(openfile)
{
- current_model = g;
+ scaf_current = g;
GtkWidget *dlgOpen = gtk_file_chooser_dialog_new("Open File",
- current_model->window, GTK_FILE_CHOOSER_ACTION_OPEN,
+ scaf_current->window, GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, -6, GTK_STOCK_OPEN, -5, NULL);
gint response = gtk_dialog_run(GTK_DIALOG(dlgOpen));
@@ -1631,9 +1631,7 @@ MULTIHANDLER(info)
MULTIHANDLER(about)
{
- nsgtk_about_dialog_init(g->window,
- nsgtk_get_browser_window(g->top_level),
- netsurf_version);
+ nsgtk_about_dialog_init(g->window, netsurf_version);
return TRUE;
}
@@ -1837,6 +1835,16 @@ nsgtk_new_scaffolding_link_popup(struct gtk_scaffolding *g, GtkAccelGroup *group
return nmenu;
}
+/* exported interface documented in gtk/scaffolding.h */
+nsgtk_scaffolding *nsgtk_current_scaffolding(void)
+{
+ if (scaf_current == NULL) {
+ scaf_current = scaf_list;
+ }
+ return scaf_current;
+}
+
+/* exported interface documented in gtk/scaffolding.h */
nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel)
{
struct gtk_scaffolding *g;