mainly changes for the hardcoded shortcuts again
authorCarsten Schurig <Carsten.Schurig@web.de>
Mon, 21 Jan 2002 10:54:32 +0000 (10:54 +0000)
committerCarsten Schurig <Carsten.Schurig@web.de>
Mon, 21 Jan 2002 10:54:32 +0000 (10:54 +0000)
ChangeLog.claws
configure.in
src/compose.c
src/mainwindow.c
src/menu.c
src/menu.h
src/messageview.c
src/messageview.h
src/summaryview.c
src/summaryview.h

index 02e1950eaf18510c3fdd31c148aa4774a3e4968f..b8b116fda5f4b82b59188fed491fde9c6a140d02 100644 (file)
@@ -1,3 +1,18 @@
+2002-01-21 [carsten]   0.7.0claws19
+       * src/mainwindow.c
+       * src/menu.[ch]
+       * src/messageview.[ch]
+       * src/summaryview.[ch]
+               changes to shortcuts handling again:
+                       + "Q" now controled by mainwin
+                       + v/V are now customizable and have slightly
+                         different meanings
+               the "button" to minimize the messageview (and maximize
+               the summary view) is a real button now
+       * src/compose.c
+               "Delete Line+" added to Edit/Advanced (this will also
+               delete the '\n')
+
 2002-01-20 [melvin] 0.7.0claws18
 
        * src/addressbook.c
index 21f3d9aec000d00b476fd6900028c84cbe6b666d..fa31641e8a2746505762893d9590b600a4631be5 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=7
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws18
+EXTRA_VERSION=claws19
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index e20eaaa03ef5e76093335d0007cc4896faecc02a..0e3695fe0d95e3c20948d1c46a1ca4a538ee076c 100644 (file)
@@ -344,6 +344,7 @@ typedef enum {
        COMPOSE_CALL_GTK_STEXT_DELETE_FORWARD_WORD,
        COMPOSE_CALL_GTK_STEXT_DELETE_BACKWARD_WORD,
        COMPOSE_CALL_GTK_STEXT_DELETE_LINE,
+       COMPOSE_CALL_GTK_STEXT_DELETE_LINE_N,
        COMPOSE_CALL_GTK_STEXT_DELETE_TO_LINE_END
 } ComposeCallGtkStextAction;
 
@@ -495,6 +496,7 @@ static GtkItemFactoryEntry compose_entries[] =
        {N_("/_Edit/A_dvanced/Delete a word backward"), "<control>w", compose_gtk_stext_action_cb, COMPOSE_CALL_GTK_STEXT_DELETE_BACKWARD_WORD, NULL},
        {N_("/_Edit/A_dvanced/Delete a word forward"),  "<alt>D", compose_gtk_stext_action_cb, COMPOSE_CALL_GTK_STEXT_DELETE_FORWARD_WORD, NULL},
        {N_("/_Edit/A_dvanced/Delete line"),    "<control>U", compose_gtk_stext_action_cb, COMPOSE_CALL_GTK_STEXT_DELETE_LINE, NULL},
+       {N_("/_Edit/A_dvanced/Delete line+"),   NULL, compose_gtk_stext_action_cb, COMPOSE_CALL_GTK_STEXT_DELETE_LINE_N, NULL},
        {N_("/_Edit/A_dvanced/Delete to end of line"),  "<control>K", compose_gtk_stext_action_cb, COMPOSE_CALL_GTK_STEXT_DELETE_TO_LINE_END, NULL},
        {N_("/_Edit/---"),              NULL, NULL, 0, "<Separator>"},
 #if USE_PSPELL
@@ -6138,6 +6140,10 @@ static void compose_gtk_stext_action_cb  (Compose *compose, ComposeCallGtkStextAc
                case COMPOSE_CALL_GTK_STEXT_DELETE_LINE:
                        gtk_stext_delete_line(GTK_STEXT(compose->focused_editable));
                        break;
+               case COMPOSE_CALL_GTK_STEXT_DELETE_LINE_N:
+                       gtk_stext_delete_line(GTK_STEXT(compose->focused_editable));
+                       gtk_stext_delete_forward_character(GTK_STEXT(compose->focused_editable));
+                       break;
                case COMPOSE_CALL_GTK_STEXT_DELETE_TO_LINE_END:
                        gtk_stext_delete_to_line_end(GTK_STEXT(compose->focused_editable));
                        break;
index 04cf2f54bb7a8d3937f6b8f62ef3790e9a804e73..ec044db4fe515ca282cbce89cdae2486421cf2b5 100644 (file)
@@ -232,6 +232,12 @@ static void toggle_toolbar_cb       (MainWindow    *mainwin,
 static void toggle_statusbar_cb         (MainWindow    *mainwin,
                                  guint          action,
                                  GtkWidget     *widget);
+static void toggle_expand_summaryview_cb        (MainWindow    *mainwin,
+                                 guint          action,
+                                 GtkWidget     *widget);
+static void toggle_expand_messageview_cb        (MainWindow    *mainwin,
+                                 guint          action,
+                                 GtkWidget     *widget);
 static void separate_widget_cb (GtkCheckMenuItem *checkitem,
                                 guint action,
                                 GtkWidget *widget);
@@ -415,6 +421,14 @@ static void activate_compose_button (MainWindow *mainwin,
                                ToolbarStyle      style,
                                ComposeButtonType type);
 
+static void menuitem_expandsummaryview_statechanged (GtkWidget *widget,
+                               GtkStateType state,
+                               gpointer data);
+
+static void key_pressed (GtkWidget *widget, 
+                               GdkEventKey *event,
+                               gpointer data);
+
 #define  SEPARATE_ACTION  667
 
 static GtkItemFactoryEntry mainwin_entries[] =
@@ -448,6 +462,8 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_View"),                          NULL, NULL, 0, "<Branch>"},
        {N_("/_View/_Folder tree"),             NULL, NULL, SEPARATE_ACTION + SEPARATE_FOLDER,  "<ToggleItem>"},
        {N_("/_View/_Message view"),            NULL, NULL, SEPARATE_ACTION + SEPARATE_MESSAGE, "<ToggleItem>"},
+       {N_("/_View/E_xpand Summary View"),             "V", toggle_expand_summaryview_cb, 0, "<ToggleItem>"},
+       {N_("/_View/Ex_pand Message View"),             "<shift>V", toggle_expand_messageview_cb, 0, "<ToggleItem>"},
        {N_("/_View/_Toolbar"),                 NULL, NULL, 0, "<Branch>"},
        {N_("/_View/_Toolbar/Icon _and text"),  NULL, toggle_toolbar_cb, TOOLBAR_BOTH, "<RadioItem>"},
        {N_("/_View/_Toolbar/_Icon"),           NULL, toggle_toolbar_cb, TOOLBAR_ICON, "/View/Toolbar/Icon and text"},
@@ -722,6 +738,8 @@ MainWindow *main_window_create(SeparateType type)
                           GTK_SIGNAL_FUNC(manage_window_focus_in), NULL);
        gtk_signal_connect(GTK_OBJECT(window), "focus_out_event",
                           GTK_SIGNAL_FUNC(manage_window_focus_out), NULL);
+       gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
+                               GTK_SIGNAL_FUNC(key_pressed), mainwin);
 
        gtk_widget_realize(window);
        gtk_widget_add_events(window, GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK);
@@ -931,8 +949,11 @@ MainWindow *main_window_create(SeparateType type)
        gtk_object_set_data(GTK_OBJECT(menuitem), "mainwindow", mainwin);
        gtk_signal_connect(GTK_OBJECT(menuitem), "toggled", GTK_SIGNAL_FUNC(separate_widget_cb), 
                                           GUINT_TO_POINTER(SEPARATE_MESSAGE));
-
-
+       
+       menuitem = gtk_item_factory_get_item(ifactory, "/View/Expand Summary View");
+       gtk_signal_connect(GTK_OBJECT(menuitem), "state-changed", GTK_SIGNAL_FUNC(menuitem_expandsummaryview_statechanged),
+                                               mainwin);
+               
        menu_set_sensitive(ifactory, "/View/Thread view",
                           prefs_common.enable_thread ? FALSE : TRUE);
        menu_set_sensitive(ifactory, "/View/Unthread view",
@@ -1551,6 +1572,7 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
        GtkWidget *vpaned;
        GtkWidget *vbox_body = mainwin->vbox_body;
        GtkItemFactory *ifactory=gtk_item_factory_from_widget(mainwin->menubar);
+       GtkWidget *menuitem;
 
        debug_print(_("Setting widgets..."));
 
@@ -1624,6 +1646,10 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
 
                menu_set_sensitive(ifactory, "/View/Message view", TRUE);
                menu_set_sensitive(ifactory, "/View/Folder tree", TRUE);
+               menu_set_sensitive(ifactory, "/View/Expand Summary View", TRUE);
+               menu_set_sensitive(ifactory, "/View/Expand Message View", TRUE);
+               menuitem = gtk_item_factory_get_widget(ifactory, "/View/Expand Message View");
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), FALSE);
                
                mainwin->win.sep_none.hpaned = hpaned;
                mainwin->win.sep_none.vpaned = vpaned;
@@ -1685,7 +1711,9 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
        
                menu_set_sensitive(ifactory, "/View/Message view", TRUE);
                menu_set_sensitive(ifactory, "/View/Folder tree", TRUE);
-
+               menu_set_sensitive(ifactory, "/View/Expand Summary View", FALSE);
+               menu_set_sensitive(ifactory, "/View/Expand Message View", FALSE);
+               
                mainwin->win.sep_message.messagewin = messagewin;
                mainwin->win.sep_message.hpaned     = hpaned;
 
@@ -2390,6 +2418,16 @@ static void toggle_statusbar_cb(MainWindow *mainwin, guint action,
        }
 }
 
+static void toggle_expand_summaryview_cb(MainWindow *mainwin, guint action,    GtkWidget *widget)
+{
+       summary_toggle_view_real(mainwin->summaryview);
+}
+
+static void toggle_expand_messageview_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
+{
+       messageview_toggle_view_real(mainwin->messageview);
+}
+
 static void separate_widget_cb(GtkCheckMenuItem *checkitem, guint action, GtkWidget *widget)
 
 {
@@ -2942,3 +2980,34 @@ void main_window_toolbar_set_compose_button(MainWindow *mainwin, ComposeButtonTy
                                        prefs_common.toolbar_style,
                                        compose_btn_type);
 }
+
+static void menuitem_expandsummaryview_statechanged (GtkWidget *widget, GtkStateType state, gpointer data)
+{
+       MainWindow *mainwin = (MainWindow*) data;
+       
+       if (!mainwin) return;
+               
+       gtk_widget_set_sensitive(GTK_WIDGET(mainwin->summaryview->toggle_view_btn), GTK_WIDGET_IS_SENSITIVE(widget));
+}
+
+#define BREAK_ON_MODIFIER_KEY() \
+       if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break
+
+static void key_pressed (GtkWidget *widget, GdkEventKey *event,        gpointer data)
+{
+       MainWindow *mainwin = (MainWindow*) data;
+       
+       if (!mainwin || !event) return;
+               
+       switch (event->keyval) {
+       case GDK_Q:             /* Quit */
+               BREAK_ON_MODIFIER_KEY();
+
+               app_exit_cb(mainwin, 0, NULL);
+               return;
+       default:
+               break;
+       }
+}
+
+#undef BREAK_ON_MODIFIER_KEY
index 031c58d48c1775d6b801edbb4035541d0ed07971..4d75b5e081974f0870468851b6ef617839259dd9 100644 (file)
@@ -122,6 +122,16 @@ void menu_set_toggle(GtkItemFactory *ifactory, const gchar *path,
        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(widget), active);
 }
 
+void menu_toggle_toggle(GtkItemFactory *ifactory, const gchar *path)
+{
+       GtkWidget *widget;
+       
+       g_return_if_fail(ifactory != NULL);
+       
+       widget = gtk_item_factory_get_item(ifactory, path);
+       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), !((GTK_CHECK_MENU_ITEM(widget))->active));
+}
+
 void menu_button_position(GtkMenu *menu, gint *x, gint *y, gpointer user_data)
 {
        GtkWidget *button;
index f96f4bd05a45e77088a4358aafd831a165013087..d4a1fd2e804fb39712a40cbcea674cdf98e750ff 100644 (file)
@@ -58,6 +58,8 @@ void menu_set_insensitive_all (GtkMenuShell           *menu_shell);
 void menu_set_toggle           (GtkItemFactory         *ifactory,
                                 const gchar            *path,
                                 gboolean                active);
+void menu_toggle_toggle                (GtkItemFactory         *ifactory,
+                                const gchar            *path);
 void menu_button_position      (GtkMenu                *menu,
                                 gint                   *x,
                                 gint                   *y,
index dd3a493eda6c94b840fc03eee5103581e4e89cf4..e19ef9e27432dbbc81f8bdb781199ba1e4c66cff 100644 (file)
@@ -58,6 +58,7 @@ static void messageview_size_allocate_cb(GtkWidget    *widget,
 static void key_pressed                        (GtkWidget      *widget,
                                         GdkEventKey    *event,
                                         MessageView    *messageview);
+static void messageview_toggle_view(MessageView *messageview);
 
 MessageView *messageview_create(void)
 {
@@ -648,3 +649,51 @@ static void key_pressed(GtkWidget *widget, GdkEventKey *event,
        if (event && event->keyval == GDK_Escape && messageview->window)
                gtk_widget_destroy(messageview->window);
 }
+
+static void messageview_toggle_view(MessageView *messageview)
+{
+       MainWindow *mainwin = messageview->mainwin;
+       GtkItemFactory *ifactory;
+       
+       if (!mainwin) return;
+       
+       ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+       menu_toggle_toggle(ifactory, "/View/Expand Summary View");
+}
+
+void messageview_toggle_view_real(MessageView *messageview)
+{
+       MainWindow *mainwin = messageview->mainwin;
+       union CompositeWin *cwin = &mainwin->win;
+       GtkWidget *vpaned = NULL;
+       GtkWidget *container = NULL;
+       GtkItemFactory *ifactory =gtk_item_factory_from_widget(mainwin->menubar);
+       
+       switch (mainwin->type) {
+       case SEPARATE_NONE:
+               vpaned = cwin->sep_none.vpaned;
+               container = cwin->sep_none.hpaned;
+               break;
+       case SEPARATE_FOLDER:
+               vpaned = cwin->sep_folder.vpaned;
+               container = mainwin->vbox_body;
+               break;
+       case SEPARATE_MESSAGE:
+       case SEPARATE_BOTH:
+               return;
+       }
+
+       if (vpaned->parent != NULL) {
+               gtk_widget_ref(vpaned);
+               gtkut_container_remove(GTK_CONTAINER(container), vpaned);
+               gtk_widget_reparent(GTK_WIDGET_PTR(messageview), container);
+               menu_set_sensitive(ifactory, "/View/Expand Summary View", FALSE);
+               gtk_widget_grab_focus(GTK_WIDGET(messageview->textview->text));
+       } else {
+               gtk_widget_reparent(GTK_WIDGET_PTR(messageview), vpaned);
+               gtk_container_add(GTK_CONTAINER(container), vpaned);
+               gtk_widget_unref(vpaned);
+               menu_set_sensitive(ifactory, "/View/Expand Summary View", TRUE);
+               gtk_widget_grab_focus(GTK_WIDGET(mainwin->summaryview->ctree));
+       }
+}
index bb6d834f899f97d4f0ab5f4d59a951a926730a67..f37c3b335377041a45afdade099b028f6d93d6e6 100644 (file)
@@ -67,6 +67,7 @@ void messageview_copy_clipboard                       (MessageView    *messageview);
 void messageview_select_all                    (MessageView    *messageview);
 void messageview_set_position                  (MessageView    *messageview,
                                                 gint            pos);
+void messageview_toggle_view_real(MessageView *messageview);
 
 gboolean messageview_search_string             (MessageView    *messageview,
                                                 const gchar    *str,
index 17593d8b39091324040780ab5984b70da330d336..4b61d1a3ceea403f1b561b1a79961468412a6d4c 100644 (file)
@@ -195,7 +195,7 @@ static void summary_set_header              (SummaryView            *summaryview,
 static void summary_display_msg                (SummaryView            *summaryview,
                                         GtkCTreeNode           *row,
                                         gboolean                new_window);
-static void summary_toggle_view                (SummaryView            *summaryview);
+
 static void summary_set_row_marks      (SummaryView            *summaryview,
                                         GtkCTreeNode           *row);
 static void summaryview_subject_filter_init (PrefsFolderItem    *prefs);
@@ -265,10 +265,11 @@ static void summary_colorlabel_menu_create(SummaryView    *summaryview);
 
 static GtkWidget *summary_ctree_create (SummaryView    *summaryview);
 
+static void summary_toggle_view(SummaryView *summarview);
+
 /* callback functions */
-static void summary_toggle_pressed     (GtkWidget              *eventbox,
-                                        GdkEventButton         *event,
-                                        SummaryView            *summaryview);
+static void summary_toggle_view_cb     (GtkWidget      *widget,
+                                        gpointer       data);                                   
 static void summary_button_pressed     (GtkWidget              *ctree,
                                         GdkEventButton         *event,
                                         SummaryView            *summaryview);
@@ -448,8 +449,8 @@ SummaryView *summary_create(void)
        GtkWidget *statlabel_folder;
        GtkWidget *statlabel_select;
        GtkWidget *statlabel_msgs;
-       GtkWidget *toggle_eventbox;
-       GtkWidget *toggle_arrow;
+       GtkWidget *toggle_view_btn;
+       GtkWidget *toggle_view_arrow;
        GtkWidget *popupmenu;
        GtkItemFactory *popupfactory;
        gint n_entries;
@@ -485,14 +486,14 @@ SummaryView *summary_create(void)
        statlabel_select = gtk_label_new("");
        gtk_box_pack_start(GTK_BOX(hbox), statlabel_select, FALSE, FALSE, 16);
 
-       /* toggle view button */
-       toggle_eventbox = gtk_event_box_new();
-       gtk_box_pack_end(GTK_BOX(hbox), toggle_eventbox, FALSE, FALSE, 4);
-       toggle_arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
-       gtk_container_add(GTK_CONTAINER(toggle_eventbox), toggle_arrow);
-       gtk_signal_connect(GTK_OBJECT(toggle_eventbox), "button_press_event",
-                          GTK_SIGNAL_FUNC(summary_toggle_pressed),
-                          summaryview);
+       /* toggle view buttons */
+       toggle_view_btn = gtk_button_new();
+       gtk_box_pack_end(GTK_BOX(hbox), toggle_view_btn, FALSE, FALSE, 0);
+       gtk_button_set_relief(GTK_BUTTON(toggle_view_btn), GTK_RELIEF_NONE);
+       toggle_view_arrow=gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+       gtk_container_add(GTK_CONTAINER(toggle_view_btn), toggle_view_arrow);
+       gtk_signal_connect(GTK_OBJECT(toggle_view_btn), "clicked",
+                               GTK_SIGNAL_FUNC(summary_toggle_view_cb), summaryview);
 
        statlabel_msgs = gtk_label_new("");
        gtk_box_pack_end(GTK_BOX(hbox), statlabel_msgs, FALSE, FALSE, 4);
@@ -511,8 +512,8 @@ SummaryView *summary_create(void)
        summaryview->statlabel_folder = statlabel_folder;
        summaryview->statlabel_select = statlabel_select;
        summaryview->statlabel_msgs = statlabel_msgs;
-       summaryview->toggle_eventbox = toggle_eventbox;
-       summaryview->toggle_arrow = toggle_arrow;
+       summaryview->toggle_view_btn = toggle_view_btn;
+       summaryview->toggle_view_arrow = toggle_view_arrow;
        summaryview->popupmenu = popupmenu;
        summaryview->popupfactory = popupfactory;
        summaryview->msg_is_toggled_on = TRUE;
@@ -2429,12 +2430,26 @@ void summary_step(SummaryView *summaryview, GtkScrollType type)
 }
 
 static void summary_toggle_view(SummaryView *summaryview)
+{
+       MainWindow *mainwin = summaryview->mainwin;
+       GtkItemFactory *ifactory;
+       
+       if (!mainwin) return;
+       
+       ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+       menu_toggle_toggle(ifactory, "/View/Expand Summary View");
+}
+
+void summary_toggle_view_real(SummaryView *summaryview)
 {
        MainWindow *mainwin = summaryview->mainwin;
        union CompositeWin *cwin = &mainwin->win;
        GtkWidget *vpaned = NULL;
        GtkWidget *container = NULL;
-
+       GtkWidget *toggle_view_btn;
+       GtkWidget *toggle_view_arrow;
+       GtkItemFactory *ifactory = gtk_item_factory_from_widget(mainwin->menubar);
+       
        switch (mainwin->type) {
        case SEPARATE_NONE:
                vpaned = cwin->sep_none.vpaned;
@@ -2455,18 +2470,45 @@ static void summary_toggle_view(SummaryView *summaryview)
                gtk_widget_ref(vpaned);
                gtkut_container_remove(GTK_CONTAINER(container), vpaned);
                gtk_widget_reparent(GTK_WIDGET_PTR(summaryview), container);
-               gtk_arrow_set(GTK_ARROW(summaryview->toggle_arrow),
-                             GTK_ARROW_UP, GTK_SHADOW_OUT);
+               
+               gtk_widget_destroy(summaryview->toggle_view_arrow);
+               gtk_widget_destroy(summaryview->toggle_view_btn);
+               
+               toggle_view_btn = gtk_button_new();
+               gtk_box_pack_end(GTK_BOX(summaryview->hbox), toggle_view_btn, FALSE, FALSE, 0);
+               gtk_box_reorder_child(GTK_BOX(summaryview->hbox), toggle_view_btn, 0);
+               gtk_button_set_relief(GTK_BUTTON(toggle_view_btn), GTK_RELIEF_NONE);
+               toggle_view_arrow=gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_OUT);
+               gtk_container_add(GTK_CONTAINER(toggle_view_btn), toggle_view_arrow);
+               gtk_signal_connect(GTK_OBJECT(toggle_view_btn), "clicked",
+                                       GTK_SIGNAL_FUNC(summary_toggle_view_cb), summaryview);
+               gtk_widget_show_all(toggle_view_btn);
+               menu_set_sensitive(ifactory, "/View/Expand Message View", FALSE);
        } else {
                summaryview->msg_is_toggled_on = TRUE;
                gtk_widget_reparent(GTK_WIDGET_PTR(summaryview), vpaned);
                gtk_container_add(GTK_CONTAINER(container), vpaned);
                gtk_widget_unref(vpaned);
-               gtk_arrow_set(GTK_ARROW(summaryview->toggle_arrow),
-                             GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+               
+               gtk_widget_destroy(summaryview->toggle_view_arrow);
+               gtk_widget_destroy(summaryview->toggle_view_btn);
+               
+               toggle_view_btn = gtk_button_new();
+               gtk_box_pack_end(GTK_BOX(summaryview->hbox), toggle_view_btn, FALSE, FALSE, 0);
+               gtk_box_reorder_child(GTK_BOX(summaryview->hbox), toggle_view_btn, 0);
+               gtk_button_set_relief(GTK_BUTTON(toggle_view_btn), GTK_RELIEF_NONE);
+               toggle_view_arrow=gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+               gtk_container_add(GTK_CONTAINER(toggle_view_btn), toggle_view_arrow);
+               gtk_signal_connect(GTK_OBJECT(toggle_view_btn), "clicked",
+                                       GTK_SIGNAL_FUNC(summary_toggle_view_cb), summaryview);
+               gtk_widget_show_all(toggle_view_btn);
+               menu_set_sensitive(ifactory, "/View/Expand Message View", TRUE);
        }
 
        gtk_widget_grab_focus(summaryview->ctree);
+       
+       summaryview->toggle_view_btn = toggle_view_btn;
+       summaryview->toggle_view_arrow = toggle_view_arrow;
 }
 
 static gboolean summary_search_unread_recursive(GtkCTree *ctree,
@@ -4174,12 +4216,11 @@ void summary_set_column_order(SummaryView *summaryview)
 
 /* callback functions */
 
-static void summary_toggle_pressed(GtkWidget *eventbox, GdkEventButton *event,
-                                  SummaryView *summaryview)
+static void summary_toggle_view_cb(GtkWidget *button,
+                                  gpointer data)
 {
-       if (!event)
-               return;
-
+       SummaryView *summaryview = (SummaryView *) data;
+       
        if (!summaryview->msg_is_toggled_on && summaryview->selected)
                summary_display_msg(summaryview, summaryview->selected, FALSE);
        else
@@ -4238,21 +4279,6 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
        if (!event) return;
 
        switch (event->keyval) {
-       case GDK_Q:             /* Quit */
-               RETURN_IF_LOCKED();
-               BREAK_ON_MODIFIER_KEY();
-
-               if (prefs_common.confirm_on_exit) {
-                       if (alertpanel(_("Exit"), _("Exit this program?"),
-                          _("OK"), _("Cancel"), NULL)
-                          == G_ALERTDEFAULT) {
-                               manage_window_focus_in
-                                       (summaryview->mainwin->window,
-                                        NULL, NULL);
-                                       app_will_exit(NULL, summaryview->mainwin);
-                       }
-               }
-               return;
        case GDK_Escape:
                gtk_widget_grab_focus(summaryview->folderview->ctree);
                return;
@@ -4279,16 +4305,6 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                          FALSE))
                        summary_select_next_unread(summaryview);
                break;
-       case GDK_v:             /* Toggle summary mode / message mode */
-       case GDK_V:
-               BREAK_ON_MODIFIER_KEY();
-
-               if (!summaryview->msg_is_toggled_on && summaryview->selected)
-                       summary_display_msg(summaryview,
-                                           summaryview->selected, FALSE);
-               else
-                       summary_toggle_view(summaryview);
-               break;
        case GDK_Return:        /* Scroll up/down one line */
                if (summaryview->displayed != summaryview->selected) {
                        summary_display_msg(summaryview,
index 761cd5ec9699477abe1ba4fcca59649066829b5e..c821cf5d9907cadc9d6514bd0eac9e82bccc75c4 100644 (file)
@@ -101,8 +101,8 @@ struct _SummaryView
        GtkWidget *statlabel_folder;
        GtkWidget *statlabel_select;
        GtkWidget *statlabel_msgs;
-       GtkWidget *toggle_eventbox;
-       GtkWidget *toggle_arrow;
+       GtkWidget *toggle_view_btn;
+       GtkWidget *toggle_view_arrow;
        GtkWidget *popupmenu;
        GtkWidget *colorlabel_menu;
 
@@ -248,4 +248,6 @@ void processing_apply();
 
 void summary_toggle_show_read_messages (SummaryView *summaryview);
 
+void summary_toggle_view_real  (SummaryView    *summaryview);
+
 #endif /* __SUMMARY_H__ */