SF.net SVN: geany:[5108] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Jul 29 18:28:37 UTC 2010
Revision: 5108
http://geany.svn.sourceforge.net/geany/?rev=5108&view=rev
Author: eht16
Date: 2010-07-29 18:28:37 +0000 (Thu, 29 Jul 2010)
Log Message:
-----------
Implement 'Select All' for the VTE widget.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/keybindings.c
trunk/src/vte.c
trunk/src/vte.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-07-25 11:11:04 UTC (rev 5107)
+++ trunk/ChangeLog 2010-07-29 18:28:37 UTC (rev 5108)
@@ -1,3 +1,9 @@
+2010-07-29 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/keybindings.cm src/vte.cm src/vte.h:
+ Implement 'Select All' for the VTE widget.
+
+
2010-07-25 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* geany.nsi:
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2010-07-25 11:11:04 UTC (rev 5107)
+++ trunk/src/keybindings.c 2010-07-29 18:28:37 UTC (rev 5108)
@@ -57,6 +57,9 @@
#include "geanywraplabel.h"
#include "main.h"
#include "search.h"
+#ifdef HAVE_VTE
+# include "vte.h"
+#endif
GPtrArray *keybinding_groups; /* array of GeanyKeyGroup pointers */
@@ -2479,6 +2482,14 @@
g_signal_emit_by_name(msgwindow.scribble, "select-all", TRUE);
return TRUE;
}
+ /* special case for Select All in the VTE widget */
+#ifdef HAVE_VTE
+ else if (key_id == GEANY_KEYS_SELECT_ALL && vte_info.load_vte && focusw == vc->vte)
+ {
+ vte_select_all();
+ return TRUE;
+ }
+#endif
/* special case for Select All in the toolbar search widget */
else if (key_id == GEANY_KEYS_SELECT_ALL && focusw == toolbar_search_entry)
{
Modified: trunk/src/vte.c
===================================================================
--- trunk/src/vte.c 2010-07-25 11:11:04 UTC (rev 5107)
+++ trunk/src/vte.c 2010-07-29 18:28:37 UTC (rev 5108)
@@ -114,6 +114,7 @@
void (*vte_terminal_set_cursor_blink_mode) (VteTerminal *terminal,
VteTerminalCursorBlinkMode mode);
void (*vte_terminal_set_cursor_blinks) (VteTerminal *terminal, gboolean blink);
+ void (*vte_terminal_select_all) (VteTerminal *terminal);
};
@@ -135,6 +136,7 @@
{
POPUP_COPY,
POPUP_PASTE,
+ POPUP_SELECTALL,
POPUP_CHANGEPATH,
POPUP_RESTARTTERMINAL,
POPUP_PREFERENCES,
@@ -429,6 +431,7 @@
/* vte_terminal_set_cursor_blink_mode() is only available since 0.17.1, so if we don't find
* this symbol, we are probably on an older version and use the old API instead */
g_module_symbol(mod, "vte_terminal_set_cursor_blinks", (void*)&vf->vte_terminal_set_cursor_blinks);
+ g_module_symbol(mod, "vte_terminal_select_all", (void*)&vf->vte_terminal_select_all);
}
@@ -466,6 +469,11 @@
vf->vte_terminal_paste_clipboard(VTE_TERMINAL(vc->vte));
break;
}
+ case POPUP_SELECTALL:
+ {
+ vte_select_all();
+ break;
+ }
case POPUP_CHANGEPATH:
{
GeanyDocument *doc = document_get_current();
@@ -513,6 +521,15 @@
gtk_widget_show(item);
gtk_container_add(GTK_CONTAINER(menu), item);
+ item = gtk_image_menu_item_new_from_stock(GTK_STOCK_SELECT_ALL, NULL);
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(vte_popup_menu_clicked), GINT_TO_POINTER(POPUP_SELECTALL));
+
+ item = gtk_separator_menu_item_new();
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
item = gtk_image_menu_item_new_with_mnemonic(_("_Set Path From Document"));
gtk_widget_show(item);
gtk_container_add(GTK_CONTAINER(menu), item);
@@ -881,6 +898,13 @@
}
+void vte_select_all(void)
+{
+ if (vf->vte_terminal_select_all != NULL)
+ vf->vte_terminal_select_all(VTE_TERMINAL(vc->vte));
+}
+
+
void vte_send_selection_to_vte(void)
{
GeanyDocument *doc;
Modified: trunk/src/vte.h
===================================================================
--- trunk/src/vte.h 2010-07-25 11:11:04 UTC (rev 5107)
+++ trunk/src/vte.h 2010-07-29 18:28:37 UTC (rev 5108)
@@ -79,6 +79,8 @@
void vte_send_selection_to_vte(void);
+void vte_select_all(void);
+
#endif
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list