aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog18
-rw-r--r--mail/mail-tools.c2
-rw-r--r--mail/mail-view.c45
3 files changed, 49 insertions, 16 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index fd9ab2082b..319ac75258 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,21 @@
+2000-08-28 Ettore Perazzoli <ettore@helixcode.com>
+
+ * mail-view.c (mail_view_create): Use `gnome_app_set_toolbar()'
+ the easy way instead of doing things manually with `GnomeDock' and
+ `gnome_app_add_toolbar()'.
+ (MINIMUM_WIDTH): New #define.
+ (MINIMUM_HEIGHT): New #define.
+ (view_size_allocate_cb): New, callback for the "size_allocate"
+ signal of the mail view. It saves the last allocation in a static
+ `last_allocation' variable.
+ (mail_view_create): Connect it.
+ (set_default_size): New function. Set the default width/height to
+ the last allocation width/height; if the width/height is less than
+ the `MINIUM_WIDTH' or `MINIMUM_HEIGHT', use that value instead.
+
+ * mail-tools.c (mail_tool_move_folder_contents): Show `i + 1', not
+ `i', so that we correctlly start counting from one instead of zero.
+
2000-08-28 Peter Williams <peterw@helixcode.com>
* *.c: s,mail_dialog_run,gnome_dialog_run,g.
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 62da0dade8..b540c595e2 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -310,7 +310,7 @@ mail_tool_move_folder_contents (CamelFolder *source, CamelFolder *dest, gboolean
/* Info */
- mail_op_set_message ("Retrieving message %d of %d", i, uids->len);
+ mail_op_set_message ("Retrieving message %d of %d", i + 1, uids->len);
/* Get the message */
diff --git a/mail/mail-view.c b/mail/mail-view.c
index 065386f4ff..989d1a2a3a 100644
--- a/mail/mail-view.c
+++ b/mail/mail-view.c
@@ -32,6 +32,12 @@ typedef struct mail_view_data_s {
MailDisplay *md;
} mail_view_data;
+#define MINIMUM_WIDTH 600
+#define MINIMUM_HEIGHT 400
+
+/* Size of the window last time it was changed. */
+static GtkAllocation last_allocation = { 0, 0 };
+
static void
mail_view_data_free (gpointer mvd)
{
@@ -127,6 +133,13 @@ view_delete_msg (GtkWidget *button, gpointer user_data)
CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED);
}
+static void
+view_size_allocate_cb (GtkWidget *widget,
+ GtkAllocation *allocation)
+{
+ last_allocation = *allocation;
+}
+
static GnomeUIInfo mail_view_toolbar [] = {
/*GNOMEUIINFO_ITEM_STOCK (N_("Save"), N_("Save this message"),
@@ -175,13 +188,23 @@ static GnomeUIInfo mail_view_menubar[] =
GNOMEUIINFO_END
};
+static void
+set_default_size (GtkWidget *widget)
+{
+ int width, height;
+
+ width = MAX (MINIMUM_WIDTH, last_allocation.width);
+ height = MAX (MINIMUM_HEIGHT, last_allocation.height);
+
+ gtk_window_set_default_size (GTK_WINDOW (widget), width, height);
+}
+
GtkWidget *
mail_view_create (CamelFolder *source, const char *uid, CamelMimeMessage *msg)
{
GtkWidget *window;
GtkWidget *toolbar;
GtkWidget *mail_display;
- GnomeDockItemBehavior behavior;
char *subject;
mail_view_data *data;
@@ -199,16 +222,7 @@ mail_view_create (CamelFolder *source, const char *uid, CamelMimeMessage *msg)
mail_view_toolbar,
NULL, data);
- behavior = GNOME_DOCK_ITEM_BEH_NORMAL;
- if (!gnome_preferences_get_toolbar_detachable ())
- behavior |= GNOME_DOCK_ITEM_BEH_LOCKED;
-
- gnome_app_add_toolbar (GNOME_APP (window),
- GTK_TOOLBAR (toolbar),
- GNOME_APP_TOOLBAR_NAME,
- behavior,
- GNOME_DOCK_TOP, 1, 0, 0);
-
+ gnome_app_set_toolbar (GNOME_APP (window), GTK_TOOLBAR (toolbar));
gnome_app_create_menus (GNOME_APP (window), mail_view_menubar);
gtk_object_set_data_full (GTK_OBJECT (window), "mvd", data,
@@ -234,11 +248,12 @@ mail_view_create (CamelFolder *source, const char *uid, CamelMimeMessage *msg)
mail_display_set_message (MAIL_DISPLAY (mail_display), CAMEL_MEDIUM (msg));
data->md = MAIL_DISPLAY (mail_display);
gnome_app_set_contents (GNOME_APP (window), mail_display);
-
- gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
+ gtk_signal_connect (GTK_OBJECT (window), "size_allocate",
+ GTK_SIGNAL_FUNC (view_size_allocate_cb), NULL);
+
+ set_default_size (window);
+
return window;
}
-
-