[geany/geany] 9fad7a: Hide autocompletion when the only entry has been typed

Nick Treleaven git-noreply at xxxxx
Thu Jul 26 00:03:58 UTC 2012


Branch:      refs/heads/document-messages
Author:      Nick Treleaven <nick.treleaven at btinternet.com>
Committer:   Nick Treleaven <nick.treleaven at btinternet.com>
Date:        Thu, 12 Apr 2012 16:51:16
Commit:      9fad7aaa55bbe4eeef6e4fd89ea6767c0325d846
             https://github.com/geany/geany/commit/9fad7aaa55bbe4eeef6e4fd89ea6767c0325d846

Log Message:
-----------
Hide autocompletion when the only entry has been typed

Fixes #3516212.


Modified Paths:
--------------
    src/editor.c

Modified: src/editor.c
17 files changed, 12 insertions(+), 5 deletions(-)
===================================================================
@@ -594,11 +594,18 @@ static void check_line_breaking(GeanyEditor *editor, gint pos, gchar c)
 }
 
 
-static void show_autocomplete(ScintillaObject *sci, gsize rootlen, const gchar *words)
+static void show_autocomplete(ScintillaObject *sci, gsize rootlen, GString *words)
 {
+	/* hide autocompletion if only option is already typed */
+	if (rootlen >= words->len ||
+		(words->str[rootlen] == '?' && rootlen >= words->len - 2))
+	{
+		sci_send_command(sci, SCI_AUTOCCANCEL);
+		return;
+	}
 	/* store whether a calltip is showing, so we can reshow it after autocompletion */
 	calltip.set = (gboolean) SSM(sci, SCI_CALLTIPACTIVE, 0, 0);
-	SSM(sci, SCI_AUTOCSHOW, rootlen, (sptr_t) words);
+	SSM(sci, SCI_AUTOCSHOW, rootlen, (sptr_t) words->str);
 }
 
 
@@ -633,7 +640,7 @@ static void show_tags_list(GeanyEditor *editor, const GPtrArray *tags, gsize roo
 			else
 				g_string_append(words, "?1");
 		}
-		show_autocomplete(sci, rootlen, words->str);
+		show_autocomplete(sci, rootlen, words);
 		g_string_free(words, TRUE);
 	}
 }
@@ -1994,7 +2001,7 @@ gchar *editor_get_calltip_text(GeanyEditor *editor, const TMTag *tag)
 		}
 	}
 	if (found)
-		show_autocomplete(sci, rootlen, words->str);
+		show_autocomplete(sci, rootlen, words);
 
 	g_string_free(words, TRUE);
 	return found;
@@ -2128,7 +2135,7 @@ static gboolean autocomplete_doc_word(GeanyEditor *editor, gchar *root, gsize ro
 
 	g_slist_free(words);
 
-	show_autocomplete(sci, rootlen, str->str);
+	show_autocomplete(sci, rootlen, str);
 	g_string_free(str, TRUE);
 	return TRUE;
 }


@@ Diff output truncated at 100000 characters. @@


--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).



More information about the Commits mailing list