static void text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *window);
static void text_buffer_delete_range (GtkTextBuffer *buffer, GtkTextIter *start, GtkTextIter *end, gpointer userdata);
-static void text_buffer_mark_set (GtkTextBuffer *buffer, GtkTextIter *location, GtkTextMark *mark, gpointer userdata);
static void text_buffer_can_undo (GtkTextBuffer *buffer, gboolean can_undo, ModestMsgEditWindow *window);
static void text_buffer_delete_images_by_id (GtkTextBuffer *buffer, const gchar * image_id);
+static void subject_field_changed (GtkEditable *editable, ModestMsgEditWindow *window);
static void modest_msg_edit_window_color_button_change (ModestMsgEditWindow *window,
gpointer userdata);
static void modest_msg_edit_window_size_change (GtkCheckMenuItem *menu_item,
static void modest_msg_edit_window_clipboard_owner_change (GtkClipboard *clipboard,
GdkEvent *event,
ModestMsgEditWindow *window);
+static void update_window_title (ModestMsgEditWindow *window);
static void update_dimmed (ModestMsgEditWindow *window);
static void
-text_buffer_mark_set (GtkTextBuffer *buffer, GtkTextIter *iter, GtkTextMark *mark, gpointer userdata)
-{
- ModestMsgEditWindow *window;
- ModestMsgEditWindowPrivate *priv;
- GdkRectangle location;
- gint v_scroll_min_value = 0;
- gint v_scroll_max_value = 0;
- gint v_scroll_visible;
- GtkAdjustment *vadj;
- GtkTextMark *insert_mark;
- GtkTextIter insert_iter;
-
- g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (userdata));
- g_return_if_fail (GTK_IS_TEXT_MARK (mark));
- window = MODEST_MSG_EDIT_WINDOW (userdata);
- priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
-
- insert_mark = gtk_text_buffer_get_insert (GTK_TEXT_BUFFER (priv->text_buffer));
- gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (priv->text_buffer), &insert_iter, insert_mark);
- gtk_text_view_get_iter_location (GTK_TEXT_VIEW (priv->msg_body), &insert_iter, &location);
-
- if (priv->header_box)
- v_scroll_min_value += priv->header_box->allocation.height + DEFAULT_MAIN_VBOX_SPACING;
- v_scroll_min_value += location.y;
- v_scroll_max_value = v_scroll_min_value + location.height;
-
- v_scroll_visible = GTK_WIDGET (window)->allocation.height;
-
- vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->scroll));
-
- if (((gdouble) v_scroll_min_value) < vadj->value)
- gtk_adjustment_set_value (vadj, v_scroll_min_value);
- else if (((gdouble) v_scroll_max_value) > (vadj->value + vadj->page_size))
- gtk_adjustment_set_value (vadj, ((gdouble)v_scroll_max_value) - vadj->page_size);
-}
-
-static void
init_window (ModestMsgEditWindow *obj)
{
GtkWidget *from_caption, *to_caption, *subject_caption;
g_signal_connect (G_OBJECT (priv->text_buffer), "refresh_attributes",
G_CALLBACK (text_buffer_refresh_attributes), obj);
- g_signal_connect (G_OBJECT (priv->text_buffer), "mark-set",
- G_CALLBACK (text_buffer_mark_set), obj);
g_signal_connect (G_OBJECT (priv->text_buffer), "delete-range",
G_CALLBACK (text_buffer_delete_range), obj);
g_signal_connect (G_OBJECT (priv->text_buffer), "can-undo",
g_signal_connect (G_OBJECT (modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (priv->to_field))),
"changed", G_CALLBACK (to_field_changed), obj);
to_field_changed (modest_recpt_editor_get_buffer (MODEST_RECPT_EDITOR (priv->to_field)), MODEST_MSG_EDIT_WINDOW (obj));
+ g_signal_connect (G_OBJECT (priv->subject_field), "changed", G_CALLBACK (subject_field_changed), obj);
priv->scroll = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
if (bcc)
modest_recpt_editor_set_recipients (MODEST_RECPT_EDITOR (priv->bcc_field), bcc);
if (subject)
- gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);
+ gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);
+
+ update_window_title (self);
/* gtk_text_buffer_set_can_paste_rich_text (priv->text_buffer, TRUE); */
wp_text_buffer_reset_buffer (WP_TEXT_BUFFER (priv->text_buffer), TRUE);
- body = modest_tny_msg_get_body (msg, FALSE);
+ body = modest_tny_msg_get_body (msg, TRUE);
if ((body == NULL)||(body[0] == '\0')) {
g_free (body);
tool_item = GTK_WIDGET (gtk_tool_item_new ());
priv->font_color_button = hildon_color_button_new ();
GTK_WIDGET_UNSET_FLAGS (tool_item, GTK_CAN_FOCUS);
+ GTK_WIDGET_UNSET_FLAGS (priv->font_color_button, GTK_CAN_FOCUS);
gtk_container_add (GTK_CONTAINER (tool_item), priv->font_color_button);
gtk_tool_item_set_expand (GTK_TOOL_ITEM (tool_item), TRUE);
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (tool_item), TRUE);
restore_settings (MODEST_MSG_EDIT_WINDOW(obj));
- gtk_window_set_title (GTK_WINDOW(obj), "Modest");
gtk_window_set_icon_from_file (GTK_WINDOW(obj), MODEST_APP_ICON, NULL);
g_signal_connect (G_OBJECT(obj), "delete-event",
font_size, DEFAULT_FONT_SIZE);
fmt.cs.font_size = TRUE;
}
- gtk_widget_destroy (dialog);
-
- gtk_widget_grab_focus(GTK_WIDGET(priv->msg_body));
wp_text_buffer_set_format(WP_TEXT_BUFFER(priv->text_buffer), &fmt);
}
-
+ gtk_widget_destroy (dialog);
+
+ gtk_widget_grab_focus(GTK_WIDGET(priv->msg_body));
}
void
GdkEventFocus *event,
gpointer userdata)
{
+
update_dimmed (MODEST_MSG_EDIT_WINDOW (userdata));
return FALSE;
}
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/CopyMenu");
gtk_action_set_sensitive (action, (selection != NULL) && (!MODEST_IS_ATTACHMENTS_VIEW (focused)));
}
+
+static void
+update_window_title (ModestMsgEditWindow *window)
+{
+ ModestMsgEditWindowPrivate *priv = NULL;
+ const gchar *subject;
+
+ priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+ subject = gtk_entry_get_text (GTK_ENTRY (priv->subject_field));
+ if (subject == NULL || subject[0] == '\0')
+ subject = _("mail_va_new_email");
+
+ gtk_window_set_title (GTK_WINDOW (window), subject);
+
+}
+
+static void
+subject_field_changed (GtkEditable *editable,
+ ModestMsgEditWindow *window)
+{
+ update_window_title (window);
+}