SF.net SVN: geany:[4038] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Tue Jul 28 14:29:34 UTC 2009


Revision: 4038
          http://geany.svn.sourceforge.net/geany/?rev=4038&view=rev
Author:   ntrel
Date:     2009-07-28 14:29:34 +0000 (Tue, 28 Jul 2009)

Log Message:
-----------
Fix reshowing calltip in the wrong document.

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-07-28 12:13:45 UTC (rev 4037)
+++ trunk/ChangeLog	2009-07-28 14:29:34 UTC (rev 4038)
@@ -5,6 +5,8 @@
    src/Makefile.am, ChangeLog, wscript:
    Move plugin_* utility functions to pluginutils.c.
    Add pluginprivate.h.
+ * src/editor.c:
+   Fix reshowing calltip in the wrong document.
 
 
 2009-07-25  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2009-07-28 12:13:45 UTC (rev 4037)
+++ trunk/src/editor.c	2009-07-28 14:29:34 UTC (rev 4038)
@@ -500,24 +500,30 @@
 static gboolean reshow_calltip(gpointer data)
 {
 	CalltipReshowInfo *cri = data;
+	GeanyDocument *doc;
 
 	g_return_val_if_fail(calltip.sci != NULL, FALSE);
 
 	SSM(calltip.sci, SCI_CALLTIPCANCEL, 0, 0);
-	/* we use the position where the calltip was previously started as SCI_GETCURRENTPOS
-	 * may be completely wrong in case the user cancelled the auto completion with the mouse */
-	SSM(calltip.sci, SCI_CALLTIPSHOW, calltip.pos, (sptr_t) calltip.text);
+	doc = document_get_current();
 
-	/* now autocompletion has been cancelled by SCI_CALLTIPSHOW, so do it manually */
-	if (cri->message == SCN_AUTOCSELECTION)
+	if (doc && doc->editor->sci == calltip.sci)
 	{
-		gint pos = SSM(calltip.sci, SCI_GETCURRENTPOS, 0, 0);
+		/* we use the position where the calltip was previously started as SCI_GETCURRENTPOS
+		 * may be completely wrong in case the user cancelled the auto completion with the mouse */
+		SSM(calltip.sci, SCI_CALLTIPSHOW, calltip.pos, (sptr_t) calltip.text);
 
-		sci_set_selection_start(calltip.sci, cri->pos);
-		sci_set_selection_end(calltip.sci, pos);
-		sci_replace_sel(calltip.sci, "");	/* clear root of word */
-		SSM(calltip.sci, SCI_INSERTTEXT, cri->pos, (sptr_t) cri->text);
-		sci_goto_pos(calltip.sci, cri->pos + strlen(cri->text), FALSE);
+		/* now autocompletion has been cancelled by SCI_CALLTIPSHOW, so do it manually */
+		if (cri->message == SCN_AUTOCSELECTION)
+		{
+			gint pos = SSM(calltip.sci, SCI_GETCURRENTPOS, 0, 0);
+
+			sci_set_selection_start(calltip.sci, cri->pos);
+			sci_set_selection_end(calltip.sci, pos);
+			sci_replace_sel(calltip.sci, "");	/* clear root of word */
+			SSM(calltip.sci, SCI_INSERTTEXT, cri->pos, (sptr_t) cri->text);
+			sci_goto_pos(calltip.sci, cri->pos + strlen(cri->text), FALSE);
+		}
 	}
 	g_free(cri->text);
 	g_free(cri);


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