Revision: 3407 http://geany.svn.sourceforge.net/geany/?rev=3407&view=rev Author: ntrel Date: 2008-12-19 17:15:52 +0000 (Fri, 19 Dec 2008)
Log Message: ----------- Allow Find Usage for selections even when the cursor is not at a word character.
Modified Paths: -------------- trunk/ChangeLog trunk/src/editor.c trunk/src/keybindings.c trunk/src/search.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-12-19 16:49:37 UTC (rev 3406) +++ trunk/ChangeLog 2008-12-19 17:15:52 UTC (rev 3407) @@ -5,6 +5,9 @@ Fix Fortran Types showing as Interfaces in the symbol list. * src/symbols.c: Show Structs separately from Typedefs / Enums for the C symbol list. + * src/keybindings.c, src/search.c, src/editor.c: + Allow Find Usage for selections even when the cursor is not at a + word character.
2008-12-18 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/editor.c =================================================================== --- trunk/src/editor.c 2008-12-19 16:49:37 UTC (rev 3406) +++ trunk/src/editor.c 2008-12-19 17:15:52 UTC (rev 3407) @@ -218,10 +218,13 @@ /* calls the edit popup menu in the editor */ if (event->button == 3) { + gboolean can_goto; + editor_find_current_word(editor, editor_info.click_pos, current_word, sizeof current_word, NULL);
- ui_update_popup_goto_items((current_word[0] != '\0') ? TRUE : FALSE); + can_goto = sci_has_selection(editor->sci) || NZV(current_word); + ui_update_popup_goto_items(can_goto); ui_update_popup_copy_items(doc); ui_update_insert_include_item(doc, 0);
Modified: trunk/src/keybindings.c =================================================================== --- trunk/src/keybindings.c 2008-12-19 16:49:37 UTC (rev 3406) +++ trunk/src/keybindings.c 2008-12-19 17:15:52 UTC (rev 3407) @@ -59,6 +59,7 @@
static gboolean check_current_word(void); +static gboolean read_current_word(void);
static void cb_func_file_action(guint key_id); static void cb_func_project_action(guint key_id); @@ -1098,12 +1099,12 @@ case GEANY_KEYS_SEARCH_PREVIOUSMESSAGE: on_previous_message1_activate(NULL, NULL); break; case GEANY_KEYS_SEARCH_FINDUSAGE: - if (check_current_word()) - on_find_usage1_activate(NULL, NULL); + read_current_word(); + on_find_usage1_activate(NULL, NULL); break; case GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE: - if (check_current_word()) - on_find_document_usage1_activate(NULL, NULL); + read_current_word(); + on_find_document_usage1_activate(NULL, NULL); break; } } @@ -1193,7 +1194,8 @@ gtk_menu_item_activate(GTK_MENU_ITEM(item)); }
-static gboolean check_current_word(void) + +static gboolean read_current_word(void) { gint pos; GeanyDocument *doc = document_get_current(); @@ -1206,7 +1208,13 @@ editor_find_current_word(doc->editor, pos, editor_info.current_word, GEANY_MAX_WORD_LENGTH, NULL);
- if (*editor_info.current_word == 0) + return (*editor_info.current_word != 0); +} + + +static gboolean check_current_word(void) +{ + if (!read_current_word()) { utils_beep(); return FALSE;
Modified: trunk/src/search.c =================================================================== --- trunk/src/search.c 2008-12-19 16:49:37 UTC (rev 3406) +++ trunk/src/search.c 2008-12-19 17:15:52 UTC (rev 3407) @@ -1578,6 +1578,12 @@ doc = document_get_current(); g_return_if_fail(doc != NULL);
+ if (!NZV(search_text)) + { + utils_beep(); + return; + } + gtk_notebook_set_current_page(GTK_NOTEBOOK(msgwindow.notebook), MSG_MESSAGE); gtk_list_store_clear(msgwindow.store_msg);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.