]> git.armaanb.net Git - chorizo.git/commitdiff
draft 8 draft
authorArmaan Bhojwani <me@armaanb.net>
Sun, 31 Oct 2021 13:53:10 +0000 (09:53 -0400)
committerArmaan Bhojwani <me@armaanb.net>
Sun, 31 Oct 2021 14:45:55 +0000 (10:45 -0400)
Makefile
browser.c
chorizo-usage.1
chorizo.h
shortcuts.c
user-scripts/mouseover.js [new file with mode: 0644]

index 7d74b4a887835f7601910288dbc993cbd72da197..f634e8864d8d3961746872c9948b771f9aa7a5b3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,6 @@
 CFLAGS += -Wno-unused-parameter -Wunknown-warning-option -D_XOPEN_SOURCE="700"
 LIBS = `pkg-config --cflags --libs gtk+-3.0 glib-2.0 webkit2gtk-4.0`
 CFLAGS += -Wno-unused-parameter -Wunknown-warning-option -D_XOPEN_SOURCE="700"
 LIBS = `pkg-config --cflags --libs gtk+-3.0 glib-2.0 webkit2gtk-4.0`
+EXTENSIONS = extensions/we_adblock
 PREFIX = /usr/local
 bindir = $(DESTDIR)$(PREFIX)/bin
 libdir = $(DESTDIR)$(PREFIX)/lib
 PREFIX = /usr/local
 bindir = $(DESTDIR)$(PREFIX)/bin
 libdir = $(DESTDIR)$(PREFIX)/lib
@@ -23,11 +24,10 @@ headers:
        mv tmp config.h
        mv tmp2 chorizo.h
 
        mv tmp config.h
        mv tmp2 chorizo.h
 
-extensions:
-       for i in extensions/*.c; do \
-               outp=$$(echo "$$i" | sed 's/\$\.c/.so/g'); \
-               $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $$outp -fPIC $$i $(LIBS); \
-       done
+$(EXTENSIONS):
+       $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@.so -fPIC $@.c $(LIBS);
+
+extensions: $(EXTENSIONS)
 
 install: all
        mkdir -p $(bindir) \
 
 install: all
        mkdir -p $(bindir) \
index 1d31c9e71c82d92f7d841fd249b69235bf68b528..93df003240ee8855f62cad9dbc56c951ae324381 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -146,11 +146,13 @@ client_new(const gchar *uri, WebKitWebView *related_wv)
                                if (g_str_has_suffix(path, ".js")) {
                                        g_file_get_contents(path, &source, NULL,
                                                            NULL);
                                if (g_str_has_suffix(path, ".js")) {
                                        g_file_get_contents(path, &source, NULL,
                                                            NULL);
+                                       // clang-format off
                                        wkscript = webkit_user_script_new(
                                                source,
                                        wkscript = webkit_user_script_new(
                                                source,
-                                               WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
-                                               WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START,
+                                         WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
+                                   WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START,
                                                NULL, NULL);
                                                NULL, NULL);
+                                       // clang-format on
                                        webkit_user_content_manager_add_script(
                                                ucm, wkscript);
                                        webkit_user_script_unref(wkscript);
                                        webkit_user_content_manager_add_script(
                                                ucm, wkscript);
                                        webkit_user_script_unref(wkscript);
@@ -169,13 +171,15 @@ client_new(const gchar *uri, WebKitWebView *related_wv)
                                if (g_str_has_suffix(path, ".css")) {
                                        g_file_get_contents(path, &source, NULL,
                                                            NULL);
                                if (g_str_has_suffix(path, ".css")) {
                                        g_file_get_contents(path, &source, NULL,
                                                            NULL);
+                                       // clang-format off
                                        wkstyle = webkit_user_style_sheet_new(
                                                source,
                                        wkstyle = webkit_user_style_sheet_new(
                                                source,
-                                               WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
-                                               WEBKIT_USER_STYLE_LEVEL_USER,
+                                         WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
+                                                  WEBKIT_USER_STYLE_LEVEL_USER,
                                                NULL, NULL);
                                                NULL, NULL);
-                                       webkit_user_content_manager_add_style_sheet(
+                                   webkit_user_content_manager_add_style_sheet(
                                                ucm, wkstyle);
                                                ucm, wkstyle);
+                                       // clang-format on
                                        webkit_user_style_sheet_unref(wkstyle);
                                }
                                g_free(path);
                                        webkit_user_style_sheet_unref(wkstyle);
                                }
                                g_free(path);
@@ -190,9 +194,12 @@ client_new(const gchar *uri, WebKitWebView *related_wv)
 
                c->settings = webkit_web_view_get_settings(
                        WEBKIT_WEB_VIEW(c->web_view));
 
                c->settings = webkit_web_view_get_settings(
                        WEBKIT_WEB_VIEW(c->web_view));
-               if (cfg.verbose)
-                       webkit_settings_set_enable_write_console_messages_to_stdout(
+               if (cfg.verbose) {
+                       // clang-format off
+               webkit_settings_set_enable_write_console_messages_to_stdout(
                                c->settings, true);
                                c->settings, true);
+                       // clang-format on
+               }
                webkit_settings_set_enable_developer_extras(c->settings, TRUE);
        } else {
                c->web_view = webkit_web_view_new_with_related_view(related_wv);
                webkit_settings_set_enable_developer_extras(c->settings, TRUE);
        } else {
                c->web_view = webkit_web_view_new_with_related_view(related_wv);
@@ -492,11 +499,7 @@ changed_title(GObject *obj, GParamSpec *pspec, gpointer data)
        u = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
        t = webkit_web_view_get_title(WEBKIT_WEB_VIEW(c->web_view));
 
        u = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
        t = webkit_web_view_get_title(WEBKIT_WEB_VIEW(c->web_view));
 
-       u = u == NULL ? "chorizo" : u;
-       u = u[0] == 0 ? "chorizo" : u;
-
-       t = t == NULL ? u : t;
-       t = t[0] == 0 ? u : t;
+       if (t == NULL) t = (u == NULL) ? "chorizo" : u;
 
        gchar *name = malloc(strlen(t) + 4);
        if (!name) allocfail();
 
        gchar *name = malloc(strlen(t) + 4);
        if (!name) allocfail();
@@ -525,11 +528,13 @@ changed_uri(GObject *obj, GParamSpec *pspec, gpointer data)
 
                // No g_get_user_state_dir unfortunately
                gchar *state_env = getenv("XDG_STATE_DIR");
 
                // No g_get_user_state_dir unfortunately
                gchar *state_env = getenv("XDG_STATE_DIR");
-               gchar *state_dir = (state_env) ?
-                                                state_env :
-                                                g_build_filename(g_get_home_dir(),
+               // clang-format off
+               gchar *state_dir = (state_env)
+                                       ? state_env
+                                       : g_build_filename(g_get_home_dir(),
                                                            ".local", "state",
                                                            "chorizo", NULL);
                                                            ".local", "state",
                                                            "chorizo", NULL);
+               // clang-format on
 
                gchar *history_file =
                        g_build_filename(state_dir, "history", NULL);
 
                gchar *history_file =
                        g_build_filename(state_dir, "history", NULL);
@@ -540,7 +545,8 @@ changed_uri(GObject *obj, GParamSpec *pspec, gpointer data)
                                fprintf(fp, "%s\n", t);
                                fclose(fp);
                        } else {
                                fprintf(fp, "%s\n", t);
                                fclose(fp);
                        } else {
-                               perror("chorizo: error: could not open history file");
+                               perror("chorizo: error: could not open history"
+                                      "file");
                        }
                }
                g_free(history_file);
                        }
                }
                g_free(history_file);
@@ -639,7 +645,8 @@ grab_feeds_finished(GObject *object, GAsyncResult *result, gpointer data)
                        jsc_context_get_exception(jsc_value_get_context(value));
                if (exception != NULL) {
                        fprintf(stderr,
                        jsc_context_get_exception(jsc_value_get_context(value));
                if (exception != NULL) {
                        fprintf(stderr,
-                               "chorizo: warning: error running javascript: %s\n",
+                               "chorizo: warning: error running javascript:"
+                               "%s\n",
                                jsc_exception_get_message(exception));
                } else {
                        c->feed_html = str_value;
                                jsc_exception_get_message(exception));
                } else {
                        c->feed_html = str_value;
@@ -910,11 +917,14 @@ trust_user_certs(WebKitWebContext *wc)
                        g_free(absfile);
                        if (cert == NULL)
                                fprintf(stderr,
                        g_free(absfile);
                        if (cert == NULL)
                                fprintf(stderr,
-                                       "chorizo: warning: could not load trusted cert: %s\n",
+                                       "chorizo: warning: could not load"
+                                       "trusted cert: %s\n",
                                        file);
                        else
                                        file);
                        else
-                               webkit_web_context_allow_tls_certificate_for_host(
+                               // clang-format off
+                             webkit_web_context_allow_tls_certificate_for_host(
                                        wc, cert, file);
                                        wc, cert, file);
+                       // clang-format on
                        file = g_dir_read_name(dir);
                }
                g_dir_close(dir);
                        file = g_dir_read_name(dir);
                }
                g_dir_close(dir);
index 7f1199345982557ec5bb833886b88e57c37c3cfc..4a0c8d7df52b979bcb46c3ddb634ef2851e0f814 100644 (file)
@@ -36,6 +36,8 @@ These scripts will be run every time a page is loaded.
 .Pp
 The chorizo repository contains the following optional scripts:
 .Bl -tag
 .Pp
 The chorizo repository contains the following optional scripts:
 .Bl -tag
+.It mouseover.js
+Shows password when hovering over field.
 .It hints.js
 Provides link hints.
 Press "f" to activate link hints for opening in the current tab,
 .It hints.js
 Provides link hints.
 Press "f" to activate link hints for opening in the current tab,
index d6913ee42476033f814b8f7ce0d3e1746f600786..18ba1c2b0e675633952db2aa07164edadb9a0432 100644 (file)
--- a/chorizo.h
+++ b/chorizo.h
@@ -19,57 +19,66 @@ extern int cooperative_pipe_fp;
 extern gchar *fifopath;
 extern char **closed_tabs;
 extern size_t num_closed;
 extern gchar *fifopath;
 extern char **closed_tabs;
 extern size_t num_closed;
-gboolean isearch_counted_matches(GtkWidget *widget,guint matches,gpointer data);
+gboolean isearch_counted_matches(GtkWidget *widget, guint matches,
+                                gpointer data);
 gboolean quit_if_nothing_active(void);
 gboolean quit_if_nothing_active(void);
-gboolean remote_msg(GIOChannel *channel,GIOCondition condition,gpointer data);
+gboolean remote_msg(GIOChannel *channel, GIOCondition condition, gpointer data);
 void allocfail(void);
 void allocfail(void);
-void client_destroy(GtkWidget *widget,gpointer data);
+void client_destroy(GtkWidget *widget, gpointer data);
 typedef struct Client Client;
 typedef struct Client Client;
-void set_uri(const char *uri,struct Client *c);
-WebKitWebView *client_new(const gchar *uri,WebKitWebView *related_wv);
-WebKitWebView *client_new_request(WebKitWebView *web_view,WebKitNavigationAction *navigation_action,gpointer data);
-void mkdirp(const char *dir,mode_t mode);
+void set_uri(const char *uri, struct Client *c);
+WebKitWebView *client_new(const gchar *uri, WebKitWebView *related_wv);
+WebKitWebView *client_new_request(WebKitWebView *web_view,
+                                 WebKitNavigationAction *navigation_action,
+                                 gpointer data);
+void mkdirp(const char *dir, mode_t mode);
 void cooperation_setup(void);
 void cooperation_setup(void);
-void changed_load_progress(GObject *obj,GParamSpec *pspec,gpointer data);
-void changed_favicon(GObject *obj,GParamSpec *pspec,gpointer data);
-void changed_title(GObject *obj,GParamSpec *pspec,gpointer data);
-void changed_uri(GObject *obj,GParamSpec *pspec,gpointer data);
-gboolean crashed_web_view(WebKitWebView *web_view,gpointer data);
-gboolean decide_policy(WebKitWebView *web_view,WebKitPolicyDecision *decision,WebKitPolicyDecisionType type,gpointer data);
+void changed_load_progress(GObject *obj, GParamSpec *pspec, gpointer data);
+void changed_favicon(GObject *obj, GParamSpec *pspec, gpointer data);
+void changed_title(GObject *obj, GParamSpec *pspec, gpointer data);
+void changed_uri(GObject *obj, GParamSpec *pspec, gpointer data);
+gboolean crashed_web_view(WebKitWebView *web_view, gpointer data);
+gboolean decide_policy(WebKitWebView *web_view, WebKitPolicyDecision *decision,
+                      WebKitPolicyDecisionType type, gpointer data);
 gchar *ensure_uri_scheme(const gchar *t);
 gchar *ensure_uri_scheme(const gchar *t);
-void grab_feeds_finished(GObject *object,GAsyncResult *result,gpointer data);
-void hover_web_view(WebKitWebView *web_view,WebKitHitTestResult *ht,guint modifiers,gpointer data);
-void icon_location(GtkEntry *entry,GtkEntryIconPosition icon_pos,GdkEvent *event,gpointer data);
+void grab_feeds_finished(GObject *object, GAsyncResult *result, gpointer data);
+void hover_web_view(WebKitWebView *web_view, WebKitHitTestResult *ht,
+                   guint modifiers, gpointer data);
+void icon_location(GtkEntry *entry, GtkEntryIconPosition icon_pos,
+                  GdkEvent *event, gpointer data);
 void init_default_web_context(void);
 void init_default_web_context(void);
-void isearch(gpointer data,gint direction);
-void isearch_init(struct Client *c,int direction);
+void isearch(gpointer data, gint direction);
+void isearch_init(struct Client *c, int direction);
 void reopen_tab(void);
 void mainwindow_setup(void);
 void mainwindow_title(gint idx);
 void reopen_tab(void);
 void mainwindow_setup(void);
 void mainwindow_title(gint idx);
-void notebook_switch_page(GtkNotebook *nb,GtkWidget *p,guint idx,gpointer data);
-void show_web_view(WebKitWebView *web_view,gpointer data);
+void notebook_switch_page(GtkNotebook *nb, GtkWidget *p, guint idx,
+                         gpointer data);
+void show_web_view(WebKitWebView *web_view, gpointer data);
 void trust_user_certs(WebKitWebContext *wc);
 void version(void);
 void trust_user_certs(WebKitWebContext *wc);
 void version(void);
-gboolean download_handle(WebKitDownload *,gchar *,gpointer);
-gboolean download_handle(WebKitDownload *download,gchar *suggested_filename,gpointer data);
-void download_click(GtkToolButton *,gpointer);
-void download_click(GtkToolButton *tb,gpointer data);
-void download_cancel(GtkMenuItem *,gpointer);
-void download_cancel(GtkMenuItem *tb,gpointer data);
-gboolean downloadmanager_delete(GtkWidget *,gpointer);
-gboolean downloadmanager_delete(GtkWidget *obj,gpointer data);
+gboolean download_handle(WebKitDownload *, gchar *, gpointer);
+gboolean download_handle(WebKitDownload *download, gchar *suggested_filename,
+                        gpointer data);
+void download_click(GtkToolButton *, gpointer);
+void download_click(GtkToolButton *tb, gpointer data);
+void download_cancel(GtkMenuItem *, gpointer);
+void download_cancel(GtkMenuItem *tb, gpointer data);
+gboolean downloadmanager_delete(GtkWidget *, gpointer);
+gboolean downloadmanager_delete(GtkWidget *obj, gpointer data);
 extern gint downloads;
 extern gint downloads;
-gboolean key_downloadmanager(GtkWidget *widget,GdkEvent *event,gpointer data);
-void changed_download_progress(GObject *obj,GParamSpec *pspec,gpointer data);
-void download_finished(WebKitDownload *download,gpointer data);
-void download_start(WebKitWebView *web_view,WebKitDownload *download,gpointer data);
+gboolean key_downloadmanager(GtkWidget *widget, GdkEvent *event, gpointer data);
+void changed_download_progress(GObject *obj, GParamSpec *pspec, gpointer data);
+void download_finished(WebKitDownload *download, gpointer data);
+void download_start(WebKitWebView *web_view, WebKitDownload *download,
+                   gpointer data);
 typedef struct DownloadItem DownloadItem;
 const char *download_get_path(struct DownloadItem *payload);
 typedef struct DownloadItem DownloadItem;
 const char *download_get_path(struct DownloadItem *payload);
-void download_hide(GtkMenuItem *tb,gpointer data);
-void download_delete(GtkMenuItem *tb,gpointer data);
-void download_copy_url(GtkMenuItem *tb,gpointer data);
-void download_copy_path(GtkMenuItem *tb,gpointer data);
-void download_xdg_open(GtkMenuItem *tb,gpointer data);
+void download_hide(GtkMenuItem *tb, gpointer data);
+void download_delete(GtkMenuItem *tb, gpointer data);
+void download_copy_url(GtkMenuItem *tb, gpointer data);
+void download_copy_path(GtkMenuItem *tb, gpointer data);
+void download_xdg_open(GtkMenuItem *tb, gpointer data);
 void downloadmanager_setup(void);
 void downloadmanager_show(void);
 struct Client {
 void downloadmanager_setup(void);
 void downloadmanager_show(void);
 struct Client {
@@ -91,14 +100,14 @@ struct DownloadItem {
        GtkToolButton *tb;
        WebKitDownload *download;
 };
        GtkToolButton *tb;
        WebKitDownload *download;
 };
-gboolean key_common(GtkWidget *widget,GdkEvent *event,gpointer data);
-void change_tab(int idx,struct Client *c);
+gboolean key_common(GtkWidget *widget, GdkEvent *event, gpointer data);
+void change_tab(int idx, struct Client *c);
 void reorder_current_tab(int target);
 void reorder_current_tab(int target);
-gboolean key_isearch(GtkWidget *widget,GdkEvent *event,gpointer data);
-gboolean key_wsearch(GtkWidget *widget,GdkEvent *event,gpointer data);
-gboolean key_location(GtkWidget *widget,GdkEvent *event,gpointer data);
-gboolean key_tablabel(GtkWidget *widget,GdkEvent *event,gpointer data);
-gboolean key_web_view(GtkWidget *widget,GdkEvent *event,gpointer data);
+gboolean key_isearch(GtkWidget *widget, GdkEvent *event, gpointer data);
+gboolean key_wsearch(GtkWidget *widget, GdkEvent *event, gpointer data);
+gboolean key_location(GtkWidget *widget, GdkEvent *event, gpointer data);
+gboolean key_tablabel(GtkWidget *widget, GdkEvent *event, gpointer data);
+gboolean key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data);
 #define INTERFACE 0
 #define EXPORT_INTERFACE 0
 #define LOCAL_INTERFACE 0
 #define INTERFACE 0
 #define EXPORT_INTERFACE 0
 #define LOCAL_INTERFACE 0
index e881cdcbbababa31a66954104838292ce5b1e0b6..054d48d429454609da61aa22bc0c999ec8685a8b 100644 (file)
@@ -6,8 +6,11 @@
 gboolean
 key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
 gboolean
 key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
+       WebKitPrintOperation *operation;
+       gboolean muted;
        struct Client *c = (struct Client *)data;
        gdouble now;
        struct Client *c = (struct Client *)data;
        gdouble now;
+
        if (event->type == GDK_KEY_PRESS) {
                guint mask = gtk_accelerator_get_default_mod_mask();
                int key = ((GdkEventKey *)event)->keyval;
        if (event->type == GDK_KEY_PRESS) {
                guint mask = gtk_accelerator_get_default_mod_mask();
                int key = ((GdkEventKey *)event)->keyval;
@@ -15,30 +18,30 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
                    GDK_CONTROL_MASK) {
                        const char *uri = webkit_web_view_get_uri(
                                WEBKIT_WEB_VIEW(c->web_view));
                    GDK_CONTROL_MASK) {
                        const char *uri = webkit_web_view_get_uri(
                                WEBKIT_WEB_VIEW(c->web_view));
-                       if (GDK_KEY_y == key) {
+                       switch (key) {
+                       case GDK_KEY_y:
                                downloadmanager_show();
                                return TRUE;
                                downloadmanager_show();
                                return TRUE;
-                       } else if (GDK_KEY_h == key) {
+                       case GDK_KEY_h:
                                webkit_web_view_go_back(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
                                webkit_web_view_go_back(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
-                       } else if (GDK_KEY_l == key) {
+                       case GDK_KEY_l:
                                webkit_web_view_go_forward(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
                                webkit_web_view_go_forward(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
-                       } else if (GDK_KEY_s == key) {
+                       case GDK_KEY_s:
                                gtk_widget_grab_focus(c->location);
                                return TRUE;
                                gtk_widget_grab_focus(c->location);
                                return TRUE;
-                       } else if (GDK_KEY_p == key) {
-                               WebKitPrintOperation *operation =
-                                       webkit_print_operation_new(
-                                               WEBKIT_WEB_VIEW(c->web_view));
+                       case GDK_KEY_p:
+                               operation = webkit_print_operation_new(
+                                       WEBKIT_WEB_VIEW(c->web_view));
                                GtkWidget *toplevel =
                                        gtk_widget_get_toplevel(mw.win);
                                webkit_print_operation_run_dialog(
                                        operation, GTK_WINDOW(toplevel));
                                return TRUE;
                                GtkWidget *toplevel =
                                        gtk_widget_get_toplevel(mw.win);
                                webkit_print_operation_run_dialog(
                                        operation, GTK_WINDOW(toplevel));
                                return TRUE;
-                       } else if (GDK_KEY_g == key) {
+                       case GDK_KEY_g:
                                isearch(c, 2);
                                gtk_widget_grab_focus(c->web_view);
                                if (uri)
                                isearch(c, 2);
                                gtk_widget_grab_focus(c->web_view);
                                if (uri)
@@ -46,7 +49,8 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
                                                GTK_ENTRY(c->location), uri);
                                webkit_web_view_run_javascript(
                                        WEBKIT_WEB_VIEW(c->web_view),
                                                GTK_ENTRY(c->location), uri);
                                webkit_web_view_run_javascript(
                                        WEBKIT_WEB_VIEW(c->web_view),
-                                       "window.getSelection().removeAllRanges();"
+                                       "window.getSelection()"
+                                       ".removeAllRanges();"
                                        "document.activeElement.blur();",
                                        NULL, NULL, c);
                                gtk_widget_hide(c->isearch_box);
                                        "document.activeElement.blur();",
                                        NULL, NULL, c);
                                gtk_widget_hide(c->isearch_box);
@@ -55,137 +59,138 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
                                gtk_editable_set_position(
                                        GTK_EDITABLE(c->wsearch), -1);
                                return TRUE;
                                gtk_editable_set_position(
                                        GTK_EDITABLE(c->wsearch), -1);
                                return TRUE;
-                       } else if (GDK_KEY_r == key) {
+                       case GDK_KEY_r:
                                webkit_web_view_reload_bypass_cache(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
                                webkit_web_view_reload_bypass_cache(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                return TRUE;
-                       } else if (GDK_KEY_j == key) {
+                       case GDK_KEY_j:
                                for (int i = 0; i <= cfg_scroll_lines - 1;
                                     i++) {
                                        event->key.keyval = GDK_KEY_Down;
                                        gdk_event_put(event);
                                }
                                return TRUE;
                                for (int i = 0; i <= cfg_scroll_lines - 1;
                                     i++) {
                                        event->key.keyval = GDK_KEY_Down;
                                        gdk_event_put(event);
                                }
                                return TRUE;
-                       } else if (GDK_KEY_k == key) {
+                       case GDK_KEY_k:
                                for (int i = 0; i <= cfg_scroll_lines - 1;
                                     i++) {
                                        event->key.keyval = GDK_KEY_Up;
                                        gdk_event_put(event);
                                }
                                return TRUE;
                                for (int i = 0; i <= cfg_scroll_lines - 1;
                                     i++) {
                                        event->key.keyval = GDK_KEY_Up;
                                        gdk_event_put(event);
                                }
                                return TRUE;
-                       } else if (GDK_KEY_f == key) {
+                       case GDK_KEY_f:
                                isearch_init(c, 1);
                                return TRUE;
                                isearch_init(c, 1);
                                return TRUE;
-                       } else if (GDK_KEY_q == key) {
+                       case GDK_KEY_q:
                                client_destroy(NULL, c);
                                return TRUE;
                                client_destroy(NULL, c);
                                return TRUE;
-                       } else if (GDK_KEY_1 == key) {
+                       case GDK_KEY_1:
                                change_tab(0, c);
                                return TRUE;
                                change_tab(0, c);
                                return TRUE;
-                       } else if (GDK_KEY_2 == key) {
+                       case GDK_KEY_2:
                                change_tab(1, c);
                                return TRUE;
                                change_tab(1, c);
                                return TRUE;
-                       } else if (GDK_KEY_3 == key) {
+                       case GDK_KEY_3:
                                change_tab(2, c);
                                return TRUE;
                                change_tab(2, c);
                                return TRUE;
-                       } else if (GDK_KEY_4 == key) {
+                       case GDK_KEY_4:
                                change_tab(3, c);
                                return TRUE;
                                change_tab(3, c);
                                return TRUE;
-                       } else if (GDK_KEY_5 == key) {
+                       case GDK_KEY_5:
                                change_tab(4, c);
                                return TRUE;
                                change_tab(4, c);
                                return TRUE;
-                       } else if (GDK_KEY_6 == key) {
+                       case GDK_KEY_6:
                                change_tab(5, c);
                                return TRUE;
                                change_tab(5, c);
                                return TRUE;
-                       } else if (GDK_KEY_7 == key) {
+                       case GDK_KEY_7:
                                change_tab(6, c);
                                gtk_notebook_set_current_page(
                                        GTK_NOTEBOOK(mw.notebook), 6);
                                return TRUE;
                                change_tab(6, c);
                                gtk_notebook_set_current_page(
                                        GTK_NOTEBOOK(mw.notebook), 6);
                                return TRUE;
-                       } else if (GDK_KEY_8 == key) {
+                       case GDK_KEY_8:
                                change_tab(7, c);
                                return TRUE;
                                change_tab(7, c);
                                return TRUE;
-                       } else if (GDK_KEY_9 == key) {
+                       case GDK_KEY_9:
                                change_tab(8, c);
                                return TRUE;
                                change_tab(8, c);
                                return TRUE;
-                       } else if (GDK_KEY_u == key) {
+                       case GDK_KEY_u:
                                gtk_notebook_prev_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
                                gtk_notebook_prev_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
-                       } else if (GDK_KEY_m == key) {
-                               gboolean muted = webkit_web_view_get_is_muted(
+                       case GDK_KEY_m:
+                               muted = webkit_web_view_get_is_muted(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_is_muted(
                                        WEBKIT_WEB_VIEW(c->web_view), !muted);
                                changed_title(G_OBJECT(c->web_view), NULL, c);
                                return TRUE;
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_is_muted(
                                        WEBKIT_WEB_VIEW(c->web_view), !muted);
                                changed_title(G_OBJECT(c->web_view), NULL, c);
                                return TRUE;
-                       } else if (GDK_KEY_t == key) {
+                       case GDK_KEY_t:
                                switch_tab = TRUE;
                                client_new(cfg_home_uri, NULL);
                                return TRUE;
                                switch_tab = TRUE;
                                client_new(cfg_home_uri, NULL);
                                return TRUE;
-                       } else if (GDK_KEY_bracketleft == key) {
+                       case GDK_KEY_bracketleft:
                                reopen_tab();
                                return TRUE;
                                reopen_tab();
                                return TRUE;
-                       } else if ((GDK_KEY_i == key) || (GDK_KEY_Tab == key)) {
+                       case GDK_KEY_i:
                                gtk_notebook_next_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
                                gtk_notebook_next_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
-                       } else if (GDK_KEY_d == key) {
+                       case GDK_KEY_d:
                                gtk_widget_grab_focus(c->wsearch);
                                return TRUE;
                                gtk_widget_grab_focus(c->wsearch);
                                return TRUE;
-                       } else if (GDK_KEY_equal == key) {
+                       case GDK_KEY_equal:
                                now = webkit_web_view_get_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view),
                                        now + 0.1);
                                return TRUE;
                                now = webkit_web_view_get_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view),
                                        now + 0.1);
                                return TRUE;
-                       } else if (GDK_KEY_minus == key) {
+                       case GDK_KEY_minus:
                                now = webkit_web_view_get_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view),
                                        now - 0.1);
                                return TRUE;
                                now = webkit_web_view_get_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view));
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view),
                                        now - 0.1);
                                return TRUE;
-                       } else if (GDK_KEY_0 == key) {
+                       case GDK_KEY_0:
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view), 1);
                                return TRUE;
                        }
                } else if ((((GdkEventKey *)event)->state & mask) ==
                           (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) {
                                webkit_web_view_set_zoom_level(
                                        WEBKIT_WEB_VIEW(c->web_view), 1);
                                return TRUE;
                        }
                } else if ((((GdkEventKey *)event)->state & mask) ==
                           (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) {
-                       if (GDK_KEY_ISO_Left_Tab == key) {
+                       switch (key) {
+                       case GDK_KEY_ISO_Left_Tab:
                                gtk_notebook_prev_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
                                gtk_notebook_prev_page(
                                        GTK_NOTEBOOK(mw.notebook));
                                return TRUE;
-                       } else if (GDK_KEY_T == key) {
+                       case GDK_KEY_T:
                                reopen_tab();
                                return TRUE;
                                reopen_tab();
                                return TRUE;
-                       } else if (GDK_KEY_exclam == key) {
+                       case GDK_KEY_exclam:
                                reorder_current_tab(1);
                                return TRUE;
                                reorder_current_tab(1);
                                return TRUE;
-                       } else if (GDK_KEY_at == key) {
+                       case GDK_KEY_at:
                                reorder_current_tab(2);
                                return TRUE;
                                reorder_current_tab(2);
                                return TRUE;
-                       } else if (GDK_KEY_numbersign == key) {
+                       case GDK_KEY_numbersign:
                                reorder_current_tab(3);
                                return TRUE;
                                reorder_current_tab(3);
                                return TRUE;
-                       } else if (GDK_KEY_dollar == key) {
+                       case GDK_KEY_dollar:
                                reorder_current_tab(4);
                                return TRUE;
                                reorder_current_tab(4);
                                return TRUE;
-                       } else if (GDK_KEY_percent == key) {
+                       case GDK_KEY_percent:
                                reorder_current_tab(5);
                                return TRUE;
                                reorder_current_tab(5);
                                return TRUE;
-                       } else if (GDK_KEY_asciicircum == key) {
+                       case GDK_KEY_asciicircum:
                                reorder_current_tab(6);
                                return TRUE;
                                reorder_current_tab(6);
                                return TRUE;
-                       } else if (GDK_KEY_ampersand == key) {
+                       case GDK_KEY_ampersand:
                                reorder_current_tab(7);
                                return TRUE;
                                reorder_current_tab(7);
                                return TRUE;
-                       } else if (GDK_KEY_asterisk == key) {
+                       case GDK_KEY_asterisk:
                                reorder_current_tab(8);
                                return TRUE;
                                reorder_current_tab(8);
                                return TRUE;
-                       } else if (GDK_KEY_parenleft == key) {
+                       case GDK_KEY_parenleft:
                                reorder_current_tab(9);
                                return TRUE;
                        }
                                reorder_current_tab(9);
                                return TRUE;
                        }
@@ -220,19 +225,23 @@ key_isearch(GtkWidget *widget, GdkEvent *event, gpointer data)
 
        if (event->type == GDK_KEY_PRESS) {
                int key = ((GdkEventKey *)event)->keyval;
 
        if (event->type == GDK_KEY_PRESS) {
                int key = ((GdkEventKey *)event)->keyval;
-               if ((GDK_KEY_KP_Enter == key) || (GDK_KEY_Return == key)) {
-                       int direction = (((GdkEventKey *)event)->state &
-                                        GDK_SHIFT_MASK) ?
-                                                     -1 :
-                                                     1;
+               // clang-format off
+               int direction =
+                       (((GdkEventKey *)event)->state & GDK_SHIFT_MASK)
+                               ? -1 : 1;
+               // clang-format on
+               switch (key) {
+               case GDK_KEY_KP_Enter:
+               case GDK_KEY_Return:
                        isearch(c, 0);
                        isearch(c, -1);
                        isearch(c, direction);
                        return TRUE;
                        isearch(c, 0);
                        isearch(c, -1);
                        isearch(c, direction);
                        return TRUE;
-               } else if (GDK_KEY_Escape == key) {
+               case GDK_KEY_Escape:
                        isearch(c, 2);
                        gtk_widget_hide(c->isearch_box);
                        gtk_widget_grab_focus(c->web_view);
                        isearch(c, 2);
                        gtk_widget_hide(c->isearch_box);
                        gtk_widget_grab_focus(c->web_view);
+                       return TRUE;
                }
        }
        return FALSE;
                }
        }
        return FALSE;
@@ -283,8 +292,9 @@ key_location(GtkWidget *widget, GdkEvent *event, gpointer data)
                gboolean shifted = ((((GdkEventKey *)event)->state & mask) ==
                                    GDK_SHIFT_MASK);
                int key = ((GdkEventKey *)event)->keyval;
                gboolean shifted = ((((GdkEventKey *)event)->state & mask) ==
                                    GDK_SHIFT_MASK);
                int key = ((GdkEventKey *)event)->keyval;
-
-               if ((GDK_KEY_KP_Enter == key) || (GDK_KEY_Return == key)) {
+               switch (key) {
+               case GDK_KEY_KP_Enter:
+               case GDK_KEY_Return:
                        gtk_widget_grab_focus(c->web_view);
                        t = gtk_entry_get_text(GTK_ENTRY(c->location));
                        if (shifted) {
                        gtk_widget_grab_focus(c->web_view);
                        t = gtk_entry_get_text(GTK_ENTRY(c->location));
                        if (shifted) {
@@ -296,7 +306,7 @@ key_location(GtkWidget *widget, GdkEvent *event, gpointer data)
                                        ensure_uri_scheme(t));
                        }
                        return TRUE;
                                        ensure_uri_scheme(t));
                        }
                        return TRUE;
-               } else if (GDK_KEY_Escape == key) {
+               case GDK_KEY_Escape:
                        t = webkit_web_view_get_uri(
                                WEBKIT_WEB_VIEW(c->web_view));
                        gtk_entry_set_text(GTK_ENTRY(c->location),
                        t = webkit_web_view_get_uri(
                                WEBKIT_WEB_VIEW(c->web_view));
                        gtk_entry_set_text(GTK_ENTRY(c->location),
diff --git a/user-scripts/mouseover.js b/user-scripts/mouseover.js
new file mode 100644 (file)
index 0000000..ce59a57
--- /dev/null
@@ -0,0 +1,22 @@
+// ==UserScript==
+// @name         Show Password onMouseOver
+// @namespace    http://zoolcar9.lhukie.net/
+// @include      *
+// @description         Show password when mouseover on password field
+// @author       LouCypher
+// @license      free
+// @version      0.0.1.20140630034959
+// ==/UserScript==
+window.setTimeout(function() {
+    var passFields = document.querySelectorAll("input[type='password']");
+    if (!passFields.length) return;
+    for (var i = 0; i < passFields.length; i++) {
+        passFields[i].addEventListener("mouseover", function() {
+            this.type = "text";
+        }, false);
+        passFields[i].addEventListener("mouseout", function() {
+            this.type = "password";
+        }, false);
+    }
+}, 1000)