change arguments to page_calc_height_width

now accepts a document object and explicit width and height. This will
make it easier to reuse this function for computing the document page
cell width and height.
This commit is contained in:
Abdo Roig-Maranges 2013-10-20 19:20:03 +02:00
parent ed27f8b88e
commit 7329209d84
4 changed files with 21 additions and 15 deletions

View file

@ -600,8 +600,14 @@ render(ZathuraRenderRequest* request, ZathuraRenderer* renderer)
/* create cairo surface */ /* create cairo surface */
unsigned int page_width = 0; unsigned int page_width = 0;
unsigned int page_height = 0; unsigned int page_height = 0;
const double real_scale = page_calc_height_width(page, &page_height,
&page_width, false); zathura_document_t* document = zathura_page_get_document(page);
double height = zathura_page_get_height(page);
double width = zathura_page_get_width(page);
const double real_scale = page_calc_height_width(document, height, width,
&page_height, &page_width, false);
cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
page_width, page_height); page_width, page_height);
@ -705,7 +711,9 @@ render_all(zathura_t* zathura)
zathura_page_t* page = zathura_document_get_page(zathura->document, zathura_page_t* page = zathura_document_get_page(zathura->document,
page_id); page_id);
unsigned int page_height = 0, page_width = 0; unsigned int page_height = 0, page_width = 0;
page_calc_height_width(page, &page_height, &page_width, true); double height = zathura_page_get_height(page);
double width = zathura_page_get_width(page);
page_calc_height_width(zathura->document, height, width, &page_height, &page_width, true);
GtkWidget* widget = zathura_page_get_widget(zathura, page); GtkWidget* widget = zathura_page_get_widget(zathura, page);
gtk_widget_set_size_request(widget, page_width, page_height); gtk_widget_set_size_request(widget, page_width, page_height);

12
utils.c
View file

@ -241,17 +241,11 @@ error_ret:
} }
double double
page_calc_height_width(zathura_page_t* page, unsigned int* page_height, unsigned int* page_width, bool rotate) page_calc_height_width(zathura_document_t* document, double height, double width,
unsigned int* page_height, unsigned int* page_width, bool rotate)
{ {
g_return_val_if_fail(page != NULL && page_height != NULL && page_width != NULL, 0.0); g_return_val_if_fail(document != NULL && page_height != NULL && page_width != NULL, 0.0);
zathura_document_t* document = zathura_page_get_document(page);
if (document == NULL) {
return 0.0;
}
double height = zathura_page_get_height(page);
double width = zathura_page_get_width(page);
double scale = zathura_document_get_scale(document); double scale = zathura_document_get_scale(document);
double real_scale; double real_scale;

View file

@ -96,7 +96,8 @@ zathura_rectangle_t recalc_rectangle(zathura_page_t* page, zathura_rectangle_t r
* @return real scale after rounding * @return real scale after rounding
*/ */
double double
page_calc_height_width(zathura_page_t* page, unsigned int* page_height, unsigned int* page_width, bool rotate); page_calc_height_width(zathura_document_t* document, double height, double width,
unsigned int* page_height, unsigned int* page_width, bool rotate);
/** /**
* Compute the size of the entire document to be displayed (in pixels), taking * Compute the size of the entire document to be displayed (in pixels), taking

View file

@ -745,7 +745,10 @@ document_open(zathura_t* zathura, const char* path, const char* password,
/* set widget size */ /* set widget size */
unsigned int page_height = 0; unsigned int page_height = 0;
unsigned int page_width = 0; unsigned int page_width = 0;
page_calc_height_width(page, &page_height, &page_width, true);
double height = zathura_page_get_height(page);
double width = zathura_page_get_width(page);
page_calc_height_width(zathura->document, height, width, &page_height, &page_width, true);
gtk_widget_set_size_request(page_widget, page_width, page_height); gtk_widget_set_size_request(page_widget, page_width, page_height);