1504 lines
48 KiB
Diff
1504 lines
48 KiB
Diff
From 048a63053003854a380b5dd4aaf0cdf939d893f4 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Thu, 23 Oct 2008 16:41:35 -0500
|
|
Subject: [PATCH 01/23] Add GtkFileChooserSettings for the dialog's geometry
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechoosersettings.c | 68 ++++++++++++++++++++++++++++++++++++++++++
|
|
gtk/gtkfilechoosersettings.h | 16 ++++++++++
|
|
2 files changed, 84 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechoosersettings.c b/gtk/gtkfilechoosersettings.c
|
|
index b80d362..37985c6 100644
|
|
--- a/gtk/gtkfilechoosersettings.c
|
|
+++ b/gtk/gtkfilechoosersettings.c
|
|
@@ -41,6 +41,10 @@
|
|
#define LOCATION_MODE_KEY "LocationMode"
|
|
#define SHOW_HIDDEN_KEY "ShowHidden"
|
|
#define EXPAND_FOLDERS_KEY "ExpandFolders"
|
|
+#define GEOMETRY_X_KEY "GeometryX"
|
|
+#define GEOMETRY_Y_KEY "GeometryY"
|
|
+#define GEOMETRY_WIDTH_KEY "GeometryWidth"
|
|
+#define GEOMETRY_HEIGHT_KEY "GeometryHeight"
|
|
|
|
#define MODE_PATH_BAR "path-bar"
|
|
#define MODE_FILENAME_ENTRY "filename-entry"
|
|
@@ -60,6 +64,24 @@ get_config_filename (void)
|
|
}
|
|
|
|
static void
|
|
+get_int_key (GKeyFile *key_file, const char *group, const char *key, int *out_value)
|
|
+{
|
|
+ GError *error;
|
|
+ int val;
|
|
+
|
|
+ error = NULL;
|
|
+ val = g_key_file_get_integer (key_file, group, key, &error);
|
|
+
|
|
+ if (val == 0 && error != NULL)
|
|
+ {
|
|
+ *out_value = -1;
|
|
+ g_error_free (error);
|
|
+ }
|
|
+ else
|
|
+ *out_value = val;
|
|
+}
|
|
+
|
|
+static void
|
|
ensure_settings_read (GtkFileChooserSettings *settings)
|
|
{
|
|
GError *error;
|
|
@@ -127,6 +149,11 @@ ensure_settings_read (GtkFileChooserSettings *settings)
|
|
else
|
|
settings->expand_folders = value != FALSE;
|
|
|
|
+ get_int_key (key_file, SETTINGS_GROUP, GEOMETRY_X_KEY, &settings->geometry_x);
|
|
+ get_int_key (key_file, SETTINGS_GROUP, GEOMETRY_Y_KEY, &settings->geometry_y);
|
|
+ get_int_key (key_file, SETTINGS_GROUP, GEOMETRY_WIDTH_KEY, &settings->geometry_width);
|
|
+ get_int_key (key_file, SETTINGS_GROUP, GEOMETRY_HEIGHT_KEY, &settings->geometry_height);
|
|
+
|
|
out:
|
|
|
|
g_key_file_free (key_file);
|
|
@@ -148,6 +175,11 @@ _gtk_file_chooser_settings_init (GtkFileChooserSettings *settings)
|
|
settings->location_mode = LOCATION_MODE_PATH_BAR;
|
|
settings->show_hidden = FALSE;
|
|
settings->expand_folders = FALSE;
|
|
+
|
|
+ settings->geometry_x = -1;
|
|
+ settings->geometry_y = -1;
|
|
+ settings->geometry_width = -1;
|
|
+ settings->geometry_height = -1;
|
|
}
|
|
|
|
GtkFileChooserSettings *
|
|
@@ -198,6 +230,34 @@ _gtk_file_chooser_settings_set_expand_folders (GtkFileChooserSettings *settings,
|
|
settings->expand_folders = expand_folders != FALSE;
|
|
}
|
|
|
|
+void
|
|
+_gtk_file_chooser_settings_get_geometry (GtkFileChooserSettings *settings,
|
|
+ int *out_x,
|
|
+ int *out_y,
|
|
+ int *out_width,
|
|
+ int *out_heigth)
|
|
+{
|
|
+ ensure_settings_read (settings);
|
|
+
|
|
+ *out_x = settings->geometry_x;
|
|
+ *out_y = settings->geometry_y;
|
|
+ *out_width = settings->geometry_width;
|
|
+ *out_height = settings->geometry_height;
|
|
+}
|
|
+
|
|
+void
|
|
+_gtk_file_chooser_settings_set_geometry (GtkFileChooserSettings *settings,
|
|
+ int x,
|
|
+ int y,
|
|
+ int width,
|
|
+ int heigth)
|
|
+{
|
|
+ settings->geometry_x = x;
|
|
+ settings->geometry_y = y;
|
|
+ settings->geometry_width = width;
|
|
+ settings->geometry_height = height;
|
|
+}
|
|
+
|
|
gboolean
|
|
_gtk_file_chooser_settings_save (GtkFileChooserSettings *settings,
|
|
GError **error)
|
|
@@ -238,6 +298,14 @@ _gtk_file_chooser_settings_save (GtkFileChooserSettings *settings,
|
|
SHOW_HIDDEN_KEY, settings->show_hidden);
|
|
g_key_file_set_boolean (key_file, SETTINGS_GROUP,
|
|
EXPAND_FOLDERS_KEY, settings->expand_folders);
|
|
+ g_key_file_set_integer (key_file, SETTINGS_GROUP,
|
|
+ GEOMETRY_X_KEY, settings->geometry_x);
|
|
+ g_key_file_set_integer (key_file, SETTINGS_GROUP,
|
|
+ GEOMETRY_Y_KEY, settings->geometry_y);
|
|
+ g_key_file_set_integer (key_file, SETTINGS_GROUP,
|
|
+ GEOMETRY_WIDTH_KEY, settings->geometry_width);
|
|
+ g_key_file_set_integer (key_file, SETTINGS_GROUP,
|
|
+ GEOMETRY_HEIGHT_KEY, settings->geometry_height);
|
|
|
|
contents = g_key_file_to_data (key_file, &len, error);
|
|
g_key_file_free (key_file);
|
|
diff --git a/gtk/gtkfilechoosersettings.h b/gtk/gtkfilechoosersettings.h
|
|
index c7c4179..94d2e3a 100644
|
|
--- a/gtk/gtkfilechoosersettings.h
|
|
+++ b/gtk/gtkfilechoosersettings.h
|
|
@@ -38,6 +38,11 @@ struct _GtkFileChooserSettings
|
|
|
|
LocationMode location_mode;
|
|
|
|
+ int geometry_x;
|
|
+ int geometry_y;
|
|
+ int geometry_width;
|
|
+ int geometry_height;
|
|
+
|
|
guint settings_read : 1;
|
|
|
|
guint show_hidden : 1;
|
|
@@ -66,6 +71,17 @@ gboolean _gtk_file_chooser_settings_get_expand_folders (GtkFileChooserSettings *
|
|
void _gtk_file_chooser_settings_set_expand_folders (GtkFileChooserSettings *settings,
|
|
gboolean expand_folders);
|
|
|
|
+void _gtk_file_chooser_settings_get_geometry (GtkFileChooserSettings *settings,
|
|
+ int *out_x,
|
|
+ int *out_y,
|
|
+ int *out_width,
|
|
+ int *out_heigth);
|
|
+void _gtk_file_chooser_settings_set_geometry (GtkFileChooserSettings *settings,
|
|
+ int x,
|
|
+ int y,
|
|
+ int width,
|
|
+ int heigth);
|
|
+
|
|
gboolean _gtk_file_chooser_settings_save (GtkFileChooserSettings *settings,
|
|
GError **error);
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 5fc9269c2e92d2d3c46c01e9a7e29826d950ef5e Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Thu, 23 Oct 2008 16:42:27 -0500
|
|
Subject: [PATCH 02/23] Save the dialog geometry when the file chooser unmaps
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 19 +++++++++++++++++++
|
|
1 files changed, 19 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 16759a1..63ac9e7 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5986,6 +5986,23 @@ settings_load (GtkFileChooserDefault *impl)
|
|
}
|
|
|
|
static void
|
|
+save_dialog_geometry (GtkFileChooserDefault *impl, GtkFileChooserSettings *settings)
|
|
+{
|
|
+ GtkWindow *toplevel;
|
|
+ int x, y, width, heigth;
|
|
+
|
|
+ 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
|
|
settings_save (GtkFileChooserDefault *impl)
|
|
{
|
|
GtkFileChooserSettings *settings;
|
|
@@ -5996,6 +6013,8 @@ settings_save (GtkFileChooserDefault *impl)
|
|
_gtk_file_chooser_settings_set_show_hidden (settings, gtk_file_chooser_get_show_hidden (GTK_FILE_CHOOSER (impl)));
|
|
_gtk_file_chooser_settings_set_expand_folders (settings, impl->expand_folders);
|
|
|
|
+ save_dialog_geometry (impl, settings);
|
|
+
|
|
/* NULL GError */
|
|
_gtk_file_chooser_settings_save (settings, NULL);
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 66937f842a0199a01e872c27a9fe68f9159f8ee7 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Wed, 29 Oct 2008 12:05:12 -0600
|
|
Subject: [PATCH 03/23] Move/resize the file chooser dialog when the settings get loaded
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 15 +++++++++++++++
|
|
1 files changed, 15 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 63ac9e7..74bc138 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5969,6 +5969,7 @@ settings_load (GtkFileChooserDefault *impl)
|
|
LocationMode location_mode;
|
|
gboolean show_hidden;
|
|
gboolean expand_folders;
|
|
+ int x, y, width, heigth;
|
|
|
|
settings = _gtk_file_chooser_settings_new ();
|
|
|
|
@@ -5976,6 +5977,20 @@ settings_load (GtkFileChooserDefault *impl)
|
|
show_hidden = _gtk_file_chooser_settings_get_show_hidden (settings);
|
|
expand_folders = _gtk_file_chooser_settings_get_expand_folders (settings);
|
|
|
|
+ _gtk_file_chooser_settings_get_geometry (settings, &x, &y, &width, &height);
|
|
+ if (x >= 0 && y >= 0 && width > 0 && height > 0)
|
|
+ {
|
|
+ GtkWindow *toplevel;
|
|
+
|
|
+ toplevel = get_toplevel (GTK_WIDGET (impl));
|
|
+
|
|
+ if (toplevel && GTK_IS_FILE_CHOOSER_DIALOG (toplevel))
|
|
+ {
|
|
+ gtk_window_move (toplevel, x, y);
|
|
+ gtk_window_resize (toplevel, width, heigth);
|
|
+ }
|
|
+ }
|
|
+
|
|
g_object_unref (settings);
|
|
|
|
location_mode_set (impl, location_mode, TRUE);
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From e1f3aa1cf60f940c2823916bd4f123ab668c2481 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 14:50:26 -0600
|
|
Subject: [PATCH 04/23] FIX: settings_load
|
|
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 2 +-
|
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 74bc138..5c53d48 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5969,7 +5969,7 @@ settings_load (GtkFileChooserDefault *impl)
|
|
LocationMode location_mode;
|
|
gboolean show_hidden;
|
|
gboolean expand_folders;
|
|
- int x, y, width, heigth;
|
|
+ int x, y, width, height;
|
|
|
|
settings = _gtk_file_chooser_settings_new ();
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 83cff057f0f758c58346ec2a09f2bc4e5589026a Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 14:50:31 -0600
|
|
Subject: [PATCH 05/23] FIX: include file
|
|
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 1 +
|
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 5c53d48..5cd3dba 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -34,6 +34,7 @@
|
|
#include "gtkexpander.h"
|
|
#include "gtkfilechooserprivate.h"
|
|
#include "gtkfilechooserdefault.h"
|
|
+#include "gtkfilechooserdialog.h"
|
|
#include "gtkfilechooserembed.h"
|
|
#include "gtkfilechooserentry.h"
|
|
#include "gtkfilechoosersettings.h"
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 66f240ec4a37d275c4cc6e8069386c5aefa71146 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 14:52:15 -0600
|
|
Subject: [PATCH 06/23] FIX: height misspellings
|
|
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 4 ++--
|
|
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 5cd3dba..e795ba5 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5988,7 +5988,7 @@ settings_load (GtkFileChooserDefault *impl)
|
|
if (toplevel && GTK_IS_FILE_CHOOSER_DIALOG (toplevel))
|
|
{
|
|
gtk_window_move (toplevel, x, y);
|
|
- gtk_window_resize (toplevel, width, heigth);
|
|
+ gtk_window_resize (toplevel, width, height);
|
|
}
|
|
}
|
|
|
|
@@ -6005,7 +6005,7 @@ static void
|
|
save_dialog_geometry (GtkFileChooserDefault *impl, GtkFileChooserSettings *settings)
|
|
{
|
|
GtkWindow *toplevel;
|
|
- int x, y, width, heigth;
|
|
+ int x, y, width, height;
|
|
|
|
toplevel = get_toplevel (GTK_WIDGET (impl));
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 83df5f40b1cfa13c731f28abdf414e05d9be15e4 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 15:55:24 -0600
|
|
Subject: [PATCH 07/23] FIX: settings misspellings
|
|
|
|
---
|
|
gtk/gtkfilechoosersettings.c | 4 ++--
|
|
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechoosersettings.c b/gtk/gtkfilechoosersettings.c
|
|
index 37985c6..c887928 100644
|
|
--- a/gtk/gtkfilechoosersettings.c
|
|
+++ b/gtk/gtkfilechoosersettings.c
|
|
@@ -235,7 +235,7 @@ _gtk_file_chooser_settings_get_geometry (GtkFileChooserSettings *settings,
|
|
int *out_x,
|
|
int *out_y,
|
|
int *out_width,
|
|
- int *out_heigth)
|
|
+ int *out_height)
|
|
{
|
|
ensure_settings_read (settings);
|
|
|
|
@@ -250,7 +250,7 @@ _gtk_file_chooser_settings_set_geometry (GtkFileChooserSettings *settings,
|
|
int x,
|
|
int y,
|
|
int width,
|
|
- int heigth)
|
|
+ int height)
|
|
{
|
|
settings->geometry_x = x;
|
|
settings->geometry_y = y;
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 023c89c70e96643c137816618c625970c59a912c Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 16:45:08 -0600
|
|
Subject: [PATCH 08/23] Set the position in GtkFileChooserDialog
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 30 +++++++++++++++---------------
|
|
gtk/gtkfilechooserdialog.c | 19 +++++++++++++++++++
|
|
2 files changed, 34 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index e795ba5..ca9991e 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5970,7 +5970,6 @@ settings_load (GtkFileChooserDefault *impl)
|
|
LocationMode location_mode;
|
|
gboolean show_hidden;
|
|
gboolean expand_folders;
|
|
- int x, y, width, height;
|
|
|
|
settings = _gtk_file_chooser_settings_new ();
|
|
|
|
@@ -5978,20 +5977,6 @@ settings_load (GtkFileChooserDefault *impl)
|
|
show_hidden = _gtk_file_chooser_settings_get_show_hidden (settings);
|
|
expand_folders = _gtk_file_chooser_settings_get_expand_folders (settings);
|
|
|
|
- _gtk_file_chooser_settings_get_geometry (settings, &x, &y, &width, &height);
|
|
- if (x >= 0 && y >= 0 && width > 0 && height > 0)
|
|
- {
|
|
- GtkWindow *toplevel;
|
|
-
|
|
- toplevel = get_toplevel (GTK_WIDGET (impl));
|
|
-
|
|
- if (toplevel && GTK_IS_FILE_CHOOSER_DIALOG (toplevel))
|
|
- {
|
|
- gtk_window_move (toplevel, x, y);
|
|
- gtk_window_resize (toplevel, width, height);
|
|
- }
|
|
- }
|
|
-
|
|
g_object_unref (settings);
|
|
|
|
location_mode_set (impl, location_mode, TRUE);
|
|
@@ -7853,9 +7838,24 @@ gtk_file_chooser_default_get_default_size (GtkFileChooserEmbed *chooser_embed,
|
|
{
|
|
GtkFileChooserDefault *impl;
|
|
GtkRequisition req;
|
|
+ GtkFileChooserSettings *settings;
|
|
+ int x, y, width, height;
|
|
|
|
impl = GTK_FILE_CHOOSER_DEFAULT (chooser_embed);
|
|
|
|
+ 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)
|
|
+ {
|
|
+ GtkWindow *toplevel;
|
|
+
|
|
+ *default_width = width;
|
|
+ *default_height = height;
|
|
+ return;
|
|
+ }
|
|
+
|
|
if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN
|
|
|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
|
|
|| impl->expand_folders)
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index ec42374..5ebfdd9 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -25,6 +25,7 @@
|
|
#include "gtkfilechooserwidget.h"
|
|
#include "gtkfilechooserutils.h"
|
|
#include "gtkfilechooserembed.h"
|
|
+#include "gtkfilechoosersettings.h"
|
|
#include "gtkfilesystem.h"
|
|
#include "gtktypebuiltins.h"
|
|
#include "gtkintl.h"
|
|
@@ -178,6 +179,20 @@ clamp_to_screen (GtkWidget *widget,
|
|
}
|
|
|
|
static void
|
|
+load_position (int *out_xpos, int *out_ypos)
|
|
+{
|
|
+ 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);
|
|
+
|
|
+ *out_xpos = x;
|
|
+ *out_ypos = y;
|
|
+}
|
|
+
|
|
+static void
|
|
file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
GtkFileChooserDialog *dialog)
|
|
{
|
|
@@ -185,6 +200,7 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
gint width, height;
|
|
gint default_width, default_height;
|
|
GtkRequisition req, widget_req;
|
|
+ int xpos, ypos;
|
|
|
|
priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
@@ -209,6 +225,7 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
_gtk_file_chooser_embed_get_default_size (GTK_FILE_CHOOSER_EMBED (priv->widget),
|
|
&default_width, &default_height);
|
|
+ load_position (&xpos, &ypos);
|
|
|
|
/* Ideal target size plus any extra size */
|
|
width = default_width + width + (2 * GTK_CONTAINER (dialog)->border_width);
|
|
@@ -218,6 +235,8 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
clamp_to_screen (GTK_WIDGET (dialog), &width, &height);
|
|
|
|
gtk_window_resize (GTK_WINDOW (dialog), width, height);
|
|
+ if (xpos >= 0 && ypos >= 0)
|
|
+ gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
}
|
|
|
|
static void
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 324775cdf637227bac573287959e537bfb221803 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 4 Nov 2008 18:03:54 -0600
|
|
Subject: [PATCH 09/23] Don't clamp the loaded size to the screen; just reuse it
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 26 --------------------------
|
|
1 files changed, 0 insertions(+), 26 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index 5ebfdd9..e095366 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -156,29 +156,6 @@ file_chooser_widget_file_activated (GtkFileChooser *chooser,
|
|
}
|
|
|
|
static void
|
|
-clamp_to_screen (GtkWidget *widget,
|
|
- gint *width,
|
|
- gint *height)
|
|
-{
|
|
- GdkScreen *screen;
|
|
- int monitor_num;
|
|
- GdkRectangle monitor;
|
|
-
|
|
- g_return_if_fail (GTK_WIDGET_REALIZED (widget));
|
|
-
|
|
- screen = gtk_widget_get_screen (widget);
|
|
- monitor_num = gdk_screen_get_monitor_at_window (screen, widget->window);
|
|
-
|
|
- gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
|
|
-
|
|
- if (width)
|
|
- *width = MIN (*width, (monitor.width * 3) / 4);
|
|
-
|
|
- if (height)
|
|
- *height = MIN (*height, (monitor.height * 3) / 4);
|
|
-}
|
|
-
|
|
-static void
|
|
load_position (int *out_xpos, int *out_ypos)
|
|
{
|
|
GtkFileChooserSettings *settings;
|
|
@@ -231,9 +208,6 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
width = default_width + width + (2 * GTK_CONTAINER (dialog)->border_width);
|
|
height = default_height + height + (2 * GTK_CONTAINER (dialog)->border_width);
|
|
|
|
- if (GTK_WIDGET_REALIZED (dialog))
|
|
- clamp_to_screen (GTK_WIDGET (dialog), &width, &height);
|
|
-
|
|
gtk_window_resize (GTK_WINDOW (dialog), width, height);
|
|
if (xpos >= 0 && ypos >= 0)
|
|
gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 142a1abf88a80689e2d7ff1b9f64292cf8acd737 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Wed, 5 Nov 2008 11:48:03 -0600
|
|
Subject: [PATCH 10/23] Don't add the dialog's border width to the final window size
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 15 +--------------
|
|
1 files changed, 1 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index e095366..dcba623 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -174,7 +174,6 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
GtkFileChooserDialog *dialog)
|
|
{
|
|
GtkFileChooserDialogPrivate *priv;
|
|
- gint width, height;
|
|
gint default_width, default_height;
|
|
GtkRequisition req, widget_req;
|
|
int xpos, ypos;
|
|
@@ -190,25 +189,13 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
* that widget->requisition is meaningful. */
|
|
gtk_widget_size_request (GTK_WIDGET (dialog), &req);
|
|
gtk_widget_size_request (widget, &widget_req);
|
|
-
|
|
- width = req.width - widget_req.width;
|
|
- height = req.height - widget_req.height;
|
|
- }
|
|
- else
|
|
- {
|
|
- width = GTK_WIDGET (dialog)->allocation.width - widget->allocation.width;
|
|
- height = GTK_WIDGET (dialog)->allocation.height - widget->allocation.height;
|
|
}
|
|
|
|
_gtk_file_chooser_embed_get_default_size (GTK_FILE_CHOOSER_EMBED (priv->widget),
|
|
&default_width, &default_height);
|
|
load_position (&xpos, &ypos);
|
|
|
|
- /* Ideal target size plus any extra size */
|
|
- width = default_width + width + (2 * GTK_CONTAINER (dialog)->border_width);
|
|
- height = default_height + height + (2 * GTK_CONTAINER (dialog)->border_width);
|
|
-
|
|
- gtk_window_resize (GTK_WINDOW (dialog), width, height);
|
|
+ gtk_window_resize (GTK_WINDOW (dialog), default_width, default_height);
|
|
if (xpos >= 0 && ypos >= 0)
|
|
gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
}
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From b78f1fdb89a6cb73410443f92b1f7e888a6770f6 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Wed, 5 Nov 2008 18:24:51 -0600
|
|
Subject: [PATCH 11/23] Don't use GTK_WIN_POS_CENTER on the dialog so our position will be used
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 5 ++++-
|
|
1 files changed, 4 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index dcba623..27e8225 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -197,7 +197,10 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
gtk_window_resize (GTK_WINDOW (dialog), default_width, default_height);
|
|
if (xpos >= 0 && ypos >= 0)
|
|
- gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
+ {
|
|
+ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_NONE);
|
|
+ gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
+ }
|
|
}
|
|
|
|
static void
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 3156cbe47b5a725c576be18c8fa599c546148def Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Wed, 5 Nov 2008 19:21:16 -0600
|
|
Subject: [PATCH 12/23] Only return the loaded size for the expanded modes
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 31 ++++++++++++++++---------------
|
|
1 files changed, 16 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index ca9991e..436246f 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -7838,28 +7838,29 @@ gtk_file_chooser_default_get_default_size (GtkFileChooserEmbed *chooser_embed,
|
|
{
|
|
GtkFileChooserDefault *impl;
|
|
GtkRequisition req;
|
|
- GtkFileChooserSettings *settings;
|
|
- int x, y, width, height;
|
|
|
|
impl = GTK_FILE_CHOOSER_DEFAULT (chooser_embed);
|
|
|
|
- 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)
|
|
- {
|
|
- GtkWindow *toplevel;
|
|
-
|
|
- *default_width = width;
|
|
- *default_height = height;
|
|
- return;
|
|
- }
|
|
-
|
|
if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN
|
|
|| impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
|
|
|| 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)
|
|
+ {
|
|
+ GtkWindow *toplevel;
|
|
+
|
|
+ *default_width = width;
|
|
+ *default_height = height;
|
|
+ return;
|
|
+ }
|
|
+
|
|
find_good_size_from_style (GTK_WIDGET (chooser_embed), default_width, default_height);
|
|
|
|
if (impl->preview_widget_active &&
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From b96ebba55f3c00cf8cbc3eafdcd5113ba6de6570 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Fri, 19 Dec 2008 12:39:18 -0600
|
|
Subject: [PATCH 13/23] Utility functions to print indented messages from the file chooser
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 36 ++++++++++++++++++++++++++++++++++++
|
|
gtk/gtkfilechooserprivate.h | 3 +++
|
|
2 files changed, 39 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index 27e8225..a9e91d9 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -485,5 +485,41 @@ gtk_file_chooser_dialog_new_with_backend (const gchar *title,
|
|
return result;
|
|
}
|
|
|
|
+static int indentation = 0;
|
|
+
|
|
+void
|
|
+_gtk_file_chooser_msg (const char *format, ...)
|
|
+{
|
|
+ int i;
|
|
+ va_list args;
|
|
+
|
|
+ printf ("FILE_CHOOSER: ");
|
|
+
|
|
+ for (i = 0; i < indentation; i++)
|
|
+ putchar (' ');
|
|
+
|
|
+ va_start (args, format);
|
|
+ vprintf (format, args);
|
|
+ va_end (args);
|
|
+
|
|
+ printf ("\n");
|
|
+ fflush (stdout);
|
|
+}
|
|
+
|
|
+void
|
|
+_gtk_file_chooser_indent (gboolean do_indent)
|
|
+{
|
|
+ if (do_indent)
|
|
+ indentation += 4;
|
|
+ else
|
|
+ indentation -= 4;
|
|
+
|
|
+ if (indentation < 0)
|
|
+ {
|
|
+ printf ("FILE_CHOOSER: You screwed up your indentation; resetting to zero\n");
|
|
+ indentation = 0;
|
|
+ }
|
|
+}
|
|
+
|
|
#define __GTK_FILE_CHOOSER_DIALOG_C__
|
|
#include "gtkaliasdef.c"
|
|
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
|
|
index ef60734..2728c9d 100644
|
|
--- a/gtk/gtkfilechooserprivate.h
|
|
+++ b/gtk/gtkfilechooserprivate.h
|
|
@@ -361,6 +361,9 @@ struct _FileModelNode
|
|
guint load_pending : 1;
|
|
};
|
|
|
|
+void _gtk_file_chooser_msg (const char *format, ...);
|
|
+void _gtk_file_chooser_msg_indent (gboolean do_indent);
|
|
+
|
|
|
|
G_END_DECLS
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 7c259362a03d563f20080de1c11f9a25e13e7a25 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Fri, 19 Dec 2008 12:46:12 -0600
|
|
Subject: [PATCH 14/23] Debug messages for GtkFileChooserDialog
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 16 +++++++++++++++-
|
|
1 files changed, 15 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index a9e91d9..b73695f 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -178,6 +178,9 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
GtkRequisition req, widget_req;
|
|
int xpos, ypos;
|
|
|
|
+ _gtk_file_chooser_msg ("dialog - default_size_changed callback {");
|
|
+ _gtk_file_chooser_msg_indent (TRUE);
|
|
+
|
|
priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
/* Unset any previously set size */
|
|
@@ -195,12 +198,17 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
&default_width, &default_height);
|
|
load_position (&xpos, &ypos);
|
|
|
|
+ _gtk_file_chooser_msg ("Resizing dialog to %dx%d", default_width, default_height);
|
|
gtk_window_resize (GTK_WINDOW (dialog), default_width, default_height);
|
|
if (xpos >= 0 && ypos >= 0)
|
|
{
|
|
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_NONE);
|
|
gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
+ _gtk_file_chooser_msg ("Moving dialog to (%d, %d)", xpos, ypos);
|
|
}
|
|
+
|
|
+ _gtk_file_chooser_msg_indent (FALSE);
|
|
+ _gtk_file_chooser_msg ("}");
|
|
}
|
|
|
|
static void
|
|
@@ -334,6 +342,9 @@ gtk_file_chooser_dialog_map (GtkWidget *widget)
|
|
GtkFileChooserDialog *dialog = GTK_FILE_CHOOSER_DIALOG (widget);
|
|
GtkFileChooserDialogPrivate *priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
+ _gtk_file_chooser_msg ("dialog - map {");
|
|
+ _gtk_file_chooser_msg_indent (TRUE);
|
|
+
|
|
ensure_default_response (dialog);
|
|
|
|
if (!GTK_WIDGET_MAPPED (priv->widget))
|
|
@@ -342,6 +353,9 @@ gtk_file_chooser_dialog_map (GtkWidget *widget)
|
|
_gtk_file_chooser_embed_initial_focus (GTK_FILE_CHOOSER_EMBED (priv->widget));
|
|
|
|
GTK_WIDGET_CLASS (gtk_file_chooser_dialog_parent_class)->map (widget);
|
|
+
|
|
+ _gtk_file_chooser_msg_indent (FALSE);
|
|
+ _gtk_file_chooser_msg ("}");
|
|
}
|
|
|
|
/* GtkWidget::unmap handler */
|
|
@@ -507,7 +521,7 @@ _gtk_file_chooser_msg (const char *format, ...)
|
|
}
|
|
|
|
void
|
|
-_gtk_file_chooser_indent (gboolean do_indent)
|
|
+_gtk_file_chooser_msg_indent (gboolean do_indent)
|
|
{
|
|
if (do_indent)
|
|
indentation += 4;
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From a8c678d2fe7c9ca5202f084712f6e01729dcbcda Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Fri, 19 Dec 2008 13:12:04 -0600
|
|
Subject: [PATCH 15/23] Debug messages for GtkFileChooserDefault
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 16 +++++++++++++++-
|
|
1 files changed, 15 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 436246f..4fbfae2 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -1158,7 +1158,10 @@ static void
|
|
emit_default_size_changed (GtkFileChooserDefault *impl)
|
|
{
|
|
if (!GTK_WIDGET_MAPPED (impl))
|
|
- return;
|
|
+ {
|
|
+ _gtk_file_chooser_msg ("emit_default_size_changed - bailing out since we are not mapped");
|
|
+ return;
|
|
+ }
|
|
|
|
profile_msg (" emit default-size-changed start", NULL);
|
|
g_signal_emit_by_name (impl, "default-size-changed");
|
|
@@ -1193,6 +1196,7 @@ update_preview_widget_visibility (GtkFileChooserDefault *impl)
|
|
else
|
|
gtk_widget_hide (impl->preview_box);
|
|
|
|
+ _gtk_file_chooser_msg ("update_preview_widget_visibility - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
}
|
|
|
|
@@ -5461,6 +5465,7 @@ update_appearance (GtkFileChooserDefault *impl)
|
|
*/
|
|
gtk_widget_queue_draw (impl->browse_files_tree_view);
|
|
|
|
+ _gtk_file_chooser_msg ("update_apperance - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
}
|
|
|
|
@@ -5880,6 +5885,7 @@ gtk_file_chooser_default_style_set (GtkWidget *widget,
|
|
if (gtk_widget_has_screen (GTK_WIDGET (impl)))
|
|
change_icon_theme (impl);
|
|
|
|
+ _gtk_file_chooser_msg ("gtk_file_chooser_default_style_set - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
|
|
profile_end ("end", NULL);
|
|
@@ -5901,6 +5907,7 @@ gtk_file_chooser_default_screen_changed (GtkWidget *widget,
|
|
remove_settings_signal (impl, previous_screen);
|
|
check_icon_theme (impl);
|
|
|
|
+ _gtk_file_chooser_msg ("gtk_file_chooser_default_screen_changed - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
|
|
profile_end ("end", NULL);
|
|
@@ -6031,6 +6038,9 @@ gtk_file_chooser_default_map (GtkWidget *widget)
|
|
|
|
profile_start ("start", NULL);
|
|
|
|
+ _gtk_file_chooser_msg ("default - map {");
|
|
+ _gtk_file_chooser_msg_indent (TRUE);
|
|
+
|
|
impl = GTK_FILE_CHOOSER_DEFAULT (widget);
|
|
|
|
GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->map (widget);
|
|
@@ -6075,8 +6085,12 @@ gtk_file_chooser_default_map (GtkWidget *widget)
|
|
|
|
settings_load (impl);
|
|
|
|
+ _gtk_file_chooser_msg ("gtk_file_chooser_default_map - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
|
|
+ _gtk_file_chooser_msg_indent (FALSE);
|
|
+ _gtk_file_chooser_msg ("}");
|
|
+
|
|
profile_end ("end", NULL);
|
|
}
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 36a79f8916eab470525a5097a04ec3e1a5aadbb2 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Fri, 19 Dec 2008 23:29:36 -0600
|
|
Subject: [PATCH 16/23] bnc458120 - Don't change GtkFileChooserDialog's geometry from the settings while it is mapped
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 11 +++++++++++
|
|
gtk/gtkfilechooserprivate.h | 1 +
|
|
2 files changed, 12 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index b73695f..fdacdb1 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -183,6 +183,13 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
+ if (priv->have_set_geometry)
|
|
+ {
|
|
+ _gtk_file_chooser_msg_indent (FALSE);
|
|
+ _gtk_file_chooser_msg ("}");
|
|
+ return;
|
|
+ }
|
|
+
|
|
/* Unset any previously set size */
|
|
gtk_widget_set_size_request (GTK_WIDGET (dialog), -1, -1);
|
|
|
|
@@ -209,6 +216,8 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
_gtk_file_chooser_msg_indent (FALSE);
|
|
_gtk_file_chooser_msg ("}");
|
|
+
|
|
+ priv->have_set_geometry = TRUE;
|
|
}
|
|
|
|
static void
|
|
@@ -374,6 +383,8 @@ gtk_file_chooser_dialog_unmap (GtkWidget *widget)
|
|
* a new file chooser every time they need one.
|
|
*/
|
|
gtk_widget_unmap (priv->widget);
|
|
+
|
|
+ priv->have_set_geometry = FALSE;
|
|
}
|
|
|
|
/* GtkDialog::response handler */
|
|
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
|
|
index 2728c9d..eee5b4e 100644
|
|
--- a/gtk/gtkfilechooserprivate.h
|
|
+++ b/gtk/gtkfilechooserprivate.h
|
|
@@ -112,6 +112,7 @@ struct _GtkFileChooserDialogPrivate
|
|
|
|
/* for use with GtkFileChooserEmbed */
|
|
gboolean response_requested;
|
|
+ gboolean have_set_geometry;
|
|
};
|
|
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 7a8cab3e1d27f499827e6ea51ec31d4772b08673 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Sat, 20 Dec 2008 00:38:27 -0600
|
|
Subject: [PATCH 17/23] Emit default-size-changed in realize, not in map, so that we don't resize the already-shown window
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 32 +++++++++++++++++++++++---------
|
|
1 files changed, 23 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 4fbfae2..99d2992 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -275,6 +275,7 @@ static void gtk_file_chooser_default_get_property (GObject *ob
|
|
static void gtk_file_chooser_default_dispose (GObject *object);
|
|
static void gtk_file_chooser_default_show_all (GtkWidget *widget);
|
|
static void gtk_file_chooser_default_map (GtkWidget *widget);
|
|
+static void gtk_file_chooser_default_realize (GtkWidget *widget);
|
|
static void gtk_file_chooser_default_unmap (GtkWidget *widget);
|
|
static void gtk_file_chooser_default_hierarchy_changed (GtkWidget *widget,
|
|
GtkWidget *previous_toplevel);
|
|
@@ -567,6 +568,7 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class)
|
|
|
|
widget_class->show_all = gtk_file_chooser_default_show_all;
|
|
widget_class->map = gtk_file_chooser_default_map;
|
|
+ widget_class->realize = gtk_file_chooser_default_realize;
|
|
widget_class->unmap = gtk_file_chooser_default_unmap;
|
|
widget_class->hierarchy_changed = gtk_file_chooser_default_hierarchy_changed;
|
|
widget_class->style_set = gtk_file_chooser_default_style_set;
|
|
@@ -1157,12 +1159,6 @@ change_folder_and_display_error (GtkFileChooserDefault *impl,
|
|
static void
|
|
emit_default_size_changed (GtkFileChooserDefault *impl)
|
|
{
|
|
- if (!GTK_WIDGET_MAPPED (impl))
|
|
- {
|
|
- _gtk_file_chooser_msg ("emit_default_size_changed - bailing out since we are not mapped");
|
|
- return;
|
|
- }
|
|
-
|
|
profile_msg (" emit default-size-changed start", NULL);
|
|
g_signal_emit_by_name (impl, "default-size-changed");
|
|
profile_msg (" emit default-size-changed end", NULL);
|
|
@@ -6029,6 +6025,27 @@ settings_save (GtkFileChooserDefault *impl)
|
|
g_object_unref (settings);
|
|
}
|
|
|
|
+/* GtkWidget::realize method */
|
|
+static void
|
|
+gtk_file_chooser_default_realize (GtkWidget *widget)
|
|
+{
|
|
+ GtkFileChooserDefault *impl;
|
|
+ char *current_working_dir;
|
|
+
|
|
+ _gtk_file_chooser_msg ("default - realize {");
|
|
+ _gtk_file_chooser_msg_indent (TRUE);
|
|
+
|
|
+ impl = GTK_FILE_CHOOSER_DEFAULT (widget);
|
|
+
|
|
+ GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->realize (widget);
|
|
+
|
|
+ _gtk_file_chooser_msg ("gtk_file_chooser_default_realize - emitting default-size-changed");
|
|
+ emit_default_size_changed (impl);
|
|
+
|
|
+ _gtk_file_chooser_msg_indent (FALSE);
|
|
+ _gtk_file_chooser_msg ("}");
|
|
+}
|
|
+
|
|
/* GtkWidget::map method */
|
|
static void
|
|
gtk_file_chooser_default_map (GtkWidget *widget)
|
|
@@ -6085,9 +6102,6 @@ gtk_file_chooser_default_map (GtkWidget *widget)
|
|
|
|
settings_load (impl);
|
|
|
|
- _gtk_file_chooser_msg ("gtk_file_chooser_default_map - emitting default-size-changed");
|
|
- emit_default_size_changed (impl);
|
|
-
|
|
_gtk_file_chooser_msg_indent (FALSE);
|
|
_gtk_file_chooser_msg ("}");
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From b922387cd50494856fc8987263c0676b10ecd195 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Sat, 20 Dec 2008 01:34:01 -0600
|
|
Subject: [PATCH 18/23] Remove debug messages
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 17 -------------
|
|
gtk/gtkfilechooserdialog.c | 56 +------------------------------------------
|
|
gtk/gtkfilechooserprivate.h | 2 -
|
|
3 files changed, 1 insertions(+), 74 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 99d2992..7a0069b 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -1192,7 +1192,6 @@ update_preview_widget_visibility (GtkFileChooserDefault *impl)
|
|
else
|
|
gtk_widget_hide (impl->preview_box);
|
|
|
|
- _gtk_file_chooser_msg ("update_preview_widget_visibility - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
}
|
|
|
|
@@ -5461,7 +5460,6 @@ update_appearance (GtkFileChooserDefault *impl)
|
|
*/
|
|
gtk_widget_queue_draw (impl->browse_files_tree_view);
|
|
|
|
- _gtk_file_chooser_msg ("update_apperance - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
}
|
|
|
|
@@ -5881,7 +5879,6 @@ gtk_file_chooser_default_style_set (GtkWidget *widget,
|
|
if (gtk_widget_has_screen (GTK_WIDGET (impl)))
|
|
change_icon_theme (impl);
|
|
|
|
- _gtk_file_chooser_msg ("gtk_file_chooser_default_style_set - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
|
|
profile_end ("end", NULL);
|
|
@@ -5903,7 +5900,6 @@ gtk_file_chooser_default_screen_changed (GtkWidget *widget,
|
|
remove_settings_signal (impl, previous_screen);
|
|
check_icon_theme (impl);
|
|
|
|
- _gtk_file_chooser_msg ("gtk_file_chooser_default_screen_changed - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
|
|
profile_end ("end", NULL);
|
|
@@ -6032,18 +6028,11 @@ gtk_file_chooser_default_realize (GtkWidget *widget)
|
|
GtkFileChooserDefault *impl;
|
|
char *current_working_dir;
|
|
|
|
- _gtk_file_chooser_msg ("default - realize {");
|
|
- _gtk_file_chooser_msg_indent (TRUE);
|
|
-
|
|
impl = GTK_FILE_CHOOSER_DEFAULT (widget);
|
|
|
|
GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->realize (widget);
|
|
|
|
- _gtk_file_chooser_msg ("gtk_file_chooser_default_realize - emitting default-size-changed");
|
|
emit_default_size_changed (impl);
|
|
-
|
|
- _gtk_file_chooser_msg_indent (FALSE);
|
|
- _gtk_file_chooser_msg ("}");
|
|
}
|
|
|
|
/* GtkWidget::map method */
|
|
@@ -6055,9 +6044,6 @@ gtk_file_chooser_default_map (GtkWidget *widget)
|
|
|
|
profile_start ("start", NULL);
|
|
|
|
- _gtk_file_chooser_msg ("default - map {");
|
|
- _gtk_file_chooser_msg_indent (TRUE);
|
|
-
|
|
impl = GTK_FILE_CHOOSER_DEFAULT (widget);
|
|
|
|
GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->map (widget);
|
|
@@ -6102,9 +6088,6 @@ gtk_file_chooser_default_map (GtkWidget *widget)
|
|
|
|
settings_load (impl);
|
|
|
|
- _gtk_file_chooser_msg_indent (FALSE);
|
|
- _gtk_file_chooser_msg ("}");
|
|
-
|
|
profile_end ("end", NULL);
|
|
}
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index fdacdb1..8ea0ecc 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -178,17 +178,10 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
GtkRequisition req, widget_req;
|
|
int xpos, ypos;
|
|
|
|
- _gtk_file_chooser_msg ("dialog - default_size_changed callback {");
|
|
- _gtk_file_chooser_msg_indent (TRUE);
|
|
-
|
|
priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
if (priv->have_set_geometry)
|
|
- {
|
|
- _gtk_file_chooser_msg_indent (FALSE);
|
|
- _gtk_file_chooser_msg ("}");
|
|
- return;
|
|
- }
|
|
+ return;
|
|
|
|
/* Unset any previously set size */
|
|
gtk_widget_set_size_request (GTK_WIDGET (dialog), -1, -1);
|
|
@@ -205,18 +198,13 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
&default_width, &default_height);
|
|
load_position (&xpos, &ypos);
|
|
|
|
- _gtk_file_chooser_msg ("Resizing dialog to %dx%d", default_width, default_height);
|
|
gtk_window_resize (GTK_WINDOW (dialog), default_width, default_height);
|
|
if (xpos >= 0 && ypos >= 0)
|
|
{
|
|
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_NONE);
|
|
gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
- _gtk_file_chooser_msg ("Moving dialog to (%d, %d)", xpos, ypos);
|
|
}
|
|
|
|
- _gtk_file_chooser_msg_indent (FALSE);
|
|
- _gtk_file_chooser_msg ("}");
|
|
-
|
|
priv->have_set_geometry = TRUE;
|
|
}
|
|
|
|
@@ -351,9 +339,6 @@ gtk_file_chooser_dialog_map (GtkWidget *widget)
|
|
GtkFileChooserDialog *dialog = GTK_FILE_CHOOSER_DIALOG (widget);
|
|
GtkFileChooserDialogPrivate *priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
- _gtk_file_chooser_msg ("dialog - map {");
|
|
- _gtk_file_chooser_msg_indent (TRUE);
|
|
-
|
|
ensure_default_response (dialog);
|
|
|
|
if (!GTK_WIDGET_MAPPED (priv->widget))
|
|
@@ -362,9 +347,6 @@ gtk_file_chooser_dialog_map (GtkWidget *widget)
|
|
_gtk_file_chooser_embed_initial_focus (GTK_FILE_CHOOSER_EMBED (priv->widget));
|
|
|
|
GTK_WIDGET_CLASS (gtk_file_chooser_dialog_parent_class)->map (widget);
|
|
-
|
|
- _gtk_file_chooser_msg_indent (FALSE);
|
|
- _gtk_file_chooser_msg ("}");
|
|
}
|
|
|
|
/* GtkWidget::unmap handler */
|
|
@@ -510,41 +492,5 @@ gtk_file_chooser_dialog_new_with_backend (const gchar *title,
|
|
return result;
|
|
}
|
|
|
|
-static int indentation = 0;
|
|
-
|
|
-void
|
|
-_gtk_file_chooser_msg (const char *format, ...)
|
|
-{
|
|
- int i;
|
|
- va_list args;
|
|
-
|
|
- printf ("FILE_CHOOSER: ");
|
|
-
|
|
- for (i = 0; i < indentation; i++)
|
|
- putchar (' ');
|
|
-
|
|
- va_start (args, format);
|
|
- vprintf (format, args);
|
|
- va_end (args);
|
|
-
|
|
- printf ("\n");
|
|
- fflush (stdout);
|
|
-}
|
|
-
|
|
-void
|
|
-_gtk_file_chooser_msg_indent (gboolean do_indent)
|
|
-{
|
|
- if (do_indent)
|
|
- indentation += 4;
|
|
- else
|
|
- indentation -= 4;
|
|
-
|
|
- if (indentation < 0)
|
|
- {
|
|
- printf ("FILE_CHOOSER: You screwed up your indentation; resetting to zero\n");
|
|
- indentation = 0;
|
|
- }
|
|
-}
|
|
-
|
|
#define __GTK_FILE_CHOOSER_DIALOG_C__
|
|
#include "gtkaliasdef.c"
|
|
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
|
|
index eee5b4e..7369475 100644
|
|
--- a/gtk/gtkfilechooserprivate.h
|
|
+++ b/gtk/gtkfilechooserprivate.h
|
|
@@ -362,8 +362,6 @@ struct _FileModelNode
|
|
guint load_pending : 1;
|
|
};
|
|
|
|
-void _gtk_file_chooser_msg (const char *format, ...);
|
|
-void _gtk_file_chooser_msg_indent (gboolean do_indent);
|
|
|
|
|
|
G_END_DECLS
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From cfb3795f5f6f828ce5e71d1d75f68ce58a5f44ce Mon Sep 17 00:00:00 2001
|
|
From: bratsche <bratsche@7eb1c76a-c725-0410-a3b5-a37faf6256f8>
|
|
Date: Mon, 13 Oct 2008 15:15:23 +0000
|
|
Subject: [PATCH 19/23] Fix --action parsing in testfilechooser
|
|
2008-10-13 Cody Russell <cody@jhu.edu>
|
|
|
|
* test/testfilechooser.c: Fix option parsing so that -a and
|
|
--action work correctly.
|
|
|
|
git-svn-id: svn+ssh://svn.gnome.org/svn/gtk+/trunk@21645 7eb1c76a-c725-0410-a3b5-a37faf6256f8
|
|
---
|
|
tests/testfilechooser.c | 2 +-
|
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/tests/testfilechooser.c b/tests/testfilechooser.c
|
|
index 57b27f8..7c00805 100644
|
|
--- a/tests/testfilechooser.c
|
|
+++ b/tests/testfilechooser.c
|
|
@@ -491,7 +491,7 @@ main (int argc, char **argv)
|
|
char *backend = NULL;
|
|
GError *error = NULL;
|
|
GOptionEntry options[] = {
|
|
- { "action", 'a', 0, G_OPTION_ARG_STRING, &action, "Filechooser action", "ACTION" },
|
|
+ { "action", 'a', 0, G_OPTION_ARG_STRING, &action_arg, "Filechooser action", "ACTION" },
|
|
{ "backend", 'b', 0, G_OPTION_ARG_STRING, &backend, "Filechooser backend (default: gtk+)", "BACKEND" },
|
|
{ "multiple", 'm', 0, G_OPTION_ARG_NONE, &multiple, "Select-multiple", NULL },
|
|
{ "right-to-left", 'r', 0, G_OPTION_ARG_NONE, &force_rtl, "Force right-to-left layout.", NULL },
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From de8ab1248afe19cca93c273e186b97c7e70a5951 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 23 Dec 2008 13:16:41 -0600
|
|
Subject: [PATCH 20/23] Don't keep a flag about geometry being set; instead, just don't reposition the dialog if it is mapped
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdialog.c | 20 ++++++++------------
|
|
gtk/gtkfilechooserprivate.h | 1 -
|
|
2 files changed, 8 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
|
|
index 8ea0ecc..c80ed91 100644
|
|
--- a/gtk/gtkfilechooserdialog.c
|
|
+++ b/gtk/gtkfilechooserdialog.c
|
|
@@ -180,9 +180,6 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
priv = GTK_FILE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
|
|
|
|
- if (priv->have_set_geometry)
|
|
- return;
|
|
-
|
|
/* Unset any previously set size */
|
|
gtk_widget_set_size_request (GTK_WIDGET (dialog), -1, -1);
|
|
|
|
@@ -196,16 +193,17 @@ file_chooser_widget_default_size_changed (GtkWidget *widget,
|
|
|
|
_gtk_file_chooser_embed_get_default_size (GTK_FILE_CHOOSER_EMBED (priv->widget),
|
|
&default_width, &default_height);
|
|
- load_position (&xpos, &ypos);
|
|
-
|
|
gtk_window_resize (GTK_WINDOW (dialog), default_width, default_height);
|
|
- if (xpos >= 0 && ypos >= 0)
|
|
+
|
|
+ if (!GTK_WIDGET_MAPPED (dialog))
|
|
{
|
|
- gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_NONE);
|
|
- gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
+ load_position (&xpos, &ypos);
|
|
+ if (xpos >= 0 && ypos >= 0)
|
|
+ {
|
|
+ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_NONE);
|
|
+ gtk_window_move (GTK_WINDOW (dialog), xpos, ypos);
|
|
+ }
|
|
}
|
|
-
|
|
- priv->have_set_geometry = TRUE;
|
|
}
|
|
|
|
static void
|
|
@@ -365,8 +363,6 @@ gtk_file_chooser_dialog_unmap (GtkWidget *widget)
|
|
* a new file chooser every time they need one.
|
|
*/
|
|
gtk_widget_unmap (priv->widget);
|
|
-
|
|
- priv->have_set_geometry = FALSE;
|
|
}
|
|
|
|
/* GtkDialog::response handler */
|
|
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
|
|
index 7369475..a200bd7 100644
|
|
--- a/gtk/gtkfilechooserprivate.h
|
|
+++ b/gtk/gtkfilechooserprivate.h
|
|
@@ -112,7 +112,6 @@ struct _GtkFileChooserDialogPrivate
|
|
|
|
/* for use with GtkFileChooserEmbed */
|
|
gboolean response_requested;
|
|
- gboolean have_set_geometry;
|
|
};
|
|
|
|
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 619adb2286a5230c8e83f31b0c37fc7270e77dcc Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 23 Dec 2008 13:53:09 -0600
|
|
Subject: [PATCH 21/23] Don't save geometry in non-expanded mode so future Open dialogs won't appear too small
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 8 ++++++++
|
|
1 files changed, 8 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 7a0069b..6ae4b73 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -5991,6 +5991,14 @@ save_dialog_geometry (GtkFileChooserDefault *impl, GtkFileChooserSettings *setti
|
|
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)))
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 995e4cbde85cf90bc9a47a7854906616be7c3424 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 23 Dec 2008 14:08:40 -0600
|
|
Subject: [PATCH 22/23] Remove unused variable
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 2 --
|
|
1 files changed, 0 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 6ae4b73..72fc21c 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -7873,8 +7873,6 @@ gtk_file_chooser_default_get_default_size (GtkFileChooserEmbed *chooser_embed,
|
|
|
|
if (x >= 0 && y >= 0 && width > 0 && height > 0)
|
|
{
|
|
- GtkWindow *toplevel;
|
|
-
|
|
*default_width = width;
|
|
*default_height = height;
|
|
return;
|
|
--
|
|
1.5.6
|
|
|
|
|
|
From 37fc08eafd9b80674bc1f4f090bad7e6073fac68 Mon Sep 17 00:00:00 2001
|
|
From: Federico Mena Quintero <federico@novell.com>
|
|
Date: Tue, 23 Dec 2008 14:33:28 -0600
|
|
Subject: [PATCH 23/23] bnc445923 - Don't change the default size when the preview changes if the widget is already mapped
|
|
Keeps the file chooser from changing size when you click on a file and the preview widget
|
|
is updated (even if its state stays the same as before).
|
|
|
|
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
|
---
|
|
gtk/gtkfilechooserdefault.c | 3 ++-
|
|
1 files changed, 2 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
|
|
index 72fc21c..20f087b 100644
|
|
--- a/gtk/gtkfilechooserdefault.c
|
|
+++ b/gtk/gtkfilechooserdefault.c
|
|
@@ -1192,7 +1192,8 @@ update_preview_widget_visibility (GtkFileChooserDefault *impl)
|
|
else
|
|
gtk_widget_hide (impl->preview_box);
|
|
|
|
- emit_default_size_changed (impl);
|
|
+ if (!GTK_WIDGET_MAPPED (impl))
|
|
+ emit_default_size_changed (impl);
|
|
}
|
|
|
|
static void
|
|
--
|
|
1.5.6
|
|
|