From b263c1dfebc5946bfa1b6e1fb0d679d1c42a7dbe Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 16 Apr 2005 11:02:13 +0000 Subject: Do not draw the border in fulscreen 2005-04-16 Marco Pesenti Gritti * shell/ev-view.c: (compute_border), (compute_zoom_factor), (ev_view_size_request), (expose_bin_window), (ev_view_set_show_border), (ev_view_init), (page_changed_cb): * shell/ev-view.h: * shell/ev-window.c: (ev_window_unfullscreen), (ev_window_cmd_view_fullscreen): Do not draw the border in fulscreen --- (limited to 'shell') diff --git a/shell/ev-view.c b/shell/ev-view.c index b11a4bc..95352c1 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -115,6 +115,7 @@ struct _EvView { int width; int height; GtkBorder border; + gboolean show_border; }; struct _EvViewClass { @@ -282,6 +283,19 @@ doc_rect_to_view_rect (EvView *view, EvRectangle *doc_rect, GdkRectangle *view_r } static void +compute_border (EvView *view, int width, int height, GtkBorder *border) +{ + if (view->show_border) { + ev_document_misc_get_page_border_size (width, height, border); + } else { + border->left = 0; + border->right = 0; + border->top = 0; + border->bottom = 0; + } +} + +static void compute_zoom_factor (EvView *view) { int doc_width, doc_height; @@ -300,7 +314,7 @@ compute_zoom_factor (EvView *view) &doc_width, &doc_height); - ev_document_misc_get_page_border_size (doc_width, doc_height, &border); + compute_border (view, doc_width, doc_height, &border); if (doc_width == 0 || doc_height == 0) { return; @@ -354,11 +368,12 @@ ev_view_size_request (GtkWidget *widget, view->scale, &width, &height); + compute_border (view, width, height, &(view->border)); + ev_pixbuf_cache_set_page_range (view->pixbuf_cache, view->current_page, view->current_page, view->scale); - ev_document_misc_get_page_border_size (width, height, &(view->border)); if (view->width >= 0) { requisition->width = 0; @@ -569,8 +584,11 @@ expose_bin_window (GtkWidget *widget, area.y = y_offset; area.width = width + view->border.left + view->border.right; area.height = height + view->border.top + view->border.bottom; - ev_document_misc_paint_one_page (view->bin_window, widget, &area, - &(view->border)); + + if (view->show_border) { + ev_document_misc_paint_one_page (view->bin_window, widget, &area, + &(view->border)); + } /* Render the document itself */ LOG ("Render area %d %d %d %d - Offset %d %d", @@ -680,6 +698,16 @@ ev_view_copy (EvView *ev_view) g_free (text); } +void +ev_view_set_show_border (EvView *view, gboolean show_border) +{ + g_return_if_fail (EV_IS_VIEW (view)); + + view->show_border = show_border; + + gtk_widget_queue_resize (GTK_WIDGET (view)); +} + static void ev_view_primary_get_cb (GtkClipboard *clipboard, GtkSelectionData *selection_data, @@ -1267,6 +1295,7 @@ ev_view_init (EvView *view) view->current_page = 0; view->pressed_button = -1; view->cursor = EV_VIEW_CURSOR_NORMAL; + view->show_border = TRUE; } static void @@ -1451,8 +1480,7 @@ page_changed_cb (EvPageCache *page_cache, view->scale, &new_width, &new_height); - ev_document_misc_get_page_border_size - (new_width, new_height, &(view->border)); + compute_border (view, new_width, new_height, &(view->border)); ev_pixbuf_cache_set_page_range (view->pixbuf_cache, view->current_page, diff --git a/shell/ev-view.h b/shell/ev-view.h index 6cde705..09c1600 100644 --- a/shell/ev-view.h +++ b/shell/ev-view.h @@ -54,6 +54,8 @@ void ev_view_zoom_out (EvView *view); void ev_view_set_size (EvView *view, int width, int height); +void ev_view_set_show_border (EvView *view, + gboolean show_border); /* Find */ gboolean ev_view_can_find_next (EvView *view); diff --git a/shell/ev-window.c b/shell/ev-window.c index fdee542..182261c 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1433,6 +1433,7 @@ ev_window_unfullscreen (EvWindow *window) // destroy_fullscreen_popup (window); + ev_view_set_show_border (EV_VIEW (window->priv->view), TRUE); update_chrome_visibility (window); } @@ -1450,6 +1451,8 @@ ev_window_cmd_view_fullscreen (GtkAction *action, EvWindow *ev_window) } else { gtk_window_unfullscreen (GTK_WINDOW (ev_window)); } + + ev_view_set_show_border (EV_VIEW (ev_window->priv->view), FALSE); } static gboolean -- cgit v0.9.1