Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
Commit4d30c11f4c7ff59805c770ca972a24088c9f2604 (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2019-07-06 15:53:06 +0200
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2019-07-06 16:14:49 +0200
Files47ed8ab2b3ea38ba6916f2e65bcec033e151f570 /badwolf.c
goodwolf-4d30c11f4c7ff59805c770ca972a24088c9f2604.tar
goodwolf-4d30c11f4c7ff59805c770ca972a24088c9f2604.tar.gz
goodwolf-4d30c11f4c7ff59805c770ca972a24088c9f2604.zip
Parent2216742794e48bda3898813acbb9e1d68d38b241 (diff)
Move keybindings to a separate file
1 files changed, 1 insertions, 155 deletions
-rw-r--r--badwolf.c156
diff --git a/badwolf.c b/badwolf.c
index a9c4b67..a48d324 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -5,6 +5,7 @@
#include "badwolf.h"
#include "config.h"
+#include "keybindings.h"
#include <glib/gi18n.h> /* _() and other internationalization/localization helpers */
#include <glib/gprintf.h> /* g_fprintf() */
@@ -15,13 +16,6 @@ const gchar *homepage = "https://hacktivis.me/projects/badwolf";
const gchar *version = "0.3.0";
static gboolean WebViewCb_close(WebKitWebView *webView, gpointer user_data);
-static gboolean
-commonCb_key_press_event(struct Window *window, GdkEvent *event, struct Client *browser);
-static gboolean
-WebViewCb_key_press_event(WebKitWebView *webView, GdkEvent *event, gpointer user_data);
-static gboolean
-main_windowCb_key_press_event(GtkWidget *widget, GdkEvent *event, gpointer user_data);
-static gboolean boxCb_key_press_event(GtkWidget *widget, GdkEvent *event, gpointer user_data);
static gboolean WebViewCb_web_process_terminated(WebKitWebView *webView,
WebKitWebProcessTerminationReason reason,
gpointer user_data);
@@ -91,23 +85,6 @@ badwolf_ensure_uri_scheme(gchar *text, gboolean try_file)
return g_strdup_printf("http://%s", text);
}
-static void
-badwolf_about_dialog(GtkWindow *main_window)
-{
- // clang-format off
- gtk_show_about_dialog(
- main_window,
- "license", "SPDX-License-Identifier: BSD-3-Clause",
- "copyright", "2019 Haelwenn (lanodan) Monnier <contact+badwolf@hacktivis.me>",
- "website", homepage,
- "comments", "Minimalist and privacy-oriented WebKitGTK+ browser",
- "version", version,
- //FIXME: "logo-icon-name", g_get_application_name(),
- NULL
- );
- // clang-format on
-}
-
static gboolean
WebViewCb_close(WebKitWebView *webView, gpointer user_data)
{
@@ -125,137 +102,6 @@ WebViewCb_close(WebKitWebView *webView, gpointer user_data)
return TRUE;
}
-static void
-toggle_caret_browsing(WebKitWebView *webView)
-{
- WebKitSettings *settings = webkit_web_view_get_settings(webView);
-
- webkit_settings_set_enable_caret_browsing(settings,
- !webkit_settings_get_enable_caret_browsing(settings));
-
- webkit_web_view_set_settings(webView, settings);
-}
-
-/* commonCb_key_press_event: Global callback for keybindings
- *
- * Theses shortcuts should be avoided as much as possible:
- * - Single key shortcuts (ie. backspace and space)
- * - Triple key shortcuts (except for Ctrl+Shift)
- * - Unix Terminal shortcuts (specially Ctrl-W)
- *
- * loosely follows https://developer.gnome.org/hig/stable/keyboard-input.html
- */
-static gboolean
-commonCb_key_press_event(struct Window *window, GdkEvent *event, struct Client *browser)
-{
- GtkNotebook *notebook = GTK_NOTEBOOK(window->notebook);
-
- if(((GdkEventKey *)event)->state & GDK_CONTROL_MASK)
- {
- if(browser != NULL)
- {
- switch(((GdkEventKey *)event)->keyval)
- {
- case GDK_KEY_F4: webkit_web_view_try_close(browser->webView); return TRUE;
- case GDK_KEY_r:
- if(((GdkEventKey *)event)->state & GDK_SHIFT_MASK)
- webkit_web_view_reload_bypass_cache(browser->webView);
- else
- webkit_web_view_reload(browser->webView);
-
- return TRUE;
- case GDK_KEY_f: gtk_widget_grab_focus(browser->search); return TRUE;
- case GDK_KEY_l: gtk_widget_grab_focus(browser->location); return TRUE;
- case GDK_KEY_bracketleft: webkit_web_view_go_back(browser->webView); return TRUE;
- case GDK_KEY_bracketright: webkit_web_view_go_forward(browser->webView); return TRUE;
- case GDK_KEY_0:
- webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(browser->webView), 1);
- return TRUE;
- }
- }
- else
- {
- switch(((GdkEventKey *)event)->keyval)
- {
- case GDK_KEY_Page_Down: gtk_notebook_next_page(notebook); return TRUE;
- case GDK_KEY_Page_Up: gtk_notebook_prev_page(notebook); return TRUE;
- case GDK_KEY_t: badwolf_new_tab(notebook, new_browser(window, NULL, NULL)); return TRUE;
- }
- }
- }
-
- if((((GdkEventKey *)event)->state & GDK_MOD1_MASK))
- {
- if((browser != NULL) && (((GdkEventKey *)event)->keyval == GDK_KEY_d))
- {
- webkit_web_view_try_close(browser->webView);
- return TRUE;
- }
-
- switch(((GdkEventKey *)event)->keyval)
- {
- case GDK_KEY_Left: gtk_notebook_prev_page(notebook); return TRUE;
- case GDK_KEY_Right: gtk_notebook_next_page(notebook); return TRUE;
- }
- if((((GdkEventKey *)event)->keyval >= GDK_KEY_0) &&
- (((GdkEventKey *)event)->keyval <= GDK_KEY_9))
- gtk_notebook_set_current_page(notebook, (gint)(((GdkEventKey *)event)->keyval - GDK_KEY_1));
- }
-
- if(browser != NULL)
- {
- switch(((GdkEventKey *)event)->keyval)
- {
- case GDK_KEY_F5: webkit_web_view_reload(browser->webView); return TRUE;
- case GDK_KEY_F7: toggle_caret_browsing(browser->webView); return TRUE;
- case GDK_KEY_F12:
- webkit_web_inspector_show(webkit_web_view_get_inspector(browser->webView));
- return TRUE;
- }
- }
- else
- {
- switch(((GdkEventKey *)event)->keyval)
- {
- case GDK_KEY_F1: badwolf_about_dialog(GTK_WINDOW(window->main_window)); return TRUE;
- }
- }
-
- 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->window, event, browser)) return TRUE;
-
- return FALSE;
-}
-
-static gboolean
-boxCb_key_press_event(GtkWidget *widget, GdkEvent *event, gpointer user_data)
-{
- (void)widget;
- struct Client *browser = (struct Client *)user_data;
-
- if(commonCb_key_press_event(browser->window, event, browser)) return TRUE;
-
- return FALSE;
-}
-
-static gboolean
-main_windowCb_key_press_event(GtkWidget *widget, GdkEvent *event, gpointer user_data)
-{
- (void)widget;
- struct Window *window = (struct Window *)user_data;
-
- if(commonCb_key_press_event(window, event, NULL)) return TRUE;
-
- return FALSE;
-}
static gboolean
WebViewCb_web_process_terminated(WebKitWebView *webView,
WebKitWebProcessTerminationReason reason,