* src/modest-ui-actions.[ch]:
authorJose Dapena Paz <jdapena@igalia.com>
Fri, 20 Apr 2007 16:52:34 +0000 (16:52 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Fri, 20 Apr 2007 16:52:34 +0000 (16:52 +0000)
        * Action to select contacts in editor to add to a recipient
          list.
* src/maemo/modest-msg-edit-window.c:
        * Dim font attribute actions depending on rich text disabled.
        * Dim Undo when required.
        * Make add attachment button non focusable.
        * Add open addressbook handler for buttons in Cc: and Bcc:
          recipients lists.
        * Fix a warning because the action name of the send toolbar
          button was not correct in the method that expands it.
        * Update the file format (formatted/plain) on undo, as it can
          be changed.
        * (Added modest_msg_edit_window_select_contacts): method that
          shows select contacts dialog for focused recipient list (or
          To: recipient list if no recipient list focused).
* src/maemo/ui/modest-msg-edit-window-ui.xml:
        * Added SelectContacts menu action.
* src/gnome/modest-msg-edit-window.c:
        * Removed non used code about zooming.
        * Removed duplicated set_priority_flags stub code.
        * Added stub implementation for ...select_contacts method.
* src/widgets/modest-mail-header-view.c:
        * Now field name labels align to right.
* src/widgets/modest-msg-edit-window.h:
        * Added ..._select_contacs method.
* src/widgets/modest-recpt-editor.c:
        * Now the widget is focusable.
* src/widgets/modest-msg-edit-window-ui.h:
        * Added email menu, and select contacts action.

pmo-trunk-r1614

src/gnome/modest-msg-edit-window.c
src/maemo/modest-msg-edit-window.c
src/maemo/ui/modest-msg-edit-window-ui.xml
src/modest-ui-actions.c
src/modest-ui-actions.h
src/widgets/modest-mail-header-view.c
src/widgets/modest-msg-edit-window-ui.h
src/widgets/modest-msg-edit-window.h
src/widgets/modest-recpt-editor.c

index cbbe436..41d1d2e 100644 (file)
@@ -546,80 +546,11 @@ modest_msg_edit_window_set_priority_flags (ModestMsgEditWindow *window,
        g_message ("not implemented yet %s", __FUNCTION__);
 }
 
-#if 0 /* Not used. */
-static void
-modest_msg_edit_window_set_zoom (ModestWindow *window,
-                                gdouble zoom)
-{
-       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
-
-}
-
-static gdouble
-modest_msg_edit_window_get_zoom (ModestWindow *window)
-{
-       g_return_val_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window), 1.0);
-
-       return 1.0;
-}
-
-static void
-modest_msg_edit_window_zoom_plus (GtkAction *action, ModestWindow *window)
-{
-       ModestWindowPrivate *parent_priv;
-       GtkRadioAction *zoom_radio_action;
-       GSList *group, *node;
-
-       parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
-       zoom_radio_action = GTK_RADIO_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, 
-                                                                        "/MenuBar/ViewMenu/ZoomMenu/Zoom50Menu"));
-
-       group = gtk_radio_action_get_group (zoom_radio_action);
-
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (group->data))) {
-               /* FIXME: maemo */
-/*             hildon_banner_show_information (NULL, NULL, _("mcen_ib_max_zoom_level")); */
-               return;
-       }
-
-       for (node = group; node != NULL; node = g_slist_next (node)) {
-               if ((node->next != NULL) && gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (node->next->data))) {
-                       gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (node->data), TRUE);
-                       return;
-               }
-       }
-}
-
-static void
-modest_msg_edit_window_zoom_minus (GtkAction *action, ModestWindow *window)
-{
-       ModestWindowPrivate *parent_priv;
-       GtkRadioAction *zoom_radio_action;
-       GSList *group, *node;
-
-       parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
-       zoom_radio_action = GTK_RADIO_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, 
-                                                                        "/MenuBar/ViewMenu/ZoomMenu/Zoom50Menu"));
-
-       group = gtk_radio_action_get_group (zoom_radio_action);
-
-       for (node = group; node != NULL; node = g_slist_next (node)) {
-               if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (node->data))) {
-                       if (node->next != NULL)
-                               gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (node->next->data), TRUE);
-                       /* FIXME: maemo */
-/*                     else */
-/*                             hildon_banner_show_information (NULL, NULL, _("mcen_ib_min_zoom_level")); */
-                       break;
-               }
-       }
-}
-#endif
 
 void
-modest_msg_edit_window_set_priority_flags (ModestMsgEditWindow *window,
-                                          TnyHeaderFlags priority_flags)
+modest_msg_edit_window_select_contacts (ModestMsgEditWindow *window)
 {
-       /* TODO */
-}
+       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
 
+       g_message ("not implemented yet %s", __FUNCTION__);
+}
index 3be1df3..d4b4adb 100644 (file)
@@ -89,6 +89,7 @@ static void  modest_msg_edit_window_finalize     (GObject *obj);
 
 static void  text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *window);
 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  modest_msg_edit_window_color_button_change (ModestMsgEditWindow *window,
                                                         gpointer userdata);
 static void  modest_msg_edit_window_size_change (GtkCheckMenuItem *menu_item,
@@ -109,6 +110,7 @@ static gboolean modest_msg_edit_window_zoom_minus (ModestWindow *window);
 static gboolean modest_msg_edit_window_zoom_plus (ModestWindow *window);
 static void modest_msg_edit_window_show_toolbar   (ModestWindow *window,
                                                   gboolean show_toolbar);
+static void update_dimmed (ModestMsgEditWindow *window);
 
 
 /* list my signals */
@@ -137,6 +139,8 @@ struct _ModestMsgEditWindowPrivate {
 
        GtkTextBuffer *text_buffer;
 
+       GtkWidget   *font_size_toolitem;
+       GtkWidget   *font_face_toolitem;
        GtkWidget   *font_color_button;
        GSList      *font_items_group;
        GtkWidget   *font_tool_button_label;
@@ -347,6 +351,7 @@ init_window (ModestMsgEditWindow *obj)
        g_object_set (G_OBJECT (priv->subject_field), "hildon-input-mode", HILDON_GTK_INPUT_MODE_FULL, NULL);
        gtk_box_pack_start (GTK_BOX (subject_box), priv->subject_field, TRUE, TRUE, 0);
        priv->add_attachment_button = gtk_button_new ();
+       GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (priv->add_attachment_button), GTK_CAN_FOCUS);
        gtk_button_set_relief (GTK_BUTTON (priv->add_attachment_button), GTK_RELIEF_NONE);
        gtk_button_set_focus_on_click (GTK_BUTTON (priv->add_attachment_button), FALSE);
        gtk_button_set_alignment (GTK_BUTTON (priv->add_attachment_button), 1.0, 1.0);
@@ -394,11 +399,17 @@ init_window (ModestMsgEditWindow *obj)
                          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), "can-undo",
+                         G_CALLBACK (text_buffer_can_undo), obj);
        g_signal_connect (G_OBJECT (obj), "window-state-event",
                          G_CALLBACK (modest_msg_edit_window_window_state_event),
                          NULL);
        g_signal_connect_swapped (G_OBJECT (priv->to_field), "open-addressbook", 
                                  G_CALLBACK (modest_msg_edit_window_open_addressbook), obj);
+       g_signal_connect_swapped (G_OBJECT (priv->cc_field), "open-addressbook", 
+                                 G_CALLBACK (modest_msg_edit_window_open_addressbook), obj);
+       g_signal_connect_swapped (G_OBJECT (priv->bcc_field), "open-addressbook", 
+                                 G_CALLBACK (modest_msg_edit_window_open_addressbook), 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);
@@ -535,6 +546,9 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg)
        modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), msg);
        if (priv->attachments == NULL)
                gtk_widget_hide_all (priv->attachments_caption);
+
+       update_dimmed (self);
+       text_buffer_can_undo (priv->text_buffer, FALSE, self);
 }
 
 static void
@@ -651,6 +665,7 @@ modest_msg_edit_window_setup_toolbar (ModestMsgEditWindow *window)
        gtk_tool_item_set_expand (GTK_TOOL_ITEM (tool_item), TRUE);
        gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (tool_item), TRUE);
        menu_tool_button_dont_expand (GTK_MENU_TOOL_BUTTON (tool_item));
+       priv->font_size_toolitem = tool_item;
 
        /* font face */
        tool_item = GTK_WIDGET (gtk_menu_tool_button_new (NULL, NULL));
@@ -690,9 +705,10 @@ modest_msg_edit_window_setup_toolbar (ModestMsgEditWindow *window)
        gtk_tool_item_set_expand (GTK_TOOL_ITEM (tool_item), TRUE);
        gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (tool_item), TRUE);
        menu_tool_button_dont_expand (GTK_MENU_TOOL_BUTTON (tool_item));
+       priv->font_face_toolitem = tool_item;
 
        /* Set expand and homogeneous for remaining items */
-       tool_item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ActionsSend");
+       tool_item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarSend");
        gtk_tool_item_set_expand (GTK_TOOL_ITEM (tool_item), TRUE);
        gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (tool_item), TRUE);
        tool_item = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ActionsBold");
@@ -1049,6 +1065,16 @@ text_buffer_refresh_attributes (WPTextBuffer *buffer, ModestMsgEditWindow *windo
        parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
 
+       if (wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer))) {
+               action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatMenu/FileFormatFormattedTextMenu");
+               if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
+                       toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
+       } else {
+               action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/FileFormatMenu/FileFormatPlainTextMenu");
+               if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
+                       toggle_action_set_active_block_notify (GTK_TOGGLE_ACTION (action), TRUE);
+       }
+
        wp_text_buffer_get_attributes (WP_TEXT_BUFFER (priv->text_buffer), buffer_format, FALSE);
        
        action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ActionsBold");
@@ -1501,6 +1527,24 @@ modest_msg_edit_window_open_addressbook (ModestMsgEditWindow *window,
        modest_address_book_select_addresses (editor);
 
 }
+
+void
+modest_msg_edit_window_select_contacts (ModestMsgEditWindow *window)
+{
+       GtkWidget *focused;
+       ModestMsgEditWindowPrivate *priv;
+
+       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
+       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+       focused = gtk_window_get_focus (GTK_WINDOW (window));
+
+       if (MODEST_IS_RECPT_EDITOR (focused)) {
+               modest_msg_edit_window_open_addressbook (window, MODEST_RECPT_EDITOR (focused));
+       } else {
+               modest_msg_edit_window_open_addressbook (window, MODEST_RECPT_EDITOR (priv->to_field));
+       }
+       
+}
 static void
 modest_msg_edit_window_show_toolbar (ModestWindow *self,
                                     gboolean show_toolbar)
@@ -1581,6 +1625,7 @@ modest_msg_edit_window_set_file_format (ModestMsgEditWindow *window,
                }
                        break;
                }
+               update_dimmed (window);
        }
 }
 
@@ -1719,7 +1764,7 @@ modest_msg_edit_window_select_font (ModestMsgEditWindow *window)
 }
 
 void
-modest_msg_edit_window_undo               (ModestMsgEditWindow *window)
+modest_msg_edit_window_undo (ModestMsgEditWindow *window)
 {
        ModestMsgEditWindowPrivate *priv;
 
@@ -1728,4 +1773,53 @@ modest_msg_edit_window_undo               (ModestMsgEditWindow *window)
        
        wp_text_buffer_undo (WP_TEXT_BUFFER (priv->text_buffer));
 
+       update_dimmed (window);
+
+}
+
+static void
+update_dimmed (ModestMsgEditWindow *window)
+{
+       ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window);
+       ModestWindowPrivate *parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
+       GtkAction *action;
+       GtkWidget *widget;
+       gboolean rich_text;
+
+       rich_text = wp_text_buffer_is_rich_text (WP_TEXT_BUFFER (priv->text_buffer));
+
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/SelectFontMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/BulletedListMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/AlignmentMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/AlignmentMenu/AlignmentLeftMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/AlignmentMenu/AlignmentCenterMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/FormatMenu/AlignmentMenu/AlignmentRightMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/InsertImageMenu");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ActionsBold");
+       gtk_action_set_sensitive (action, rich_text);
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/ActionsItalics");
+       gtk_action_set_sensitive (action, rich_text);
+       widget = priv->font_color_button;
+       gtk_widget_set_sensitive (widget, rich_text);
+       widget = priv->font_size_toolitem;
+       gtk_widget_set_sensitive (widget, rich_text);
+       widget = priv->font_face_toolitem;
+       gtk_widget_set_sensitive (widget, rich_text);
+}
+
+static void  
+text_buffer_can_undo (GtkTextBuffer *buffer, gboolean can_undo, ModestMsgEditWindow *window)
+{
+       ModestWindowPrivate *parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
+       GtkAction *action;
+
+       action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/UndoMenu");
+       gtk_action_set_sensitive (action, can_undo);
 }
index bcfcd4d..94b93d0 100644 (file)
 
   <menubar name="MenuBar">
 
+    <menu name="EmailMenu" action="Email">
+      <menuitem name="SelectContactsMenu" action="SelectContacts"/>
+    </menu>
+
     <menu name="EditMenu" action="Edit">
       <menuitem name="UndoMenu" action="Undo"/>
       <separator/>
index b6f2faf..f42c05e 100644 (file)
@@ -1726,3 +1726,10 @@ modest_ui_actions_on_folder_display_name_changed (ModestFolderView *folder_view,
                        gtk_window_set_title (window, " ");
        }
 }
+
+void
+modest_ui_actions_on_select_contacts (GtkAction *action, ModestMsgEditWindow *window)
+{
+       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
+       modest_msg_edit_window_select_contacts (window);
+}
index a872764..14443ee 100644 (file)
@@ -51,6 +51,8 @@ void     modest_ui_actions_on_accounts      (GtkAction *action, ModestWindow *wi
 
 void     modest_ui_actions_on_add_to_contacts   (GtkAction *action, ModestWindow *win);
 
+void     modest_ui_actions_on_select_contacts (GtkAction *action, ModestMsgEditWindow *win);
+
 void     modest_ui_actions_on_new_msg       (GtkAction *action, ModestWindow *win);
 
 void     modest_ui_actions_on_open           (GtkAction *action, ModestWindow *win);
index 629feba..db9652a 100644 (file)
@@ -87,7 +87,7 @@ add_date_time_header (ModestMailHeaderView *mail_header, const gchar *name, time
 
        label = gtk_label_new (NULL);
        gtk_label_set_markup (GTK_LABEL (label), name);
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+       gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.0);
        gtk_box_pack_start (GTK_BOX (date_hbox), label, FALSE, FALSE, 0);
        gtk_size_group_add_widget (priv->labels_size_group, label);
 
@@ -133,7 +133,7 @@ add_header (ModestMailHeaderView *widget, const gchar *field, const gchar *value
        hbox = gtk_hbox_new (FALSE, 12);
        label_field = gtk_label_new (NULL);
        gtk_label_set_markup (GTK_LABEL (label_field), field);
-       gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
+       gtk_misc_set_alignment (GTK_MISC (label_field), 1.0, 0.0);
        scroll_text = modest_scroll_text_new (NULL, 2);
        label_value = (GtkWidget *) modest_scroll_text_get_text_view (MODEST_SCROLL_TEXT (scroll_text));
        text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (label_value));
@@ -160,7 +160,7 @@ add_recpt_header (ModestMailHeaderView *widget, const gchar *field, const gchar
        hbox = gtk_hbox_new (FALSE, 12);
        label_field = gtk_label_new (NULL);
        gtk_label_set_markup (GTK_LABEL (label_field), field);
-       gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
+       gtk_misc_set_alignment (GTK_MISC (label_field), 1.0, 0.0);
        label_value = modest_recpt_view_new ();
        modest_recpt_view_set_recipients (MODEST_RECPT_VIEW(label_value), value);
        g_signal_connect (G_OBJECT (label_value), "activate", G_CALLBACK (activate_recpt), widget);
@@ -377,7 +377,7 @@ modest_mail_header_view_add_custom_header (ModestMailHeaderView *header_view,
        hbox = gtk_hbox_new (FALSE, 12);
        label_field = gtk_label_new (NULL);
        gtk_label_set_markup (GTK_LABEL (label_field), label);
-       gtk_misc_set_alignment (GTK_MISC (label_field), 0.0, 0.0);
+       gtk_misc_set_alignment (GTK_MISC (label_field), 1.0, 0.0);
        gtk_box_pack_start (GTK_BOX (hbox), label_field, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (hbox), custom_widget, TRUE, TRUE, 0);
        gtk_size_group_add_widget (priv->labels_size_group, label_field);
@@ -433,7 +433,7 @@ modest_mail_header_view_instance_init (GTypeInstance *instance, gpointer g_class
 
        fromto_hbox = gtk_hbox_new (FALSE, 12);
        priv->fromto_label = gtk_label_new (NULL);
-       gtk_misc_set_alignment (GTK_MISC (priv->fromto_label), 0.0, 0.0);
+       gtk_misc_set_alignment (GTK_MISC (priv->fromto_label), 1.0, 0.0);
        priv->fromto_contents = modest_recpt_view_new ();
        g_signal_connect (G_OBJECT (priv->fromto_contents), "activate", G_CALLBACK (activate_recpt), instance);
 
index 91176d5..eeaa3d0 100644 (file)
@@ -40,6 +40,7 @@ G_BEGIN_DECLS
 static const GtkActionEntry modest_msg_edit_action_entries [] = {
 
        /* Toplevel menus */
+       { "Email", NULL, N_("mcen_me_inbox_email") },
        { "View", NULL, N_("mcen_me_inbox_view") },
        { "Edit", NULL, N_("mcen_me_inbox_edit") },
        { "Format", NULL, N_("mcen_me_editor_format") },
@@ -62,6 +63,7 @@ static const GtkActionEntry modest_msg_edit_action_entries [] = {
        { "Paste", NULL, N_("mcen_me_inbox_paste"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_paste)},
        { "SelectAll", NULL, N_("mcen_me_viewer_selectall"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_select_all)},
        { "SelectFont", NULL, N_("mcen_me_editor_font"), NULL, NULL, G_CALLBACK (modest_ui_actions_msg_edit_on_select_font)},
+       { "SelectContacts", NULL, N_("mcen_me_editor_selectrecipients"), NULL, NULL, G_CALLBACK (modest_ui_actions_on_select_contacts)},
 
        /* KEY ACCELERATOR ACTIONS */
        { "ZoomPlus", NULL, N_("Zoom +"), "F7", NULL, G_CALLBACK (modest_ui_actions_on_zoom_plus) },
index d97efa0..2fad497 100644 (file)
@@ -260,6 +260,15 @@ void            modest_msg_edit_window_select_font        (ModestMsgEditWindow *
  */
 void            modest_msg_edit_window_undo               (ModestMsgEditWindow *window);
 
+/**
+ * modest_msg_edit_window_select_contacts:
+ * @window: a #ModestMsgEditWindow
+ *
+ * Shows the dialog to add contacts to the currently focused recipient list,
+ * or to To: recipient if no recipient list is focused.
+ */
+void            modest_msg_edit_window_select_contacts    (ModestMsgEditWindow *window);
+
 G_END_DECLS
 
 #endif /* __MODEST_MSG_EDIT_WINDOW_H__ */
index 5449a57..78a73ab 100644 (file)
@@ -228,6 +228,7 @@ modest_recpt_editor_instance_init (GTypeInstance *instance, gpointer g_class)
        priv->abook_button = gtk_button_new ();
        gtk_button_set_relief (GTK_BUTTON (priv->abook_button), GTK_RELIEF_NONE);
        gtk_button_set_focus_on_click (GTK_BUTTON (priv->abook_button), FALSE);
+       GTK_WIDGET_UNSET_FLAGS (priv->abook_button, GTK_CAN_FOCUS);
        gtk_button_set_alignment (GTK_BUTTON (priv->abook_button), 1.0, 1.0);
        abook_icon = gtk_image_new_from_icon_name ("qgn_list_gene_contacts", GTK_ICON_SIZE_BUTTON);
        gtk_container_add (GTK_CONTAINER (priv->abook_button), abook_icon);
@@ -253,6 +254,9 @@ modest_recpt_editor_instance_init (GTypeInstance *instance, gpointer g_class)
 
        g_signal_connect (G_OBJECT (priv->abook_button), "clicked", G_CALLBACK (modest_recpt_editor_on_abook_clicked), instance);
 
+       GTK_WIDGET_SET_FLAGS (GTK_WIDGET (instance), GTK_CAN_FOCUS);
+       gtk_container_set_focus_child (GTK_CONTAINER (instance), priv->text_view);
+
        return;
 }