Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
[pspp-builds.git] / src / ui / gui / psppire-syntax-window.c
index a786db8040c5bcb2ec7e18df1772fd4eb536c63f..9be362cf9aa99a7b66dfb2ed8f8f4e3e71d0454d 100644 (file)
@@ -248,7 +248,6 @@ save_editor_to_file (PsppireSyntaxWindow *se,
     {
       gchar *msg = g_strdup_printf (_("Saved file \"%s\""), filename);
       gtk_statusbar_push (GTK_STATUSBAR (se->sb), se->text_context, msg);
-      psppire_window_set_filename (PSPPIRE_WINDOW (se), filename);
       gtk_text_buffer_set_modified (buffer, FALSE);
       g_free (msg);
     }
@@ -304,6 +303,7 @@ save_if_modified (PsppireSyntaxWindow *se)
              msg (ME, err->message);
              g_error_free (err);
            }
+         psppire_window_set_filename (PSPPIRE_WINDOW (se), filename);
        }
 
       if ( response == GTK_RESPONSE_CANCEL )
@@ -479,6 +479,13 @@ on_text_changed (GtkTextBuffer *buffer, PsppireSyntaxWindow *window)
   gtk_statusbar_pop (GTK_STATUSBAR (window->sb), window->text_context);
 }
 
+static void
+on_modified_changed (GtkTextBuffer *buffer, PsppireWindow *window)
+{
+  psppire_window_set_unsaved (window, gtk_text_buffer_get_modified (buffer));
+}
+
+
 extern struct source_stream *the_source_stream ;
 
 static void
@@ -500,7 +507,10 @@ psppire_syntax_window_init (PsppireSyntaxWindow *window)
 
   g_signal_connect (window->buffer, "changed", G_CALLBACK (on_text_changed), window);
 
-  //  connect_help (xml);
+  g_signal_connect (window->buffer, "modified-changed",
+                   G_CALLBACK (on_modified_changed), window);
+
+  connect_help (xml);
 
   gtk_container_add (GTK_CONTAINER (window), box);
 
@@ -601,8 +611,8 @@ GtkWidget*
 psppire_syntax_window_new (void)
 {
   return GTK_WIDGET (g_object_new (psppire_syntax_window_get_type (),
-                                  "usage", PSPPIRE_WINDOW_USAGE_SYNTAX,
                                   "filename", "Syntax",
+                                  "description", _("Syntax Editor"),
                                   NULL));
 }