diff options
badwolf.c: drop unbinded right-click on toolbox
This is because of a GtkNotebook bug, which I'm not sure is even gonna get
fixed in GTK3.
Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/2758
1 files changed, 39 insertions, 3 deletions
| -rw-r--r-- | badwolf.c | 42 |
@@ -570,6 +570,16 @@ SearchEntryCb_stop__search(GtkSearchEntry *search, gpointer user_data) return TRUE; } +static gboolean +widgetCb_drop_button3_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) +{ + (void)widget; + (void)user_data; + + // Button3 being right-click on right-handed mode, left-click on left-handed mode + return ((GdkEventButton *)event)->button == 3; +} + struct Client * new_browser(struct Window *window, const gchar *target_url, WebKitWebView *related_web_view) { @@ -720,19 +730,45 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat /* signals for back/forward buttons */ g_signal_connect(browser->back, "clicked", G_CALLBACK(backCb_clicked), browser); g_signal_connect(browser->forward, "clicked", G_CALLBACK(forwardCb_clicked), browser); - - /* signals for location entry widget */ - g_signal_connect(browser->location, "activate", G_CALLBACK(locationCb_activate), browser); + /* prevents GtkNotebook from spawning it's context-menu */ + g_signal_connect( + browser->back, "button-press-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); + g_signal_connect( + browser->back, "button-release-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); + g_signal_connect( + browser->forward, "button-press-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); + g_signal_connect( + browser->forward, "button-release-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); /* signals for javacript toggle widget */ g_signal_connect(browser->javascript, "toggled", G_CALLBACK(javascriptCb_toggled), browser); + /* prevents GtkNotebook from spawning it's context-menu */ + g_signal_connect( + browser->javascript, "button-press-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); + g_signal_connect( + browser->javascript, "button-release-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); /* signals for auto_load_images toggle widget */ g_signal_connect( browser->auto_load_images, "toggled", G_CALLBACK(auto_load_imagesCb_toggled), browser); + /* prevents GtkNotebook from spawning it's context-menu */ + g_signal_connect(browser->auto_load_images, + "button-press-event", + G_CALLBACK(widgetCb_drop_button3_event), + NULL); + g_signal_connect(browser->auto_load_images, + "button-release-event", + G_CALLBACK(widgetCb_drop_button3_event), + NULL); + + /* signals for location entry widget */ + g_signal_connect(browser->location, "activate", G_CALLBACK(locationCb_activate), browser); /* signals for print button */ g_signal_connect(print, "clicked", G_CALLBACK(printCb_clicked), browser); + /* prevents GtkNotebook from spawning it's context-menu */ + g_signal_connect(print, "button-press-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); + g_signal_connect(print, "button-release-event", G_CALLBACK(widgetCb_drop_button3_event), NULL); /* signals for WebView widget */ g_signal_connect(browser->webView, |