diff options
author | Jonathan Blandford <jrb@redhat.com> | 2005-05-18 03:17:38 (GMT) |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2005-05-18 03:17:38 (GMT) |
commit | 47c91d465696106f108fcd3a688d024b6e517d4a (patch) | |
tree | 95fb443aae0298debdbcc61fe3b63551003882f7 /shell/ev-window.c | |
parent | 00626a90625d35d062e3f72618a77dfae1fa79d9 (diff) |
Massive code clean up from Nickolay Shmyrev. Keep page offset when
Tue May 17 22:54:17 2005 Jonathan Blandford <jrb@redhat.com>
* shell/ev-view.c: (view_update_adjustments),
(view_set_adjustment_values), (view_update_range_and_current_page),
(view_scroll_to_page), (set_scroll_adjustment),
(ev_view_set_scroll_adjustments), (add_scroll_binding_keypad),
(ev_view_scroll), (ev_view_scroll_view),
(ensure_rectangle_is_visible), (find_page_at_location),
(get_link_at_location), (go_to_link), (status_message_from_link),
(ev_view_size_request_continuous_dual_page),
(ev_view_size_request), (ev_view_size_allocate), (ev_view_realize),
(ev_view_unrealize), (ev_view_expose_event),
(ev_view_button_press_event), (ev_view_motion_notify_event),
(ev_view_button_release_event), (ev_gdk_color_to_rgb),
(draw_rubberband), (highlight_find_results), (draw_one_page),
(ev_view_finalize), (ev_view_destroy), (ev_view_class_init),
(ev_view_init), (find_changed_cb), (page_changed_cb),
(on_adjustment_value_changed), (ev_view_new),
(ev_view_set_document), (ev_view_set_zoom),
(ev_view_set_continuous), (ev_view_set_dual_page),
(ev_view_set_presentation), (ev_view_zoom_in), (ev_view_zoom_out),
(zoom_for_size_fit_width), (zoom_for_size_best_fit),
(ev_view_zoom_for_size_presentation),
(ev_view_zoom_for_size_continuous_dual_page),
(ev_view_zoom_for_size_continuous),
(ev_view_zoom_for_size_dual_page),
(ev_view_zoom_for_size_single_page), (ev_view_set_zoom_for_size),
(ev_view_get_status), (ev_view_set_status),
(update_find_status_message), (ev_view_get_find_status),
(ev_view_set_find_status), (jump_to_find_result),
(jump_to_find_page), (compute_selections), (clear_selection),
(ev_view_select_all), (get_selected_text), (ev_view_copy),
(ev_view_primary_get_cb), (ev_view_primary_clear_cb),
(ev_view_update_primary_selection),
(ev_view_create_invisible_cursor), (ev_view_set_cursor):
* shell/ev-view.h:
* shell/ev-window.c: (ev_window_open_page_label),
(ev_window_cmd_view_reload), (ev_window_sizing_mode_changed_cb),
(ev_window_init):
* shell/ev-window.h:
* shell/main.c: (load_files):
Massive code clean up from Nickolay Shmyrev. Keep page offset
when resizing. Remove the bin_window(). Also, patch from James
Bowes to fix command line page, #300641
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 66 |
1 files changed, 10 insertions, 56 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c index f412a26..65b8812 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -458,11 +458,12 @@ update_sizing_buttons (EvWindow *window) } void -ev_window_open_page (EvWindow *ev_window, int page) +ev_window_open_page_label (EvWindow *ev_window, + const char *label) { if (ev_window->priv->page_cache) { - page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache)); - ev_page_cache_set_current_page (ev_window->priv->page_cache, page); + ev_page_cache_set_page_label (ev_window->priv->page_cache, + label); } } @@ -1785,7 +1786,11 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window) uri = g_strdup (ev_window->priv->uri); ev_window_open (ev_window, uri); - ev_window_open_page (ev_window, page); + + /* In case the number of pages in the document has changed. */ + page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache)); + + ev_page_cache_set_current_page (ev_window->priv->page_cache, page); g_free (uri); } @@ -1838,46 +1843,6 @@ ev_window_cmd_escape (GtkAction *action, EvWindow *window) } } -static void -update_view_size (EvWindow *window) -{ - int width, height; - GtkRequisition vsb_requisition; - GtkRequisition hsb_requisition; - int scrollbar_spacing; - - /* Calculate the width available for the */ - width = window->priv->scrolled_window->allocation.width; - height = window->priv->scrolled_window->allocation.height; - - if (gtk_scrolled_window_get_shadow_type (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)) == GTK_SHADOW_IN) { - width -= 2 * window->priv->view->style->xthickness; - height -= 2 * window->priv->view->style->ythickness; - } - - gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)->vscrollbar, - &vsb_requisition); - gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)->hscrollbar, - &hsb_requisition); - gtk_widget_style_get (window->priv->scrolled_window, - "scrollbar_spacing", &scrollbar_spacing, - NULL); - - ev_view_set_zoom_for_size (EV_VIEW (window->priv->view), - MAX (1, width), - MAX (1, height), - vsb_requisition.width + scrollbar_spacing, - hsb_requisition.height + scrollbar_spacing); -} - -static void -size_allocate_cb (GtkWidget *scrolled_window, - GtkAllocation *allocation, - EvWindow *window) -{ - update_view_size (window); -} - static void ev_window_sizing_mode_changed_cb (EvView *view, GParamSpec *pspec, EvWindow *ev_window) @@ -1891,29 +1856,18 @@ ev_window_sizing_mode_changed_cb (EvView *view, GParamSpec *pspec, scrolled_window = ev_window->priv->scrolled_window; - g_signal_handlers_disconnect_by_func (scrolled_window, size_allocate_cb, ev_window); - - if (sizing_mode != EV_SIZING_FREE) - update_view_size (ev_window); - switch (sizing_mode) { case EV_SIZING_BEST_FIT: g_object_set (G_OBJECT (scrolled_window), "hscrollbar-policy", GTK_POLICY_NEVER, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL); - g_signal_connect (scrolled_window, "size-allocate", - G_CALLBACK (size_allocate_cb), - ev_window); break; case EV_SIZING_FIT_WIDTH: g_object_set (G_OBJECT (scrolled_window), "hscrollbar-policy", GTK_POLICY_NEVER, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL); - g_signal_connect (scrolled_window, "size-allocate", - G_CALLBACK (size_allocate_cb), - ev_window); break; case EV_SIZING_FREE: g_object_set (G_OBJECT (scrolled_window), @@ -2730,7 +2684,7 @@ ev_window_init (EvWindow *ev_window) if (!gtk_ui_manager_add_ui_from_file (ev_window->priv->ui_manager, DATADIR"/evince-ui.xml", &error)) { - g_message ("building menus failed: %s", error->message); + g_warning ("building menus failed: %s", error->message); g_error_free (error); } |