From 8806bcb782b2e3e415007441ee37858791dd2ad1 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Fri, 26 Apr 2019 20:11:00 +0200 Subject: Hook webView to commonCb_key_press_event --- badwolf.1 | 18 +++++++++++++++--- badwolf.c | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/badwolf.1 b/badwolf.1 index 49b7955..b97a01e 100644 --- a/badwolf.1 +++ b/badwolf.1 @@ -20,10 +20,22 @@ will probably get added at a later release. .Sh KEYBINDINGS For now it only has the default Webkit/GTK keybindings, which notably are (C for Control, S for Shift): .Bl -width Ds -tag -.It any C-PageUp, any C-PageDown, tabs arrows -When WebView isn't focused (bug to fix) this allows to move from one tab to another. -.It search C-g, search C-S-g +.It any C-PageUp / C-PageDown +Go to the previous/next tab +.It search C-g / C-S-g When the search box is focused it goes to the Next/Previous search term. +.It webview C-F4 +Closes the current tab +.It webview C-S-r / C-r +Reloads the current tab (with/without clearing cache) +.It webview C-f +Focuses on the search entry +.It webview C-l +Focuses on the location(URL) entry +.It webview C-t +Creates a new tab (unrelated, similar as pressing the button) +.It webview C-[ / C-] +Go back/forward in current tab’s history .El .Sh BUGS You can submit contributions or tickets to diff --git a/badwolf.c b/badwolf.c index 471ae9f..10a1ce4 100644 --- a/badwolf.c +++ b/badwolf.c @@ -35,6 +35,8 @@ struct Client static gboolean WebViewCb_close(WebKitWebView *webView, gpointer user_data); static gboolean commonCb_key_press_event(struct Client *browser, GdkEvent *event); +static gboolean +WebViewCb_key_press_event(WebKitWebView *webView, GdkEvent *event, gpointer user_data); static gboolean WebViewCb_web_process_terminated(WebKitWebView *webView, WebKitWebProcessTerminationReason reason, gpointer user_data); @@ -119,6 +121,17 @@ commonCb_key_press_event(struct Client *browser, GdkEvent *event) return FALSE; } +static gboolean +WebViewCb_key_press_event(WebKitWebView *webView, GdkEvent *event, gpointer user_data) +{ + (void)webView; + struct Client *browser = (struct Client *)user_data; + + if(commonCb_key_press_event(browser, event)) return TRUE; + + return FALSE; +} + static gboolean WebViewCb_web_process_terminated(WebKitWebView *webView, WebKitWebProcessTerminationReason reason, @@ -470,6 +483,8 @@ new_browser(struct Window *window, gchar *target_url, WebKitWebView *related_web browser); g_signal_connect(browser->webView, "create", G_CALLBACK(WebViewCb_create), window); 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->search, "next-match", G_CALLBACK(SearchEntryCb_next__match), browser); g_signal_connect( -- cgit v1.3.1-23-gd82d