summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorleo2009-10-10 00:22:19 +0000
committerleo2009-10-10 00:22:19 +0000
commit6d2858c7ef2f33daa294ffe1d0bc837869dbfae5 (patch)
treed22402c6ae4fb159ec5eb8cbe08ca5dc1ad8b061 /linux
parentdd871397f2ef6c73a7b83a49ecc1d3d4c0232eb4 (diff)
Fixed crash using the file properties dialog.
git-svn-id: http://svn.leocad.org/branches/leocad-0.75@841 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'linux')
-rw-r--r--linux/dialogs.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/linux/dialogs.cpp b/linux/dialogs.cpp
index de0b3ef..7f9d2f0 100644
--- a/linux/dialogs.cpp
+++ b/linux/dialogs.cpp
@@ -2163,9 +2163,18 @@ static void propertiesdlg_ok(GtkWidget *widget, gpointer data)
strcpy(opts->strAuthor, gtk_entry_get_text (GTK_ENTRY (s->sum_author)));
strcpy(opts->strDescription, gtk_entry_get_text (GTK_ENTRY (s->sum_description)));
- char* comments = gtk_editable_get_chars(GTK_EDITABLE(s->sum_comments), 0, -1);
- strcpy(opts->strComments, comments);
- g_free(comments);
+
+ GtkTextBuffer* buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(s->sum_comments));
+ GtkTextIter start;
+ GtkTextIter end;
+ gchar *text;
+
+ gtk_text_buffer_get_start_iter(buffer, &start);
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
+ strncpy(opts->strComments, text, sizeof(opts->strComments));
+ opts->strComments[sizeof(opts->strComments)-1] = 0;
+ g_free (text);
*cur_ret = LC_OK;
}