Load/save the file chooser's size
* gtk/gtkfilechooserdefault.c (save_dialog_geometry): New function. (settings_save): Save the dialog's geometry. (gtk_file_chooser_default_get_default_size): Load the geometry from the settings. If it was already saved, return that instead of computing an ad-hoc size. Signed-off-by: Federico Mena Quintero <federico@novell.com> svn path=/trunk/; revision=22119
This commit is contained in:
parent
d133ab3ac0
commit
d00b5cd3ee
@ -36,6 +36,12 @@
|
|||||||
position doesn't quite work yet, but we'll leave it in as a
|
position doesn't quite work yet, but we'll leave it in as a
|
||||||
reference.
|
reference.
|
||||||
|
|
||||||
|
* gtk/gtkfilechooserdefault.c (save_dialog_geometry): New function.
|
||||||
|
(settings_save): Save the dialog's geometry.
|
||||||
|
(gtk_file_chooser_default_get_default_size): Load the geometry
|
||||||
|
from the settings. If it was already saved, return that instead
|
||||||
|
of computing an ad-hoc size.
|
||||||
|
|
||||||
2009-01-13 Matthias Clasen <mclasen@redhat.com>
|
2009-01-13 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
Bug 450716 – New API to change global IM
|
Bug 450716 – New API to change global IM
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "gtkexpander.h"
|
#include "gtkexpander.h"
|
||||||
#include "gtkfilechooserprivate.h"
|
#include "gtkfilechooserprivate.h"
|
||||||
#include "gtkfilechooserdefault.h"
|
#include "gtkfilechooserdefault.h"
|
||||||
|
#include "gtkfilechooserdialog.h"
|
||||||
#include "gtkfilechooserembed.h"
|
#include "gtkfilechooserembed.h"
|
||||||
#include "gtkfilechooserentry.h"
|
#include "gtkfilechooserentry.h"
|
||||||
#include "gtkfilechoosersettings.h"
|
#include "gtkfilechoosersettings.h"
|
||||||
@ -6024,6 +6025,31 @@ settings_load (GtkFileChooserDefault *impl)
|
|||||||
gtk_tree_view_column_set_visible (impl->list_size_column, show_size_column);
|
gtk_tree_view_column_set_visible (impl->list_size_column, show_size_column);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
save_dialog_geometry (GtkFileChooserDefault *impl, GtkFileChooserSettings *settings)
|
||||||
|
{
|
||||||
|
GtkWindow *toplevel;
|
||||||
|
int x, y, width, height;
|
||||||
|
|
||||||
|
/* We don't save the geometry in non-expanded "save" mode, so that the "little
|
||||||
|
* dialog" won't make future Open dialogs too small.
|
||||||
|
*/
|
||||||
|
if (!(impl->action == GTK_FILE_CHOOSER_ACTION_OPEN
|
||||||
|
|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
|
||||||
|
|| impl->expand_folders))
|
||||||
|
return;
|
||||||
|
|
||||||
|
toplevel = get_toplevel (GTK_WIDGET (impl));
|
||||||
|
|
||||||
|
if (!(toplevel && GTK_IS_FILE_CHOOSER_DIALOG (toplevel)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
gtk_window_get_position (toplevel, &x, &y);
|
||||||
|
gtk_window_get_size (toplevel, &width, &height);
|
||||||
|
|
||||||
|
_gtk_file_chooser_settings_set_geometry (settings, x, y, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
settings_save (GtkFileChooserDefault *impl)
|
settings_save (GtkFileChooserDefault *impl)
|
||||||
{
|
{
|
||||||
@ -6036,6 +6062,8 @@ settings_save (GtkFileChooserDefault *impl)
|
|||||||
_gtk_file_chooser_settings_set_expand_folders (settings, impl->expand_folders);
|
_gtk_file_chooser_settings_set_expand_folders (settings, impl->expand_folders);
|
||||||
_gtk_file_chooser_settings_set_show_size_column (settings, impl->show_size_column);
|
_gtk_file_chooser_settings_set_show_size_column (settings, impl->show_size_column);
|
||||||
|
|
||||||
|
save_dialog_geometry (impl, settings);
|
||||||
|
|
||||||
/* NULL GError */
|
/* NULL GError */
|
||||||
_gtk_file_chooser_settings_save (settings, NULL);
|
_gtk_file_chooser_settings_save (settings, NULL);
|
||||||
|
|
||||||
@ -7938,6 +7966,20 @@ gtk_file_chooser_default_get_default_size (GtkFileChooserEmbed *chooser_embed,
|
|||||||
|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
|
|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
|
||||||
|| impl->expand_folders)
|
|| impl->expand_folders)
|
||||||
{
|
{
|
||||||
|
GtkFileChooserSettings *settings;
|
||||||
|
int x, y, width, height;
|
||||||
|
|
||||||
|
settings = _gtk_file_chooser_settings_new ();
|
||||||
|
_gtk_file_chooser_settings_get_geometry (settings, &x, &y, &width, &height);
|
||||||
|
g_object_unref (settings);
|
||||||
|
|
||||||
|
if (x >= 0 && y >= 0 && width > 0 && height > 0)
|
||||||
|
{
|
||||||
|
*default_width = width;
|
||||||
|
*default_height = height;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
find_good_size_from_style (GTK_WIDGET (chooser_embed), default_width, default_height);
|
find_good_size_from_style (GTK_WIDGET (chooser_embed), default_width, default_height);
|
||||||
|
|
||||||
if (impl->preview_widget_active &&
|
if (impl->preview_widget_active &&
|
||||||
|
Loading…
Reference in New Issue
Block a user