projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gui: Add workaround for GTK+ 2.20 crash at startup.
[pspp-builds.git]
/
src
/
ui
/
gui
/
helper.c
diff --git
a/src/ui/gui/helper.c
b/src/ui/gui/helper.c
index 492797dbbad8885b405a866329fd5d94982295b0..75954fbdabbebbaae424d32b8e363b0f97aba4da 100644
(file)
--- a/
src/ui/gui/helper.c
+++ b/
src/ui/gui/helper.c
@@
-1,5
+1,5
@@
/* PSPPIRE - a graphical user interface for PSPP.
/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2007, 2009, 2010 Free Software Foundation
+ Copyright (C) 2007, 2009, 2010
, 2011
Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-31,7
+31,7
@@
#include <data/casereader-provider.h>
#include <libpspp/message.h>
#include "psppire-syntax-window.h"
#include <data/casereader-provider.h>
#include <libpspp/message.h>
#include "psppire-syntax-window.h"
-#include <gtk/gtk
builder
.h>
+#include <gtk/gtk.h>
#include <libpspp/i18n.h>
#include <ctype.h>
#include <libpspp/i18n.h>
#include <ctype.h>
@@
-52,7
+52,7
@@
gchar *
value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
{
gchar *
value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
{
- gchar *s =
0
;
+ gchar *s =
NULL
;
s = data_out (&v, dict_get_encoding (dict->dict), &format);
g_strchug (s);
s = data_out (&v, dict_get_encoding (dict->dict), &format);
g_strchug (s);
@@
-97,11
+97,8
@@
text_to_value (const gchar *text,
}
value_init (val, width);
}
value_init (val, width);
- msg_disable ();
- data_in (ss_cstr (text), UTF8, format->type, 0, 0, 0,
- dict->dict,
- val, width);
- msg_enable ();
+ free (data_in (ss_cstr (text), UTF8, format->type, val, width,
+ dict_get_encoding (dict->dict)));
return val;
}
return val;
}
@@
-132,10
+129,10
@@
get_object_assert (GtkBuilder *builder, const gchar *name, GType type)
o = gtk_builder_get_object (builder, name);
if ( !o )
o = gtk_builder_get_object (builder, name);
if ( !o )
- g_critical ("Object
\"%s\"
could not be found\n", name);
+ g_critical ("Object
`%s'
could not be found\n", name);
else if ( ! g_type_is_a (G_OBJECT_TYPE (o), type))
{
else if ( ! g_type_is_a (G_OBJECT_TYPE (o), type))
{
- g_critical ("Object
\"%s\"
was expected to have type %s, but in fact has type %s",
+ g_critical ("Object
`%s'
was expected to have type %s, but in fact has type %s",
name, g_type_name (type), G_OBJECT_TYPE_NAME (o));
}
name, g_type_name (type), G_OBJECT_TYPE_NAME (o));
}
@@
-211,9
+208,8
@@
connect_help (GtkBuilder *xml)
GObject *o = i->data;
if ( GTK_IS_WIDGET (o) )
{
GObject *o = i->data;
if ( GTK_IS_WIDGET (o) )
{
-
gchar *name = NULL
;
+
const gchar *name = gtk_buildable_get_name (GTK_BUILDABLE (o))
;
gchar s[12] = {0};
gchar s[12] = {0};
- g_object_get (o, "name", &name, NULL);
if ( name)
strncpy (s, name, 11);
if ( name)
strncpy (s, name, 11);
@@
-285,11
+281,13
@@
on_delete (GtkWindow *window, GdkEvent *e, GtkWindow **addr)
return FALSE;
}
return FALSE;
}
-void
-paste_syntax_to_window (
const
gchar *syntax)
+char *
+paste_syntax_to_window (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,13
+295,16
@@
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);
+
+ return syntax;
}
}