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.