Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
1 files changed, 29 insertions, 6 deletions
-rw-r--r--badwolf.c35
diff --git a/badwolf.c b/badwolf.c
index aea2bbc..a0a7d09 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -165,16 +165,23 @@ badwolf_new_tab_box(const gchar *title, struct Client *browser)
GtkWidget *tab_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_name(tab_box, "browser__tabbox");
+
GtkWidget *close =
gtk_button_new_from_icon_name("window-close-symbolic", GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_widget_set_name(close, "browser__tabbox__close");
GtkWidget *label = gtk_label_new(title);
gtk_widget_set_name(label, "browser__tabbox__label");
+ GtkWidget *label_event_box = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(label_event_box), label);
GtkWidget *context_label = gtk_label_new(context_id_str);
gtk_widget_set_name(context_label, "browser__tabbox__context_label");
+ GtkWidget *context_label_event_box = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(context_label_event_box), context_label);
GtkWidget *playing =
gtk_image_new_from_icon_name("audio-volume-high-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR);
gtk_widget_set_name(playing, "browser__tabbox__playing");
+ GtkWidget *playing_event_box = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(playing_event_box), playing);
#ifdef BADWOLF_TAB_BOX_WIDTH
gtk_widget_set_size_request(label, BADWOLF_TAB_BOX_WIDTH, -1);
@@ -188,9 +195,9 @@ badwolf_new_tab_box(const gchar *title, struct Client *browser)
gtk_label_set_single_line_mode(GTK_LABEL(label), TRUE);
gtk_label_set_single_line_mode(GTK_LABEL(context_label), TRUE);
- gtk_box_pack_start(GTK_BOX(tab_box), context_label, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(tab_box), playing, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(tab_box), label, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(tab_box), context_label_event_box, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(tab_box), playing_event_box, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(tab_box), label_event_box, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(tab_box), close, FALSE, FALSE, 0);
gtk_button_set_relief(GTK_BUTTON(close), GTK_RELIEF_NONE);
@@ -201,6 +208,9 @@ badwolf_new_tab_box(const gchar *title, struct Client *browser)
gtk_widget_show_all(tab_box);
gtk_widget_set_visible(playing, webkit_web_view_is_playing_audio(browser->webView));
+ gtk_widget_set_events(label, GDK_BUTTON_RELEASE_MASK);
+ g_signal_connect(
+ tab_box, "button-release-event", G_CALLBACK(tab_boxCb_button_release_event), browser);
return tab_box;
}
@@ -429,7 +439,8 @@ WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
struct Client *browser = (struct Client *)user_data;
gchar *error_details = detail_tls_certificate_flags(errors);
gint dialog_response;
- SoupURI *failing_uri = soup_uri_new(failing_text);
+
+ GUri *failing_uri = g_uri_parse(failing_text, G_URI_FLAGS_NONE, NULL);
GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(browser->window->main_window),
GTK_DIALOG_MODAL & GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -439,6 +450,10 @@ WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
failing_text);
gtk_dialog_add_buttons(
GTK_DIALOG(dialog), _("Temporarily Add Exception"), 1, _("Continue"), 0, NULL);
+ if(!failing_uri)
+ {
+ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), 1, FALSE);
+ }
gtk_dialog_set_default_response(GTK_DIALOG(dialog), 0);
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s\n", error_details);
@@ -447,11 +462,11 @@ WebViewCb_load_failed_with_tls_errors(WebKitWebView *web_view,
if(dialog_response == 1)
{
webkit_web_context_allow_tls_certificate_for_host(
- webkit_web_view_get_context(browser->webView), certificate, failing_uri->host);
+ webkit_web_view_get_context(browser->webView), certificate, g_uri_get_host(failing_uri));
webkit_web_view_reload(browser->webView);
}
- soup_uri_free(failing_uri);
+ g_free(failing_uri);
g_free(error_details);
gtk_widget_destroy(dialog);
@@ -863,6 +878,7 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
browser);
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);
g_signal_connect(browser->webView, "scroll-event", G_CALLBACK(WebViewCb_scroll_event), browser);
@@ -1024,11 +1040,18 @@ int
main(int argc, char *argv[])
{
struct Window *window = &(struct Window){NULL, NULL, NULL, NULL, NULL, NULL};
+ GApplication *application;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, DATADIR "/locale");
bind_textdomain_codeset(PACKAGE, "UTF-8");
textdomain(PACKAGE);
+ application = g_application_new("me.hacktivis.badwolf",
+ G_APPLICATION_HANDLES_COMMAND_LINE |
+ G_APPLICATION_SEND_ENVIRONMENT | G_APPLICATION_NON_UNIQUE);
+ g_application_register(application, NULL, NULL);
+ //g_application_activate(application);
+
gtk_init(&argc, &argv);
fprintf(stderr, _("Running Badwolf version: %s\n"), version);