Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-02-24 14:59:18 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-02-24 14:59:18 (GMT)
commitffd817da58c15bc17cc1a5534b53f7ad6766c876 (patch)
tree2b1956cfc00e5be5c42cabbaf5cafeba186a29ed /shell
parent7ed6744f29a2ffeebf8775473adedb521995a211 (diff)
Update size when switching mode
2005-02-24 Marco Pesenti Gritti <marco@gnome.org> * shell/ev-window.c: (update_sizing_buttons), (update_view_size), (size_allocate_cb), (ev_window_set_sizing_mode): Update size when switching mode
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-window.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 8477307..250c119 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -313,7 +313,8 @@ update_sizing_buttons (EvWindow *window)
best_fit = FALSE;
page_width = TRUE;
break;
- case EV_SIZING_FREE:
+
+ default:
best_fit = page_width = FALSE;
break;
}
@@ -1454,36 +1455,42 @@ ev_window_cmd_leave_fullscreen (GtkAction *action, EvWindow *window)
}
static void
-size_allocate_cb (GtkWidget *scrolled_window,
- GtkAllocation *allocation,
- EvWindow *ev_window)
+update_view_size (EvWindow *window)
{
int width, height;
GtkRequisition vsb_requisition;
int scrollbar_spacing;
- width = ev_window->priv->scrolled_window->allocation.width;
- height = ev_window->priv->scrolled_window->allocation.height;
+ width = window->priv->scrolled_window->allocation.width;
+ height = window->priv->scrolled_window->allocation.height;
/* the scrolled window has a GTK_SHADOW_IN */
- width -= 2 * ev_window->priv->view->style->xthickness;
- height -= 2 * ev_window->priv->view->style->ythickness;
+ width -= 2 * window->priv->view->style->xthickness;
+ height -= 2 * window->priv->view->style->ythickness;
- if (ev_window->priv->sizing_mode == EV_SIZING_BEST_FIT) {
- ev_view_set_size (EV_VIEW (ev_window->priv->view),
+ if (window->priv->sizing_mode == EV_SIZING_BEST_FIT) {
+ ev_view_set_size (EV_VIEW (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,
+ } else if (window->priv->sizing_mode == EV_SIZING_FIT_WIDTH) {
+ gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)->vscrollbar,
&vsb_requisition);
- gtk_widget_style_get (ev_window->priv->scrolled_window,
+ gtk_widget_style_get (window->priv->scrolled_window,
"scrollbar_spacing", &scrollbar_spacing,
NULL);
- ev_view_set_size (EV_VIEW (ev_window->priv->view),
+ ev_view_set_size (EV_VIEW (window->priv->view),
width - vsb_requisition.width - scrollbar_spacing, -1);
}
}
static void
+size_allocate_cb (GtkWidget *scrolled_window,
+ GtkAllocation *allocation,
+ EvWindow *window)
+{
+ update_view_size (window);
+}
+
+static void
ev_window_set_sizing_mode (EvWindow *ev_window,
EvSizingMode sizing_mode)
{
@@ -1497,6 +1504,8 @@ ev_window_set_sizing_mode (EvWindow *ev_window,
g_signal_handlers_disconnect_by_func (scrolled_window, size_allocate_cb, ev_window);
+ update_view_size (ev_window);
+
switch (sizing_mode) {
case EV_SIZING_BEST_FIT:
g_object_set (G_OBJECT (scrolled_window),