X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=browser.c;h=e54f5493c227fae99eb5da68ca29a7cb905e6c67;hb=76db5e5b1d3c782533411bfd3d10fbfc1c0479e4;hp=3f4765d3d8bb27fc3accde23fd0843a58dbdc230;hpb=41afaa44290fce503ac8cf00156a7b8de8e680e3;p=chorizo.git diff --git a/browser.c b/browser.c index 3f4765d..e54f549 100644 --- a/browser.c +++ b/browser.c @@ -89,11 +89,13 @@ struct Configuration gboolean cooperative_instances; gboolean enable_console_to_stdout; gboolean javascript_disabled; + gboolean spellcheck_disabled; gchar *download_dir; gchar *fifo_suffix; gchar *history_file; gchar *home_uri; gchar *search_engine; + gchar *spellcheck_language; gchar *user_agent; gdouble global_zoom; gint tab_width_chars; @@ -676,9 +678,17 @@ get_config(void) cfg.tab_width_chars = (cfg.tab_width_chars) ? cfg.tab_width_chars : 20; cfg.global_zoom = g_key_file_get_double(config, "ui", "zoom_level", NULL); cfg.global_zoom = (cfg.global_zoom) ? cfg.global_zoom : 1.0; - cfg.search_engine = g_key_file_get_string(config, "ui", "search_engine", NULL); + cfg.search_engine = g_key_file_get_string(config, "ui", "search_engine", + NULL); cfg.search_engine = (cfg.search_engine) ? cfg.search_engine : "https://duckduckgo.com?q="; + cfg.spellcheck_disabled = g_key_file_get_boolean(config, "ui", + "spellcheck_disabled", NULL); + cfg.spellcheck_language = g_key_file_get_string(config, "ui", + "spellcheck_language", + NULL); + cfg.spellcheck_language = (cfg.spellcheck_language) ? cfg.spellcheck_language + : "en_US"; } void @@ -838,6 +848,11 @@ init_default_web_context(void) "cookies.db", NULL), WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE); + + const gchar * const languages[2] = {(const gchar *)cfg.spellcheck_language, + NULL}; + webkit_web_context_set_spell_checking_languages(wc, languages); + webkit_web_context_set_spell_checking_enabled(wc, !cfg.spellcheck_disabled); } void @@ -918,6 +933,10 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data) gtk_entry_set_text(GTK_ENTRY(c->location), goal); gtk_editable_set_position(GTK_EDITABLE(c->location), -1); return TRUE; + } else if (def_key("print", GDK_KEY_Print) == key) { + webkit_print_operation_run_dialog(webkit_print_operation_new(WEBKIT_WEB_VIEW(c->web_view)), + GTK_WINDOW(gtk_widget_get_toplevel(mw.win))); + return TRUE; } else if (def_key("quit", GDK_KEY_g) == key) { search(c, 2); gtk_widget_grab_focus(c->web_view); @@ -958,6 +977,33 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data) } else if (def_key("tab_close", GDK_KEY_q) == key) { client_destroy(NULL, c); return TRUE; + } else if (def_key("tab_switch_1", GDK_KEY_1) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 0); + return TRUE; + } else if (def_key("tab_switch_2", GDK_KEY_2) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 1); + return TRUE; + } else if (def_key("tab_switch_3", GDK_KEY_3) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 2); + return TRUE; + } else if (def_key("tab_switch_4", GDK_KEY_4) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 3); + return TRUE; + } else if (def_key("tab_switch_5", GDK_KEY_5) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 4); + return TRUE; + } else if (def_key("tab_switch_6", GDK_KEY_6) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 5); + return TRUE; + } else if (def_key("tab_switch_7", GDK_KEY_7) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 6); + return TRUE; + } else if (def_key("tab_switch_8", GDK_KEY_8) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 7); + return TRUE; + } else if (def_key("tab_switch_9", GDK_KEY_9) == key) { + gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), 8); + return TRUE; } else if (def_key("tab_previous", GDK_KEY_u) == key) { gtk_notebook_prev_page(GTK_NOTEBOOK(mw.notebook)); return TRUE;