]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprinteroptionwidget.c
Use g_unlink. (#421990, Morten Welinder)
[~andy/gtk] / gtk / gtkprinteroptionwidget.c
index 7b1ed3fdd5aab98ae4d334c6df401d4202c2cae2..3e977687bea17f8a9d5036ed91d9b78dcb35b2f9 100644 (file)
@@ -453,11 +453,9 @@ filesave_changed_cb (GtkWidget              *button,
                      GtkPrinterOptionWidget *widget)
 {
   GtkPrinterOptionWidgetPrivate *priv = widget->priv;
-  gchar *uri, *directory, *path;
-  const gchar *file;
+  gchar *uri, *file;
 
   /* TODO: how do we support nonlocal file systems? */
-  directory = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (priv->combo));
   file = g_filename_from_utf8 (gtk_entry_get_text (GTK_ENTRY (priv->entry)),
                               -1, NULL, NULL, NULL);
   if (file == NULL)
@@ -470,24 +468,34 @@ filesave_changed_cb (GtkWidget              *button,
     uri = g_filename_to_uri (file, NULL, NULL);
   else
     {
+      gchar *path;
+
 #ifdef G_OS_UNIX
       if (file[0] == '~' && file[1] == '/')
         {
-          directory = g_strdup (g_get_home_dir ());
-         file += 2;
+          path = g_build_filename (g_get_home_dir (), file + 2, NULL);
        }
+      else
 #endif
-    
-      path = g_build_filename (directory, file, NULL);
+        {
+          gchar *directory;
+
+          directory = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (priv->combo));
+          path = g_build_filename (directory, file, NULL);
+
+          g_free (directory);
+        }
+
       uri = g_filename_to_uri (path, NULL, NULL);
+
       g_free (path);
     }
-
   if (uri)
     gtk_printer_option_set (priv->source, uri);
 
-  g_free (directory);
   g_free (uri);
+  g_free (file);
 
   g_signal_handler_unblock (priv->source, priv->source_changed_handler);
   emit_changed (widget);
@@ -508,7 +516,7 @@ filter_numeric (const gchar *val,
 
   for (i = 0, j = 0; i < len; i++)
     {
-      if (isdigit(val[i]))
+      if (isdigit (val[i]))
         {
           filtered_val[j] = val[i];
          j++;
@@ -804,7 +812,7 @@ construct_widgets (GtkPrinterOptionWidget *widget)
 
         g_signal_connect (priv->entry, "changed", G_CALLBACK (filesave_changed_cb), widget);
 
-        g_signal_connect (priv->combo, "current-folder-changed", G_CALLBACK (filesave_changed_cb), widget);
+        g_signal_connect (priv->combo, "selection-changed", G_CALLBACK (filesave_changed_cb), widget);
       }
       break;
     default: