diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/callback.c | 6 | ||||
-rw-r--r-- | src/dwb.c | 28 | ||||
-rw-r--r-- | src/dwb.h | 2 |
3 files changed, 36 insertions, 0 deletions
diff --git a/src/callback.c b/src/callback.c index dfa5c54c..5388375f 100644 --- a/src/callback.c +++ b/src/callback.c @@ -167,6 +167,12 @@ callback_key_press(GtkWidget *w, GdkEventKey *e) { dwb_change_mode(NORMAL_MODE, true); ret = false; } +#if 0 + else if(e->state == GDK_SHIFT_MASK && e->keyval == GDK_KEY_Insert) { + dwb_paste_primary(); + return true; + } +#endif else if (dwb_eval_override_key(e, CP_OVERRIDE_ALL)) ret = true; else if (mode & INSERT_MODE) { @@ -698,6 +698,34 @@ dwb_set_clipboard(const char *text, GdkAtom atom) { return ret; }/*}}}*/ +#if 0 +void +dwb_paste_primary() { + char *c_text = NULL; + GtkClipboard *p_clip = gtk_widget_get_clipboard(CURRENT_WEBVIEW_WIDGET(), GDK_SELECTION_PRIMARY); + if (p_clip == NULL) + return; + char *p_text = gtk_clipboard_wait_for_text(p_clip); + if (p_text == NULL) + return; + GtkClipboard *c_clip = gtk_widget_get_clipboard(CURRENT_WEBVIEW_WIDGET(), GDK_NONE); + if (c_clip == NULL) + return; + c_text = gtk_clipboard_wait_for_text(c_clip); + gtk_clipboard_set_text(c_clip, p_text, -1); + webkit_web_view_paste_clipboard(CURRENT_WEBVIEW()); + if (c_clip != NULL) { + if (c_text != NULL) + gtk_clipboard_set_text(c_clip, c_text, -1); + else { + // clear clipboard + } + } + g_free(p_text); + g_free(c_text); +} +#endif + /* dwb_scroll (Glist *gl, double step, ScrollDirection dir) {{{*/ void dwb_scroll(GList *gl, double step, ScrollDirection dir) { @@ -904,6 +904,8 @@ void dwb_set_open_mode(Open); DwbStatus dwb_set_clipboard(const char *text, GdkAtom atom); char * dwb_clipboard_get_text(GdkAtom atom); +void dwb_paste_primary(void); + DwbStatus dwb_open_in_editor(void); gboolean dwb_confirm(GList *gl, char *prompt, ...); |