Revision: 4840 http://geany.svn.sourceforge.net/geany/?rev=4840&view=rev Author: eht16 Date: 2010-04-19 20:42:44 +0000 (Mon, 19 Apr 2010)
Log Message: ----------- Add a static global variable to monitor autocompletion mode in order to prevent cancellation of the struct/class (C/C++) auto completion list (patch by Thomas Martitz, thanks).
Modified Paths: -------------- trunk/ChangeLog trunk/src/editor.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-04-19 20:42:34 UTC (rev 4839) +++ trunk/ChangeLog 2010-04-19 20:42:44 UTC (rev 4840) @@ -6,6 +6,10 @@ * src/sidebar.c: Automatically show and hide the sidebar notebook tabs according to the amount of visible pages (patch by Adrian Dimitrov, thanks). + * src/editor.c: + Add a static global variable to monitor autocompletion mode in order + to prevent cancellation of the struct/class (C/C++) auto completion + list (patch by Thomas Martitz, thanks).
2010-04-19 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/editor.c =================================================================== --- trunk/src/editor.c 2010-04-19 20:42:34 UTC (rev 4839) +++ trunk/src/editor.c 2010-04-19 20:42:44 UTC (rev 4840) @@ -88,6 +88,14 @@ ScintillaObject *sci; } calltip = {NULL, FALSE, NULL, 0, 0, NULL};
+static enum +{ + AUTOC_CANCELLED, + AUTOC_SCOPE, + AUTOC_TAGS, + AUTOC_DOC_WORDS, +} autocompletion_mode = AUTOC_CANCELLED; + static gchar indent[100];
@@ -597,7 +605,10 @@ tags = tm_workspace_find_scope_members(obj ? obj->tags_array : NULL, name, TRUE, FALSE); if (tags) + { + autocompletion_mode = AUTOC_SCOPE; show_tags_list(editor, tags, 0); + } } }
@@ -932,6 +943,7 @@ case SCN_AUTOCCANCELLED: /* now that autocomplete is finishing or was cancelled, reshow calltips * if they were showing */ + autocompletion_mode = AUTOC_CANCELLED; request_reshowing_calltip(nt); break;
@@ -1775,6 +1787,7 @@ tags = tm_workspace_find(root, tm_tag_max_t, attrs, TRUE, doc->file_type->lang); if (tags) { + autocompletion_mode = AUTOC_TAGS; show_tags_list(editor, tags, rootlen); return tags->len > 0; } @@ -1884,6 +1897,7 @@ if (!words) { scintilla_send_message(sci, SCI_AUTOCCANCEL, 0, 0); + autocompletion_mode = AUTOC_CANCELLED; return FALSE; }
@@ -1913,6 +1927,7 @@ g_slist_free(list); g_string_free(words, TRUE);
+ autocompletion_mode = AUTOC_DOC_WORDS; show_autocomplete(sci, rootlen, str->str); g_string_free(str, TRUE); return TRUE; @@ -1972,7 +1987,7 @@ root = linebuf + startword; rootlen = current - startword;
- if (rootlen > 0) + if (rootlen > 0 && autocompletion_mode != AUTOC_SCOPE) { if (autocomplete_check_for_html(ft->id, style)) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.