summaryrefslogtreecommitdiff
path: root/gtk/gtkprinteroptionwidget.c
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2011-12-07 20:03:07 -0500
committerRyan Lortie <desrt@desrt.ca>2011-12-07 20:04:38 -0500
commit36effbb307c6a9a8a5d2476b537cd973e8eb282e (patch)
tree7f07dfa0019f575dd1d7877d7854aacf84e788d0 /gtk/gtkprinteroptionwidget.c
parent6454c718dd5adfc10db51cb10966c002907d759b (diff)
downloadgtk+-36effbb307c6a9a8a5d2476b537cd973e8eb282e.tar.gz
print to file: fixed lost filename in gui
Stop widget creating an event before updating both directory and filename values. https://bugzilla.gnome.org/show_bug.cgi?id=603823
Diffstat (limited to 'gtk/gtkprinteroptionwidget.c')
-rw-r--r--gtk/gtkprinteroptionwidget.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk/gtkprinteroptionwidget.c b/gtk/gtkprinteroptionwidget.c
index 840fb26414..d3ef046023 100644
--- a/gtk/gtkprinteroptionwidget.c
+++ b/gtk/gtkprinteroptionwidget.c
@@ -882,13 +882,22 @@ update_widgets (GtkPrinterOptionWidget *widget)
basename = g_path_get_basename (filename);
dirname = g_path_get_dirname (filename);
+
text = g_filename_to_utf8 (basename, -1, NULL, NULL, NULL);
+
+ /* need to update dirname and basename without triggering function to avoid loosing names */
+ g_signal_handlers_block_by_func (priv->entry, G_CALLBACK (filesave_changed_cb), widget);
+ g_signal_handlers_block_by_func (priv->combo, G_CALLBACK (filesave_changed_cb), widget);
if (text != NULL)
gtk_entry_set_text (GTK_ENTRY (priv->entry), text);
if (g_path_is_absolute (dirname))
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->combo),
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (priv->combo),
dirname);
+
+ g_signal_handlers_unblock_by_func (priv->entry, G_CALLBACK (filesave_changed_cb), widget);
+ g_signal_handlers_unblock_by_func (priv->combo, G_CALLBACK (filesave_changed_cb), widget);
+
g_free (text);
g_free (basename);
g_free (dirname);