mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-11-14 08:03:47 +01:00
HiDPI: add preprocessor conditionals
This commit is contained in:
parent
5fa4b8907e
commit
36d9ece978
@ -47,6 +47,15 @@ WITH_SYNCTEX ?= $(shell (${PKG_CONFIG} synctex && echo 1) || echo 0)
|
|||||||
# To disable support for mimetype detction with libmagic set WITH_MAGIC to 0.
|
# To disable support for mimetype detction with libmagic set WITH_MAGIC to 0.
|
||||||
WITH_MAGIC ?= 1
|
WITH_MAGIC ?= 1
|
||||||
|
|
||||||
|
# HiDPI
|
||||||
|
HIDPI_SUPPORT_CAIRO = $(shell (${PKG_CONFIG} --atleast-version=1.14 cairo && echo 1) || echo 0)
|
||||||
|
HIDPI_SUPPORT_GTK = $(shell (${PKG_CONFIG} --atleast-version=3.10 ${GTK_PKG_CONFIG_NAME} && echo 1) || echo 0)
|
||||||
|
ifeq (${HIDPI_SUPPORT_CAIRO},1)
|
||||||
|
ifeq (${HIDPI_SUPPORT_GTK},1)
|
||||||
|
CPPFLAGS += -DHAVE_HIDPI_SUPPORT
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# paths
|
# paths
|
||||||
PREFIX ?= /usr
|
PREFIX ?= /usr
|
||||||
MANPREFIX ?= ${PREFIX}/share/man
|
MANPREFIX ?= ${PREFIX}/share/man
|
||||||
|
@ -223,7 +223,11 @@ cb_scale_factor(GtkWidget* widget, GParamSpec* UNUSED(pspec), zathura_t* zathura
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_HIDPI_SUPPORT
|
||||||
int new_factor = gtk_widget_get_scale_factor(widget);
|
int new_factor = gtk_widget_get_scale_factor(widget);
|
||||||
|
#else
|
||||||
|
int new_factor = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
double current_x;
|
double current_x;
|
||||||
double current_y;
|
double current_y;
|
||||||
|
@ -740,6 +740,7 @@ render(render_job_t* job, ZathuraRenderRequest* request, ZathuraRenderer* render
|
|||||||
&page_height, &page_width,
|
&page_height, &page_width,
|
||||||
false);
|
false);
|
||||||
|
|
||||||
|
#ifdef HAVE_HIDPI_SUPPORT
|
||||||
double device_scale_x;
|
double device_scale_x;
|
||||||
double device_scale_y;
|
double device_scale_y;
|
||||||
zathura_document_get_device_scale(document, &device_scale_x, &device_scale_y);
|
zathura_document_get_device_scale(document, &device_scale_x, &device_scale_y);
|
||||||
@ -748,6 +749,7 @@ render(render_job_t* job, ZathuraRenderRequest* request, ZathuraRenderer* render
|
|||||||
page_width *= device_scale_x;
|
page_width *= device_scale_x;
|
||||||
page_height *= device_scale_y;
|
page_height *= device_scale_y;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
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);
|
||||||
@ -759,6 +761,7 @@ render(render_job_t* job, ZathuraRenderRequest* request, ZathuraRenderer* render
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_HIDPI_SUPPORT
|
||||||
if (device_scale_x != 0.0 && device_scale_y != 0.0) {
|
if (device_scale_x != 0.0 && device_scale_y != 0.0) {
|
||||||
cairo_surface_set_device_scale(surface, device_scale_x, device_scale_y);
|
cairo_surface_set_device_scale(surface, device_scale_x, device_scale_y);
|
||||||
if (cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS) {
|
if (cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS) {
|
||||||
@ -766,6 +769,7 @@ render(render_job_t* job, ZathuraRenderRequest* request, ZathuraRenderer* render
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
cairo_t* cairo = cairo_create(surface);
|
cairo_t* cairo = cairo_create(surface);
|
||||||
if (cairo == NULL) {
|
if (cairo == NULL) {
|
||||||
|
@ -153,8 +153,10 @@ init_ui(zathura_t* zathura)
|
|||||||
g_signal_connect(G_OBJECT(zathura->ui.session->gtk.view), "refresh-view",
|
g_signal_connect(G_OBJECT(zathura->ui.session->gtk.view), "refresh-view",
|
||||||
G_CALLBACK(cb_refresh_view), zathura);
|
G_CALLBACK(cb_refresh_view), zathura);
|
||||||
|
|
||||||
|
#ifdef HAVE_HIDPI_SUPPORT
|
||||||
g_signal_connect(G_OBJECT(zathura->ui.session->gtk.view),
|
g_signal_connect(G_OBJECT(zathura->ui.session->gtk.view),
|
||||||
"notify::scale-factor", G_CALLBACK(cb_scale_factor), zathura);
|
"notify::scale-factor", G_CALLBACK(cb_scale_factor), zathura);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* page view */
|
/* page view */
|
||||||
zathura->ui.page_widget = gtk_grid_new();
|
zathura->ui.page_widget = gtk_grid_new();
|
||||||
|
Loading…
Reference in New Issue
Block a user