SF.net SVN: geany:[3791] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Wed May 13 15:21:55 UTC 2009


Revision: 3791
          http://geany.svn.sourceforge.net/geany/?rev=3791&view=rev
Author:   ntrel
Date:     2009-05-13 15:21:54 +0000 (Wed, 13 May 2009)

Log Message:
-----------
Remember scribble cursor position.

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-05-12 21:49:20 UTC (rev 3790)
+++ trunk/ChangeLog	2009-05-13 15:21:54 UTC (rev 3791)
@@ -1,3 +1,9 @@
+2009-05-13  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/keyfile.c:
+   Remember scribble cursor position.
+
+
 2009-05-12  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/symbols.c, doc/geany.txt, doc/geany.html,

Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c	2009-05-12 21:49:20 UTC (rev 3790)
+++ trunk/src/keyfile.c	2009-05-13 15:21:54 UTC (rev 3791)
@@ -86,6 +86,7 @@
 
 
 static gchar *scribble_text = NULL;
+static gint scribble_pos = -1;
 static GPtrArray *session_files = NULL;
 static gint session_notebook_page;
 static gint hpan_position;
@@ -462,13 +463,19 @@
 	/* get the text from the scribble textview */
 	{
 		GtkTextBuffer *buffer;
-		GtkTextIter start, end;
+		GtkTextIter start, end, iter;
+		GtkTextMark *mark;
 
 		buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ui_lookup_widget(main_widgets.window, "textview_scribble")));
 		gtk_text_buffer_get_bounds(buffer, &start, &end);
 		scribble_text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
 		g_key_file_set_string(config, PACKAGE, "scribble_text", scribble_text);
 		g_free(scribble_text);
+
+		mark = gtk_text_buffer_get_insert(buffer);
+		gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark);
+		scribble_pos = gtk_text_iter_get_offset(&iter);
+		g_key_file_set_integer(config, PACKAGE, "scribble_pos", scribble_pos);
 	}
 
 	if (prefs.save_winpos)
@@ -807,6 +814,7 @@
 
 	scribble_text = utils_get_setting_string(config, PACKAGE, "scribble_text",
 				_("Type here what you want, use it as a notice/scratch board"));
+	scribble_pos = utils_get_setting_integer(config, PACKAGE, "scribble_pos", -1);
 
 	geo = g_key_file_get_integer_list(config, PACKAGE, "geometry", NULL, &error);
 	if (error)
@@ -1026,9 +1034,14 @@
 {
 	if (scribble_text)
 	{	/* update the scribble widget, because now it's realized */
-		gtk_text_buffer_set_text(
-				gtk_text_view_get_buffer(GTK_TEXT_VIEW(ui_lookup_widget(main_widgets.window,
-				"textview_scribble"))), scribble_text, -1);
+		GtkTextIter iter;
+		GtkTextBuffer *buffer =
+			gtk_text_view_get_buffer(GTK_TEXT_VIEW(ui_lookup_widget(main_widgets.window,
+				"textview_scribble")));
+
+		gtk_text_buffer_set_text(buffer, scribble_text, -1);
+		gtk_text_buffer_get_iter_at_offset(buffer, &iter, scribble_pos);
+		gtk_text_buffer_place_cursor(buffer, &iter);
 	}
 	g_free(scribble_text);
 


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