summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
index 8e0b9294b..99662f0c2 100644
--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
+++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
@@ -599,8 +599,9 @@ void FileDialogBaseGtk::cleanup( bool showConfirmed )
{
if (_dialogType != EXE_TYPES) {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- if ( showConfirmed )
+ if ( showConfirmed ) {
prefs->setBool( preferenceBase + "/enable_preview", previewCheckbox.get_active() );
+ }
}
}
@@ -611,6 +612,9 @@ void FileDialogBaseGtk::_previewEnabledCB()
set_preview_widget_active(enabled);
if ( enabled ) {
_updatePreviewCallback();
+ } else {
+ // Clears out any current preview image.
+ svgPreview.showNoPreview();
}
}
@@ -622,6 +626,7 @@ void FileDialogBaseGtk::_previewEnabledCB()
void FileDialogBaseGtk::_updatePreviewCallback()
{
Glib::ustring fileName = get_preview_filename();
+ bool enabled = previewCheckbox.get_active();
#ifdef WITH_GNOME_VFS
if ( fileName.empty() && gnome_vfs_initialized() ) {
@@ -629,11 +634,11 @@ void FileDialogBaseGtk::_updatePreviewCallback()
}
#endif
- if (fileName.empty()) {
- return;
+ if ( enabled && !fileName.empty() ) {
+ svgPreview.set(fileName, _dialogType);
+ } else {
+ svgPreview.showNoPreview();
}
-
- svgPreview.set(fileName, _dialogType);
}