diff options
author | Dieter Plaetinck <dieter@plaetinck.be> | 2009-05-03 11:13:11 +0200 |
---|---|---|
committer | Dieter Plaetinck <dieter@plaetinck.be> | 2009-05-03 11:13:11 +0200 |
commit | c03a12dbda40090e77ff8bee952a500997870dc1 (patch) | |
tree | 937e8ae6350991b906722776c90b9b963ecf9830 /uzbl.c | |
parent | 0536ddbc7d0b2b749664ec148d6a1d3be5973390 (diff) | |
parent | bf2026cfd20fc2f0a8ea67f6a81816734f625473 (diff) |
Merge branch 'dus/master' into experimental
Diffstat (limited to 'uzbl.c')
-rw-r--r-- | uzbl.c | 48 |
1 files changed, 32 insertions, 16 deletions
@@ -307,20 +307,20 @@ VIEWFUNC(go_forward) static struct {char *name; Command command;} cmdlist[] = { - { "back", view_go_back }, - { "forward", view_go_forward }, - { "scroll_vert", scroll_vert }, - { "scroll_horz", scroll_horz }, - { "reload", view_reload, }, //Buggy - { "refresh", view_reload, }, /* for convenience, will change */ - { "stop", view_stop_loading, }, - { "zoom_in", view_zoom_in, }, //Can crash (when max zoom reached?). - { "zoom_out", view_zoom_out, }, - { "uri", load_uri }, - { "toggle_status", toggle_status_cb }, - { "spawn", spawn }, - { "exit", close_uzbl }, - { "insert_mode", set_insert_mode } + { "back", view_go_back }, + { "forward", view_go_forward }, + { "scroll_vert", scroll_vert }, + { "scroll_horz", scroll_horz }, + { "reload", view_reload, }, //Buggy + { "refresh", view_reload, }, /* for convenience, will change */ + { "stop", view_stop_loading, }, + { "zoom_in", view_zoom_in, }, //Can crash (when max zoom reached?). + { "zoom_out", view_zoom_out, }, + { "uri", load_uri }, + { "toggle_status", toggle_status_cb }, + { "spawn", spawn }, + { "exit", close_uzbl }, + { "insert_mode", set_insert_mode } }; static void @@ -668,7 +668,7 @@ update_title (void) { g_free (title_long); g_free (title_short); } - + static gboolean key_press_cb (WebKitWebView* page, GdkEventKey* event) { @@ -688,7 +688,7 @@ key_press_cb (WebKitWebView* page, GdkEventKey* event) return TRUE; } - if (insert_mode && event->state != modmask) + if (insert_mode && (event->state & modmask)) return FALSE; if (event->keyval == GDK_Escape) { @@ -697,6 +697,22 @@ key_press_cb (WebKitWebView* page, GdkEventKey* event) return TRUE; } + //Insert without shift - insert from clipboard; Insert with shift - insert from primary + if (event->keyval == GDK_Insert) { + gchar * str; + if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) { + str = gtk_clipboard_wait_for_text (gtk_clipboard_get (GDK_SELECTION_PRIMARY)); + } else { + str = gtk_clipboard_wait_for_text (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD)); + } + if (str) { + g_string_append_printf (keycmd, "%s", str); + update_title (); + free (str); + } + return TRUE; + } + if ((event->keyval == GDK_BackSpace) && (keycmd->len > 0)) { g_string_truncate(keycmd, keycmd->len - 1); update_title(); |