X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-sidebar.c;h=f23a45f39cc00d7d33c48161f7d63403503e5f33;hb=65c06150e05948eb7b056b0ec5cb9c364b652cfe;hp=3f296075a84c7e9fb9e382da0cbb4da6c1346de8;hpb=e6e647fb236b236df1399ff4dba8faf0172002a1;p=evince.git diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c index 3f296075..f23a45f3 100644 --- a/shell/ev-sidebar.c +++ b/shell/ev-sidebar.c @@ -30,8 +30,6 @@ #include "ev-sidebar.h" #include "ev-sidebar-page.h" -#include "ev-document-thumbnails.h" -#include "ev-document-links.h" enum { @@ -45,7 +43,6 @@ enum struct _EvSidebarPrivate { GtkWidget *notebook; GtkWidget *menu; - GtkWidget *frame; GtkWidget *hbox; GtkWidget *label; @@ -66,6 +63,12 @@ ev_sidebar_destroy (GtkObject *object) gtk_menu_detach (GTK_MENU (ev_sidebar->priv->menu)); ev_sidebar->priv->menu = NULL; } + + if (ev_sidebar->priv->page_model) { + g_object_unref (ev_sidebar->priv->page_model); + ev_sidebar->priv->page_model = NULL; + } + (* GTK_OBJECT_CLASS (ev_sidebar_parent_class)->destroy) (object); } @@ -116,6 +119,15 @@ ev_sidebar_select_button_press_cb (GtkWidget *widget, EvSidebar *ev_sidebar = EV_SIDEBAR (user_data); if (event->button == 1) { + GtkRequisition requisition; + gint width; + + width = widget->allocation.width; + gtk_widget_set_size_request (ev_sidebar->priv->menu, -1, -1); + gtk_widget_size_request (ev_sidebar->priv->menu, &requisition); + gtk_widget_set_size_request (ev_sidebar->priv->menu, + MAX (width, requisition.width), -1); + gtk_widget_grab_focus (widget); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); @@ -209,13 +221,14 @@ ev_sidebar_menu_item_activate_cb (GtkWidget *widget, } else { valid = gtk_tree_model_iter_next (ev_sidebar->priv->page_model, &iter); } + g_object_unref (item); + g_free (title); } } static void ev_sidebar_init (EvSidebar *ev_sidebar) { - GtkWidget *frame; GtkWidget *hbox; GtkWidget *close_button; GtkWidget *select_button; @@ -234,14 +247,9 @@ ev_sidebar_init (EvSidebar *ev_sidebar) G_TYPE_INT); /* top option menu */ - frame = gtk_frame_new (NULL); - ev_sidebar->priv->frame = frame; - gtk_box_pack_start (GTK_BOX (ev_sidebar), frame, FALSE, FALSE, 0); - gtk_widget_show (frame); - hbox = gtk_hbox_new (FALSE, 0); ev_sidebar->priv->hbox = hbox; - gtk_container_add (GTK_CONTAINER (frame), hbox); + gtk_box_pack_start (GTK_BOX (ev_sidebar), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); select_button = gtk_toggle_button_new (); @@ -363,6 +371,7 @@ ev_sidebar_add_page (EvSidebar *ev_sidebar, gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title); gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), index); + g_free (label_title); } void @@ -399,6 +408,8 @@ ev_sidebar_set_document (EvSidebar *sidebar, } else { gtk_widget_set_sensitive (menu_widget, FALSE); } + g_object_unref (widget); + g_object_unref (menu_widget); } if (!has_pages) {