gui: Fix Glib warnings for dialogs in realize and configure callbacks.
[pspp-builds.git] / src / ui / gui / helper.c
index 492797dbbad8885b405a866329fd5d94982295b0..a85b80ba584b117365c2c31c4b718749cca6124c 100644 (file)
@@ -1,5 +1,5 @@
 /* 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
@@ -97,11 +97,8 @@ text_to_value (const gchar *text,
     }
 
   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;
 }
@@ -132,10 +129,10 @@ get_object_assert (GtkBuilder *builder, const gchar *name, GType type)
   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))
    {
-     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));
    }
 
@@ -211,9 +208,8 @@ connect_help (GtkBuilder *xml)
       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};
-         g_object_get (o, "name", &name, NULL);
 
          if ( name)
            strncpy (s, name, 11);
@@ -285,11 +281,13 @@ on_delete (GtkWindow *window, GdkEvent *e, GtkWindow **addr)
   return FALSE;
 }
 
-void
-paste_syntax_to_window (const gchar *syntax)
+char *
+paste_syntax_to_window (gchar *syntax)
 {
   static GtkWidget *the_syntax_pasteboard = NULL;
 
+  GtkTextBuffer *buffer = NULL;
+
   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);
     }
 
-  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);
+
+  return syntax;
 }