replace deprecated gtk_window_set_policy
[claws.git] / src / mainwindow.c
index 63a21438e9ea9e7b4b32d70f1483c29428edb32e..708bdbea40969dd47401d5343aae7aaa4714b55a 100644 (file)
@@ -119,7 +119,7 @@ static void toolbar_child_detached          (GtkWidget      *widget,
                                                 GtkWidget      *child,
                                                 gpointer        data);
 
-static void ac_label_button_pressed            (GtkWidget      *widget,
+static gboolean ac_label_button_pressed                (GtkWidget      *widget,
                                                 GdkEventButton *event,
                                                 gpointer        data);
 static void ac_menu_popup_closed               (GtkMenuShell   *menu_shell,
@@ -750,6 +750,24 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_Help/_About"),                   NULL, about_show, 0, NULL}
 };
 
+static gboolean main_window_accel_activate (GtkAccelGroup *accelgroup,
+                                            GObject *arg1,
+                                            guint value,
+                                            GdkModifierType mod,
+                                            gpointer user_data) 
+{
+       MainWindow *mainwin = (MainWindow *)user_data;
+
+       if (mainwin->summaryview &&
+           mainwin->summaryview->quicksearch &&
+           quicksearch_has_focus(mainwin->summaryview->quicksearch) &&
+           (mod == 0 || mod == GDK_SHIFT_MASK)) {
+               quicksearch_pass_key(mainwin->summaryview->quicksearch, value, mod);
+               return TRUE;
+       }
+       return FALSE;
+}
+
 MainWindow *main_window_create(SeparateType type)
 {
        MainWindow *mainwin;
@@ -792,7 +810,7 @@ MainWindow *main_window_create(SeparateType type)
        /* main window */
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(window), PROG_VERSION);
-       gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE);
+       gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
        gtk_window_set_wmclass(GTK_WINDOW(window), "main_window", "Sylpheed");
 
        if (!geometry.min_height) {
@@ -893,7 +911,7 @@ MainWindow *main_window_create(SeparateType type)
                             ac_button, _("Select account"), NULL);
        gtk_button_set_relief(GTK_BUTTON(ac_button), GTK_RELIEF_NONE);
        GTK_WIDGET_UNSET_FLAGS(ac_button, GTK_CAN_FOCUS);
-       gtk_widget_set_size_request(ac_button, -1, 1);
+       gtk_widget_set_size_request(ac_button, -1, 0);
        gtk_box_pack_end(GTK_BOX(hbox_stat), ac_button, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(ac_button), "button_press_event",
                         G_CALLBACK(ac_label_button_pressed), mainwin);
@@ -1029,10 +1047,14 @@ MainWindow *main_window_create(SeparateType type)
        main_window_update_actions_menu(mainwin);
 
        /* attach accel groups to main window */
-#define        ADD_MENU_ACCEL_GROUP_TO_WINDOW(menu,win)        \
-       gtk_window_add_accel_group                      \
-               (GTK_WINDOW(win),                       \
-                gtk_item_factory_from_widget(menu)->accel_group)                
+#define        ADD_MENU_ACCEL_GROUP_TO_WINDOW(menu,win)                        \
+       gtk_window_add_accel_group                                      \
+               (GTK_WINDOW(win),                                       \
+                gtk_item_factory_from_widget(menu)->accel_group);      \
+       g_signal_connect(G_OBJECT(gtk_item_factory_from_widget(menu)->accel_group), \
+                       "accel_activate",                               \
+                       G_CALLBACK(main_window_accel_activate), mainwin);
+                        
        
        ADD_MENU_ACCEL_GROUP_TO_WINDOW(summaryview->popupmenu, mainwin->window);
        
@@ -1479,7 +1501,7 @@ void main_window_get_size(MainWindow *mainwin)
                prefs_common.msgview_height = allocation->height;
        }
 
-       debug_print("summaryview size: %d x %d\n",
+/*     debug_print("summaryview size: %d x %d\n",
                    prefs_common.summaryview_width,
                    prefs_common.summaryview_height);
        debug_print("folderview size: %d x %d\n",
@@ -1487,7 +1509,7 @@ void main_window_get_size(MainWindow *mainwin)
                    prefs_common.folderview_height);
        debug_print("messageview size: %d x %d\n",
                    prefs_common.msgview_width,
-                   prefs_common.msgview_height);
+                   prefs_common.msgview_height); */
 }
 
 void main_window_get_position(MainWindow *mainwin)
@@ -1938,8 +1960,7 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
                                     _("Sylpheed - Folder View"));
                gtk_window_set_wmclass(GTK_WINDOW(folderwin),
                                       "folder_view", "Sylpheed");
-               gtk_window_set_policy(GTK_WINDOW(folderwin),
-                                     TRUE, TRUE, FALSE);
+               gtk_window_set_resizable(GTK_WINDOW(folderwin), TRUE);
                gtk_window_move(GTK_WINDOW(folderwin), prefs_common.folderwin_x,
                                prefs_common.folderwin_y);
                gtk_container_set_border_width(GTK_CONTAINER(folderwin),
@@ -1959,10 +1980,13 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
                                     _("Sylpheed - Message View"));
                gtk_window_set_wmclass(GTK_WINDOW(messagewin),
                                       "message_view", "Sylpheed");
-               gtk_window_set_policy(GTK_WINDOW(messagewin),
-                                     TRUE, TRUE, FALSE);
-               gtk_window_move(GTK_WINDOW(messagewin), prefs_common.main_msgwin_x,
+               gtk_window_set_resizable(GTK_WINDOW(messagewin), TRUE);
+               gtk_window_move(GTK_WINDOW(messagewin), 
+                               prefs_common.main_msgwin_x,
                                prefs_common.main_msgwin_y);
+               gtk_widget_set_size_request(messagewin, 
+                                           prefs_common.msgwin_width,
+                                           prefs_common.msgwin_height);
                gtk_container_set_border_width(GTK_CONTAINER(messagewin),
                                               BORDER_WIDTH);
                g_signal_connect(G_OBJECT(messagewin), "delete_event",
@@ -2196,7 +2220,7 @@ static void toolbar_child_detached(GtkWidget *widget, GtkWidget *child,
        gtk_widget_set_usize(child, -1, -1);
 }
 
-static void ac_label_button_pressed(GtkWidget *widget, GdkEventButton *event,
+static gboolean ac_label_button_pressed(GtkWidget *widget, GdkEventButton *event,
                                    gpointer data)
 {
        MainWindow *mainwin = (MainWindow *)data;
@@ -2666,6 +2690,7 @@ static void sort_summary_cb(MainWindow *mainwin, guint action,
                summary_sort(mainwin->summaryview, (FolderSortKey)action,
                             GTK_CHECK_MENU_ITEM(menuitem)->active
                             ? SORT_ASCENDING : SORT_DESCENDING);
+               item->sort_key = action;
        }
 }
 
@@ -3004,14 +3029,18 @@ gboolean mainwindow_key_pressed (GtkWidget *widget, GdkEventKey *event,
 {
        MainWindow *mainwin = (MainWindow*) data;
        
-       if (!mainwin || !event) return;
-               
+       if (!mainwin || !event) 
+               return FALSE;
+
+       if (quicksearch_has_focus(mainwin->summaryview->quicksearch))
+               return FALSE;
+
        switch (event->keyval) {
        case GDK_Q:             /* Quit */
                BREAK_ON_MODIFIER_KEY();
 
                app_exit_cb(mainwin, 0, NULL);
-               return;
+               return FALSE;
        case GDK_space:
                if (mainwin->folderview && mainwin->summaryview
                    && !mainwin->summaryview->displayed) {