projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow undo/redo of pasted text as a single item
[pspp]
/
src
/
ui
/
gui
/
helper.c
diff --git
a/src/ui/gui/helper.c
b/src/ui/gui/helper.c
index 492797dbbad8885b405a866329fd5d94982295b0..0dfae65964e47f973e3e0450aa2639b17692dd4b 100644
(file)
--- a/
src/ui/gui/helper.c
+++ b/
src/ui/gui/helper.c
@@
-290,6
+290,8
@@
paste_syntax_to_window (const gchar *syntax)
{
static GtkWidget *the_syntax_pasteboard = NULL;
{
static GtkWidget *the_syntax_pasteboard = NULL;
+ GtkTextBuffer *buffer = NULL;
+
if ( NULL == the_syntax_pasteboard)
{
the_syntax_pasteboard = psppire_syntax_window_new ();
if ( NULL == the_syntax_pasteboard)
{
the_syntax_pasteboard = psppire_syntax_window_new ();
@@
-297,11
+299,12
@@
paste_syntax_to_window (const gchar *syntax)
&the_syntax_pasteboard);
}
&the_syntax_pasteboard);
}
- gtk_text_buffer_insert_at_cursor (PSPPIRE_SYNTAX_WINDOW (the_syntax_pasteboard)->buffer,
- syntax, -1);
+ buffer = GTK_TEXT_BUFFER (PSPPIRE_SYNTAX_WINDOW (the_syntax_pasteboard)->buffer);
- gtk_text_buffer_insert_at_cursor (PSPPIRE_SYNTAX_WINDOW (the_syntax_pasteboard)->buffer,
- "\n", 1);
+ gtk_text_buffer_begin_user_action (buffer);
+ gtk_text_buffer_insert_at_cursor (buffer, syntax, -1);
+ gtk_text_buffer_insert_at_cursor (buffer, "\n", 1);
+ gtk_text_buffer_end_user_action (buffer);
gtk_widget_show (the_syntax_pasteboard);
}
gtk_widget_show (the_syntax_pasteboard);
}