Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
Commit31e176f6f7c2ac8cf7d1c147a2f20c4e74b21932 (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-06-16 06:21:16 +0200
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-06-16 06:34:32 +0200
Files12951abfc42754943cfea046db1fb8ea292df55a /badwolf.c
goodwolf-31e176f6f7c2ac8cf7d1c147a2f20c4e74b21932.tar
goodwolf-31e176f6f7c2ac8cf7d1c147a2f20c4e74b21932.tar.gz
goodwolf-31e176f6f7c2ac8cf7d1c147a2f20c4e74b21932.zip
Parentcb232d9e919d67c71a96d7ab1fc85cf5aa968b81 (diff)
fix context_id incrementation
1 files changed, 14 insertions, 9 deletions
-rw-r--r--badwolf.c23
diff --git a/badwolf.c b/badwolf.c
index b0e2beb..a8b8802 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -293,10 +293,15 @@ WebViewCb_create(WebKitWebView *related_web_view,
gpointer user_data)
{
(void)navigation_action;
- struct Window *window = (struct Window *)user_data;
- struct Client *browser = new_browser(window, NULL, related_web_view);
+ struct Client *old_browser = (struct Client *)user_data;
+ struct Client *browser = NULL;
+
+ // shouldn't be needed but better be safe
+ old_browser->webView = related_web_view;
+
+ browser = new_browser(old_browser->window, NULL, old_browser);
- if(badwolf_new_tab(GTK_NOTEBOOK(window->notebook), browser) < 0)
+ if(badwolf_new_tab(GTK_NOTEBOOK(old_browser->window->notebook), browser) < 0)
return NULL;
else
return browser->webView;
@@ -590,16 +595,16 @@ widgetCb_drop_button3_event(GtkWidget *widget, GdkEvent *event, gpointer user_da
}
struct Client *
-new_browser(struct Window *window, const gchar *target_url, WebKitWebView *related_web_view)
+new_browser(struct Window *window, const gchar *target_url, struct Client *old_browser)
{
struct Client *browser = malloc(sizeof(struct Client));
- target_url = badwolf_ensure_uri_scheme(target_url, (related_web_view == NULL));
+ target_url = badwolf_ensure_uri_scheme(target_url, (old_browser == NULL));
char *badwolf_l10n = NULL;
if(browser == NULL) return NULL;
browser->window = window;
- browser->context_id = context_id_counter++;
+ browser->context_id = old_browser == NULL ? context_id_counter++ : old_browser->context_id;
browser->box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(browser->box, "browser__box");
@@ -670,7 +675,7 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
"web-context",
web_context,
"related-view",
- related_web_view,
+ old_browser == NULL ? NULL : old_browser->webView,
"settings",
settings,
NULL));
@@ -799,7 +804,7 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
"notify::estimated-load-progress",
G_CALLBACK(WebViewCb_notify__estimated_load_progress),
browser);
- g_signal_connect(browser->webView, "create", G_CALLBACK(WebViewCb_create), window);
+ g_signal_connect(browser->webView, "create", G_CALLBACK(WebViewCb_create), browser);
g_signal_connect(browser->webView, "close", G_CALLBACK(WebViewCb_close), browser);
g_signal_connect(
browser->webView, "key-press-event", G_CALLBACK(WebViewCb_key_press_event), browser);
@@ -830,7 +835,7 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
/* signals for box container */
g_signal_connect(browser->box, "key-press-event", G_CALLBACK(boxCb_key_press_event), browser);
- if(related_web_view == NULL) webkit_web_view_load_uri(browser->webView, target_url);
+ if(old_browser == NULL) webkit_web_view_load_uri(browser->webView, target_url);
return browser;
}