After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 395225 - remember the size of the file-chooser window
remember the size of the file-chooser window
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
2.10.x
Other Linux
: Normal enhancement
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
Depends on:
Blocks:
 
 
Reported: 2007-01-10 23:53 UTC by Diego González
Modified: 2009-01-14 20:38 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Diego González 2007-01-10 23:53:27 UTC
hi,

it would be really nice if gtk could save the size of the filechooser currently it is ridicuslusly small, using the default size, for example Transmission (a gtk+ based bittorrent client) can only should 4 entries in each gtktreeview, but this problem happends with every application not only with Transmission.

Before being able to properly use the filechooser i have to resize it first, then it is quite ok, but before doing that it requires too many clicks on any of the scrollbars to do anything useful.
Comment 1 Federico Mena Quintero 2009-01-14 20:38:42 UTC
Fixed in trunk (see commits 22116, 22117, 22118, 22119):

2009-01-14  Federico Mena Quintero  <federico@novell.com>

	Remember the file chooser's geometry across invocations.

	* gtk/gtkfilechoosersettings.h (struct _GtkFileChooserSettings):
	New fields geometry_x, geometry_y, geometry_width, geometry_height.
	(_gtk_file_chooser_settings_get_geometry): New prototype.
	(_gtk_file_chooser_settings_set_geometry): New prototype.

	* gtk/gtkfilechoosersettings.c (GEOMETRY_X_KEY, GEOMETRY_Y_KEY,
	GEOMETRY_WIDTH_KEY, GEOMETRY_HEIGTH_KEY): New key names.
	(ensure_settings_read): Read the geometry keys.
	(_gtk_file_chooser_settings_save): Save the geometry keys.
	(_gtk_file_chooser_settings_init): Initialize the geometry keys to
	"don't have this value".
	(_gtk_file_chooser_settings_get_geometry): New public function.
	(_gtk_file_chooser_settings_set_geometry): New public function.

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_map):
	Don't change the default size in ::map() so we don't flicker...
	(gtk_file_chooser_default_realize): ... so do it in ::realize()
	instead, when the window is not yet visible.  This avoids a
	dialog-that-resizes when you first pop up the file chooser.
	(emit_default_size_changed): Just emit the signal; don't check for
	the widget's state so we can be emitted during the initial
	::realize() when we are not mapped yet.
	(update_preview_widget_visibility): Only emit default_size_changed
	if the widget is not mapped, to avoid resizing the dialog while it
	is visible.

	* gtk/gtkfilechooserdialog.c
	(file_chooser_widget_default_size_changed): Simply resize the
	dialog to the default size without any fancy clamping.  Also,
	leave in place ifdef-ed out code to restore the file chooser's
	position in addition to its size.  The code to restore the
	position doesn't quite work yet, but we'll leave it in as a
	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.