X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-sidebar.c;h=2d97381d5aee5a4426811e15e26cfb0442e9cb77;hb=cc3f21efc8104182171c9300facc16d9a79177ef;hp=509a90b35ee3aa509ae635497c9639b44c7f3c67;hpb=56b849d72779ad2812dff99426bacebd0944e336;p=evince.git diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c index 509a90b3..2d97381d 100644 --- a/shell/ev-sidebar.c +++ b/shell/ev-sidebar.c @@ -25,6 +25,7 @@ #endif #include + #include #include @@ -48,6 +49,7 @@ enum struct _EvSidebarPrivate { GtkWidget *notebook; + GtkWidget *select_button; GtkWidget *menu; GtkWidget *hbox; GtkWidget *label; @@ -331,7 +333,6 @@ ev_sidebar_init (EvSidebar *ev_sidebar) { GtkWidget *hbox; GtkWidget *close_button; - GtkWidget *select_button; GtkWidget *select_hbox; GtkWidget *arrow; GtkWidget *image; @@ -352,12 +353,12 @@ ev_sidebar_init (EvSidebar *ev_sidebar) gtk_box_pack_start (GTK_BOX (ev_sidebar), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); - select_button = gtk_toggle_button_new (); - gtk_button_set_relief (GTK_BUTTON (select_button), GTK_RELIEF_NONE); - g_signal_connect (select_button, "button_press_event", + ev_sidebar->priv->select_button = gtk_toggle_button_new (); + gtk_button_set_relief (GTK_BUTTON (ev_sidebar->priv->select_button), GTK_RELIEF_NONE); + g_signal_connect (ev_sidebar->priv->select_button, "button_press_event", G_CALLBACK (ev_sidebar_select_button_press_cb), ev_sidebar); - g_signal_connect (select_button, "key_press_event", + g_signal_connect (ev_sidebar->priv->select_button, "key_press_event", G_CALLBACK (ev_sidebar_select_button_key_press_cb), ev_sidebar); @@ -373,11 +374,11 @@ ev_sidebar_init (EvSidebar *ev_sidebar) gtk_box_pack_end (GTK_BOX (select_hbox), arrow, FALSE, FALSE, 0); gtk_widget_show (arrow); - gtk_container_add (GTK_CONTAINER (select_button), select_hbox); + gtk_container_add (GTK_CONTAINER (ev_sidebar->priv->select_button), select_hbox); gtk_widget_show (select_hbox); - gtk_box_pack_start (GTK_BOX (hbox), select_button, TRUE, TRUE, 0); - gtk_widget_show (select_button); + gtk_box_pack_start (GTK_BOX (hbox), ev_sidebar->priv->select_button, TRUE, TRUE, 0); + gtk_widget_show (ev_sidebar->priv->select_button); close_button = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); @@ -386,7 +387,7 @@ ev_sidebar_init (EvSidebar *ev_sidebar) ev_sidebar); image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, - GTK_ICON_SIZE_SMALL_TOOLBAR); + GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (close_button), image); gtk_widget_show (image); @@ -396,7 +397,7 @@ ev_sidebar_init (EvSidebar *ev_sidebar) ev_sidebar->priv->menu = gtk_menu_new (); g_signal_connect (ev_sidebar->priv->menu, "deactivate", G_CALLBACK (ev_sidebar_menu_deactivate_cb), - select_button); + ev_sidebar->priv->select_button); gtk_menu_attach_to_widget (GTK_MENU (ev_sidebar->priv->menu), GTK_WIDGET (ev_sidebar), ev_sidebar_menu_detach_cb); @@ -409,7 +410,8 @@ ev_sidebar_init (EvSidebar *ev_sidebar) TRUE, TRUE, 0); gtk_widget_show (ev_sidebar->priv->notebook); - gtk_widget_set_sensitive (GTK_WIDGET (ev_sidebar), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (ev_sidebar->priv->notebook), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (ev_sidebar->priv->select_button), FALSE); } /* Public functions */ @@ -450,7 +452,8 @@ ev_sidebar_add_page (EvSidebar *ev_sidebar, gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (ev_sidebar->priv->menu), menu_item); - + + /* Insert and move to end */ gtk_list_store_insert_with_values (GTK_LIST_STORE (ev_sidebar->priv->page_model), &iter, 0, PAGE_COLUMN_TITLE, title, @@ -458,7 +461,10 @@ ev_sidebar_add_page (EvSidebar *ev_sidebar, PAGE_COLUMN_MAIN_WIDGET, main_widget, PAGE_COLUMN_NOTEBOOK_INDEX, index, -1); - + gtk_list_store_move_before(GTK_LIST_STORE(ev_sidebar->priv->page_model), + &iter, NULL); + + /* Set the first item added as active */ gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter); gtk_tree_model_get (ev_sidebar->priv->page_model, @@ -515,7 +521,8 @@ ev_sidebar_set_document (EvSidebar *sidebar, if (!has_pages) { gtk_widget_hide (GTK_WIDGET (sidebar)); } else { - gtk_widget_set_sensitive (GTK_WIDGET (sidebar), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (sidebar->priv->notebook), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (sidebar->priv->select_button), TRUE); } }