Revision: 2843 http://geany.svn.sourceforge.net/geany/?rev=2843&view=rev Author: eht16 Date: 2008-07-30 18:22:51 +0000 (Wed, 30 Jul 2008)
Log Message: ----------- Make Copy & Paste clipboard keybindings also work for the VTE (closes #2029675).
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c trunk/src/vte.c trunk/src/vte.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-07-30 18:21:34 UTC (rev 2842) +++ trunk/ChangeLog 2008-07-30 18:22:51 UTC (rev 2843) @@ -7,6 +7,9 @@ * src/vte.c: Start the shell in the VTE first when the VTE is actually realized to avoid strange display bugs on some systems (closes #1844985). + * src/callbacks.c, src/vte.c, src/vte.h: + Make Copy & Paste clipboard keybindings also work for the VTE + (closes #2029675).
2008-07-27 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2008-07-30 18:21:34 UTC (rev 2842) +++ trunk/src/callbacks.c 2008-07-30 18:22:51 UTC (rev 2843) @@ -328,7 +328,12 @@ else if (IS_SCINTILLA(focusw) && doc != NULL) sci_copy(doc->editor->sci); +#ifdef HAVE_VTE else + if (vte_info.load_vte && vc != NULL && vc->vte == focusw) + vte_copy_clipboard(); +#endif + else if (GTK_IS_TEXT_VIEW(focusw)) { GtkTextBuffer *buffer = gtk_text_view_get_buffer( @@ -350,25 +355,14 @@ else if (IS_SCINTILLA(focusw) && doc != NULL) { -#if 0 -//#ifdef G_OS_WIN32 - /* insert the text manually for now, because the auto conversion of EOL characters by - * by Scintilla seems to make problems */ - /** TODO this is probably obsolete now since we fixed PLAT_GTK_WIN32 in Scintilla */ - if (gtk_clipboard_wait_is_text_available(gtk_clipboard_get(GDK_NONE))) - { - gchar *content = gtk_clipboard_wait_for_text(gtk_clipboard_get(GDK_NONE)); - if (content != NULL) - { - sci_replace_sel(doc->editor->sci, content); - g_free(content); - } - } -#else sci_paste(doc->editor->sci); -#endif } +#ifdef HAVE_VTE else + if (vte_info.load_vte && vc != NULL && vc->vte == focusw) + vte_paste_clipboard(); +#endif + else if (GTK_IS_TEXT_VIEW(focusw)) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(
Modified: trunk/src/vte.c =================================================================== --- trunk/src/vte.c 2008-07-30 18:21:34 UTC (rev 2842) +++ trunk/src/vte.c 2008-07-30 18:22:51 UTC (rev 2843) @@ -203,6 +203,18 @@ }
+void vte_copy_clipboard(void) +{ + vf->vte_terminal_copy_clipboard(VTE_TERMINAL(vc->vte)); +} + + +void vte_paste_clipboard(void) +{ + vf->vte_terminal_paste_clipboard(VTE_TERMINAL(vc->vte)); +} + + void vte_init(void) { if (vte_info.have_vte == FALSE) @@ -323,7 +335,8 @@ event->keyval == GDK_KP_Enter || ((event->keyval == GDK_c) && (event->state & GDK_CONTROL_MASK))) { - clean = TRUE; /* assume any text on the prompt has been executed when pressing Enter/Return */ + /* assume any text on the prompt has been executed when pressing Enter/Return */ + clean = TRUE; } return FALSE; }
Modified: trunk/src/vte.h =================================================================== --- trunk/src/vte.h 2008-07-30 18:21:34 UTC (rev 2842) +++ trunk/src/vte.h 2008-07-30 18:22:51 UTC (rev 2843) @@ -73,6 +73,10 @@
void vte_apply_user_settings(void);
+void vte_copy_clipboard(void); + +void vte_paste_clipboard(void); + gboolean vte_send_cmd(const gchar *cmd);
const gchar* vte_get_working_directory(void);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.