X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-window.c;h=ebced6d7478fcb44e3c4fea38d52472d093c55fa;hb=b1f538f35e5c6cc682550642147ca6ac10174116;hp=b40ccf141c7bfbf8a07666cb0c55f0187518bbfa;hpb=4421e7aa84036f685ddbd406368f273f44f39ef4;p=pspp-builds.git diff --git a/src/ui/gui/psppire-window.c b/src/ui/gui/psppire-window.c index b40ccf14..ebced6d7 100644 --- a/src/ui/gui/psppire-window.c +++ b/src/ui/gui/psppire-window.c @@ -99,13 +99,22 @@ psppire_window_set_property (GObject *object, break; case PROP_FILENAME: { + PsppireWindowRegister *reg = psppire_window_register_new (); gchar mdash[6] = {0,0,0,0,0,0}; gchar *basename, *title; const gchar *name = g_value_get_string (value); - gchar *candidate_name = strdup (name); int x = 0; + gchar *candidate_name ; + GValue def = {0}; + g_value_init (&def, pspec->value_type); - PsppireWindowRegister *reg = psppire_window_register_new (); + if ( NULL == name) + { + g_param_value_set_default (pspec, &def); + name = g_value_get_string (&def); + } + + candidate_name = strdup (name); while ( psppire_window_register_lookup (reg, candidate_name)) { @@ -116,6 +125,8 @@ psppire_window_set_property (GObject *object, basename = g_path_get_basename (candidate_name); g_unichar_to_utf8 (0x2014, mdash); + g_value_unset (&def); + switch (window->usage) { case PSPPIRE_WINDOW_USAGE_SYNTAX: @@ -325,14 +336,12 @@ remove_menuitem (PsppireWindowRegister *reg, const gchar *key, gpointer data) PsppireWindow *window = PSPPIRE_WINDOW (data); GtkWidget *item ; - if ( !GTK_WIDGET_REALIZED (window)) - return; - item = g_hash_table_lookup (window->menuitem_table, key); g_hash_table_remove (window->menuitem_table, key); - gtk_container_remove (GTK_CONTAINER (window->menu), item); + if (GTK_IS_CONTAINER (window->menu)) + gtk_container_remove (GTK_CONTAINER (window->menu), item); } static void @@ -378,7 +387,7 @@ const gchar * psppire_window_get_filename (PsppireWindow *w) { const gchar *name = NULL; - g_object_get (w, "filename", name, NULL); + g_object_get (w, "filename", &name, NULL); return name; }