Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-window.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-02-24 12:47:27 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-02-24 12:47:27 (GMT)
commit6d7f9e7cf7678b48828be0722ae2e998ce85b7a7 (patch)
tree3ac765c1e0b92a5be0ce6a637d8577a0525d3eda /shell/ev-window.c
parent810d8b0808591ebb17d4913da4d20e489e9b8cde (diff)
Separate page/scale notifications
2005-02-24 Marco Pesenti Gritti <marco@gnome.org> * backend/ev-document.c: (ev_document_class_init), (ev_document_page_changed), (ev_document_scale_changed): * backend/ev-document.h: Separate page/scale notifications * pdf/xpdf/pdf-document.cc: Emit the new signals. Do not display the pdf page in _render, do it when scale/page are requested. * ps/ps-document.c: (ps_document_set_zoom), (ps_document_widget_event): * ps/ps-document.h: Emit the new signals. * shell/ev-view.c: (ev_view_size_request), (expose_bin_window), (ev_view_init), (page_changed_callback), (scale_changed_callback), (ev_view_set_document), (ev_view_zoom), (ev_view_zoom_in), (ev_view_zoom_out), (size_to_zoom_factor), (ev_view_set_size): * shell/ev-view.h: * shell/ev-window.c: (ev_window_cmd_view_normal_size), (ev_window_cmd_view_page_width), (size_allocate_cb), (ev_window_set_sizing_mode): Rework sizing to be pixel based. There are bugs but should be already way better.
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r--shell/ev-window.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index df25cc2..dc88f70 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -61,6 +61,12 @@
#include "ev-stock-icons.h"
typedef enum {
+ EV_SIZING_BEST_FIT,
+ EV_SIZING_FIT_WIDTH,
+ EV_SIZING_FREE,
+} EvSizingMode;
+
+typedef enum {
PAGE_MODE_SINGLE_PAGE,
PAGE_MODE_CONTINUOUS_PAGE,
PAGE_MODE_PASSWORD,
@@ -1367,7 +1373,7 @@ ev_window_cmd_view_normal_size (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
- ev_view_normal_size (EV_VIEW (ev_window->priv->view));
+ ev_view_set_size (EV_VIEW (ev_window->priv->view), -1, -1);
}
static void
@@ -1417,9 +1423,7 @@ ev_window_cmd_view_page_width (GtkAction *action, EvWindow *ev_window)
ev_window_set_sizing_mode (ev_window, EV_SIZING_FIT_WIDTH);
- ev_view_fit_width (EV_VIEW (ev_window->priv->view),
- width, height,
- vsb_requisition.width + scrollbar_spacing);
+ ev_view_set_size (EV_VIEW (ev_window->priv->view), width, height);
}
static void
@@ -1487,7 +1491,7 @@ size_allocate_cb (GtkWidget *scrolled_window,
height -= 2 * ev_window->priv->view->style->ythickness;
if (ev_window->priv->sizing_mode == EV_SIZING_BEST_FIT) {
- ev_view_best_fit (EV_VIEW (ev_window->priv->view),
+ ev_view_set_size (EV_VIEW (ev_window->priv->view),
MAX (1, width), MAX (1, height));
} else if (ev_window->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
gtk_widget_size_request (GTK_SCROLLED_WINDOW (ev_window->priv->scrolled_window)->vscrollbar,
@@ -1495,9 +1499,8 @@ size_allocate_cb (GtkWidget *scrolled_window,
gtk_widget_style_get (ev_window->priv->scrolled_window,
"scrollbar_spacing", &scrollbar_spacing,
NULL);
- ev_view_fit_width (EV_VIEW (ev_window->priv->view),
- width, height,
- vsb_requisition.width + scrollbar_spacing);
+ ev_view_set_size (EV_VIEW (ev_window->priv->view),
+ width - vsb_requisition.width - scrollbar_spacing, -1);
}
}
@@ -1542,7 +1545,6 @@ ev_window_set_sizing_mode (EvWindow *ev_window,
break;
}
- ev_view_set_mode (EV_VIEW (ev_window->priv->view), sizing_mode);
update_sizing_buttons (ev_window);
}