From 6ee5839da2515bd3d44f549b10da4363b48ae685 Mon Sep 17 00:00:00 2001 From: "striker.sh" Date: Fri, 5 Feb 2021 20:37:24 +0100 Subject: Close tab when releasing middle mouse click --- badwolf.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'badwolf.c') diff --git a/badwolf.c b/badwolf.c index aea2bbc..1202944 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; } @@ -863,6 +873,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); -- cgit v1.3.1-23-gd82d From ffc2fc8762f7f496162e4c2fa0d535a9fe1a27fe Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Sun, 14 Mar 2021 10:12:06 +0100 Subject: Initialize a GApplication --- badwolf.c | 7 +++++++ keybindings.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'badwolf.c') diff --git a/badwolf.c b/badwolf.c index 1202944..6ef4cf3 100644 --- a/badwolf.c +++ b/badwolf.c @@ -1035,11 +1035,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); diff --git a/keybindings.c b/keybindings.c index cb033fd..7108acd 100644 --- a/keybindings.c +++ b/keybindings.c @@ -102,7 +102,7 @@ commonCb_key_press_event(struct Window *window, GdkEvent *event, struct Client * return TRUE; case GDK_KEY_p: webkit_print_operation_run_dialog(webkit_print_operation_new(browser->webView), - GTK_WINDOW(browser->window)); + GTK_WINDOW(browser->window->main_window)); return TRUE; } } -- cgit v1.3.1-23-gd82d From 3f0e2f50f21a1968fc3217c3be436f7fb586dca0 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Sun, 19 Sep 2021 07:44:54 +0200 Subject: Switch from libsoup-2.4 to glib's GUri - SoupURI is gone in libsoup-3.0 - GUri got added in glib-2.66 - WebKitGTK 2.32.0 depends on >=glib-2.67 --- badwolf.c | 11 ++++++++--- badwolf.h | 2 +- configure | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'badwolf.c') diff --git a/badwolf.c b/badwolf.c index 6ef4cf3..a0a7d09 100644 --- a/badwolf.c +++ b/badwolf.c @@ -439,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, @@ -449,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); @@ -457,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); diff --git a/badwolf.h b/badwolf.h index 2b2882a..f751842 100644 --- a/badwolf.h +++ b/badwolf.h @@ -5,7 +5,7 @@ #include /* uint64_t */ #include -#if ! WEBKIT_CHECK_VERSION(2,32,0) +#if !WEBKIT_CHECK_VERSION(2, 32, 0) #error WebkitGTK 2.32.0 is the latest supported version for badwolf. #endif diff --git a/configure b/configure index 17510a0..c5fe4a8 100755 --- a/configure +++ b/configure @@ -52,20 +52,20 @@ done case "${WITH_WEBKITGTK}n" in 4.1n) pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.1 || exit 1 - DEPS="${DEPS} webkit2gtk-4.1 libsoup-3.0" + DEPS="${DEPS} webkit2gtk-4.1" ;; 4.0n) pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.0 || exit 1 - DEPS="${DEPS} webkit2gtk-4.0 libsoup-2.4" + DEPS="${DEPS} webkit2gtk-4.0" ;; n) echo "warning: Packagers should specify the ABI version (4.0 or 4.1) in WITH_WEBKITGTK" >&2 if pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.1 then - DEPS="${DEPS} webkit2gtk-4.1 libsoup-3.0" + DEPS="${DEPS} webkit2gtk-4.1" else pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.0 || exit 1 - DEPS="${DEPS} webkit2gtk-4.0 libsoup-2.4" + DEPS="${DEPS} webkit2gtk-4.0" fi ;; *) -- cgit v1.3.1-23-gd82d