mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-29 11:16:00 +01:00
Merge branch 'render' of pwmt.org:zathura into render
Conflicts: render.h
This commit is contained in:
commit
0aa9264732
6 changed files with 135 additions and 79 deletions
|
@ -218,13 +218,13 @@ djvu_page_form_fields_get(zathura_page_t* page)
|
|||
zathura_image_buffer_t*
|
||||
djvu_page_render(zathura_page_t* page)
|
||||
{
|
||||
if (!Zathura.document || !page || !page->document) {
|
||||
if (!page || !page->document) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* calculate sizes */
|
||||
unsigned int page_width = Zathura.document->scale * page->width;
|
||||
unsigned int page_height = Zathura.document->scale * page->height;
|
||||
unsigned int page_width = page->document->scale * page->width;
|
||||
unsigned int page_height = page->document->scale * page->height;
|
||||
|
||||
if (!page_width || !page_height) {
|
||||
goto error_out;
|
||||
|
|
|
@ -176,15 +176,15 @@ pdf_page_form_fields_get(zathura_page_t* page)
|
|||
zathura_image_buffer_t*
|
||||
pdf_page_render(zathura_page_t* page)
|
||||
{
|
||||
if (!Zathura.document || !page || !page->data || !page->document) {
|
||||
if (!page || !page->data || !page->document) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* calculate sizes */
|
||||
unsigned int page_width = Zathura.document->scale * page->width;
|
||||
unsigned int page_height = Zathura.document->scale * page->height;
|
||||
unsigned int page_width = page->document->scale * page->width;
|
||||
unsigned int page_height = page->document->scale * page->height;
|
||||
|
||||
if (Zathura.document->rotate == 90 || Zathura.document->rotate == 270) {
|
||||
if (page->document->rotate == 90 || page->document->rotate == 270) {
|
||||
unsigned int dim_temp = 0;
|
||||
dim_temp = page_width;
|
||||
page_width = page_height;
|
||||
|
@ -215,9 +215,9 @@ pdf_page_render(zathura_page_t* page)
|
|||
|
||||
fz_matrix ctm = fz_identity;
|
||||
ctm = fz_concat(ctm, fz_translate(0, -mupdf_page->page->mediabox.y1));
|
||||
ctm = fz_concat(ctm, fz_scale(Zathura.document->scale, -Zathura.document->scale));
|
||||
ctm = fz_concat(ctm, fz_scale(page->document->scale, -page->document->scale));
|
||||
ctm = fz_concat(ctm, fz_rotate(mupdf_page->page->rotate));
|
||||
ctm = fz_concat(ctm, fz_rotate(Zathura.document->rotate));
|
||||
ctm = fz_concat(ctm, fz_rotate(page->document->rotate));
|
||||
fz_bbox bbox = fz_roundrect(fz_transformrect(ctm, mupdf_page->page->mediabox));
|
||||
|
||||
fz_pixmap* pixmap = fz_newpixmapwithrect(fz_devicergb, bbox);
|
||||
|
|
|
@ -253,13 +253,13 @@ pdf_page_form_fields_get(zathura_page_t* page)
|
|||
zathura_image_buffer_t*
|
||||
pdf_page_render(zathura_page_t* page)
|
||||
{
|
||||
if (!Zathura.document || !page || !page->data || !page->document) {
|
||||
if (!page || !page->data || !page->document) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* calculate sizes */
|
||||
unsigned int page_width = Zathura.document->scale * page->width;
|
||||
unsigned int page_height = Zathura.document->scale * page->height;
|
||||
unsigned int page_width = page->document->scale * page->width;
|
||||
unsigned int page_height = page->document->scale * page->height;
|
||||
|
||||
/* create pixbuf */
|
||||
GdkPixbuf* pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8,
|
||||
|
@ -270,7 +270,7 @@ pdf_page_render(zathura_page_t* page)
|
|||
}
|
||||
|
||||
poppler_page_render_to_pixbuf(page->data, 0, 0, page_width, page_height,
|
||||
Zathura.document->scale, 90, pixbuf);
|
||||
page->document->scale, 90, pixbuf);
|
||||
|
||||
/* create image buffer */
|
||||
zathura_image_buffer_t* image_buffer = zathura_image_buffer_create(page_width, page_height);
|
||||
|
|
27
render.c
27
render.c
|
@ -20,7 +20,7 @@ render_job(void* data)
|
|||
girara_list_remove(render_thread->list, page);
|
||||
g_mutex_unlock(render_thread->lock);
|
||||
|
||||
if (render(page) != true) {
|
||||
if (render(render_thread->zathura, page) != true) {
|
||||
fprintf(stderr, "rendering failed\n");
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ render_job(void* data)
|
|||
}
|
||||
|
||||
render_thread_t*
|
||||
render_init(void)
|
||||
render_init(zathura_t* zathura)
|
||||
{
|
||||
render_thread_t* render_thread = malloc(sizeof(render_thread_t));
|
||||
|
||||
|
@ -40,9 +40,10 @@ render_init(void)
|
|||
}
|
||||
|
||||
/* init */
|
||||
render_thread->list = NULL;
|
||||
render_thread->thread = NULL;
|
||||
render_thread->cond = NULL;
|
||||
render_thread->list = NULL;
|
||||
render_thread->thread = NULL;
|
||||
render_thread->cond = NULL;
|
||||
render_thread->zathura = zathura;
|
||||
|
||||
/* setup */
|
||||
render_thread->list = girara_list_new();
|
||||
|
@ -130,7 +131,7 @@ render_page(render_thread_t* render_thread, zathura_page_t* page)
|
|||
}
|
||||
|
||||
bool
|
||||
render(zathura_page_t* page)
|
||||
render(zathura_t* zathura, zathura_page_t* page)
|
||||
{
|
||||
gdk_threads_enter();
|
||||
g_static_mutex_lock(&(page->lock));
|
||||
|
@ -149,8 +150,8 @@ render(zathura_page_t* page)
|
|||
}
|
||||
|
||||
/* create cairo surface */
|
||||
unsigned int page_width = page->width * Zathura.document->scale;
|
||||
unsigned int page_height = page->height * Zathura.document->scale;
|
||||
unsigned int page_width = page->width * zathura->document->scale;
|
||||
unsigned int page_height = page->height * zathura->document->scale;
|
||||
|
||||
cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, page_width, page_height);
|
||||
|
||||
|
@ -183,18 +184,18 @@ render(zathura_page_t* page)
|
|||
}
|
||||
|
||||
void
|
||||
render_all(void)
|
||||
render_all(zathura_t* zathura)
|
||||
{
|
||||
if (Zathura.document == NULL) {
|
||||
if (zathura->document == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* unmark all pages */
|
||||
for (unsigned int page_id = 0; page_id < Zathura.document->number_of_pages; page_id++) {
|
||||
Zathura.document->pages[page_id]->rendered = false;
|
||||
for (unsigned int page_id = 0; page_id < zathura->document->number_of_pages; page_id++) {
|
||||
zathura->document->pages[page_id]->rendered = false;
|
||||
}
|
||||
|
||||
/* redraw current page */
|
||||
GtkAdjustment* view_vadjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));
|
||||
GtkAdjustment* view_vadjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));
|
||||
cb_view_vadjustment_value_changed(view_vadjustment, NULL);
|
||||
}
|
||||
|
|
8
render.h
8
render.h
|
@ -16,14 +16,16 @@ struct render_thread_s
|
|||
GThread* thread; /**> The thread object */
|
||||
GMutex* lock; /**> Lock */
|
||||
GCond* cond; /**> Condition */
|
||||
zathura_t* zathura; /**> Zathura object */
|
||||
};
|
||||
|
||||
/**
|
||||
* This function initializes a render thread
|
||||
*
|
||||
* @param Zathura object
|
||||
* @return The render thread object or NULL if an error occured
|
||||
*/
|
||||
render_thread_t* render_init(void);
|
||||
render_thread_t* render_init(zathura_t* zathura);
|
||||
|
||||
/**
|
||||
* This function destroys the render thread object
|
||||
|
@ -46,7 +48,9 @@ bool render_page(render_thread_t* render_thread, zathura_page_t* page);
|
|||
* This function is used to unmark all pages as not rendered. This should
|
||||
* be used if all pages should be rendered again (e.g.: the zoom level or the
|
||||
* colors have changed)
|
||||
*
|
||||
* @param zathura Zathura object
|
||||
*/
|
||||
void render_all(void);
|
||||
void render_all(zathura_t* zathura);
|
||||
|
||||
#endif // RENDER_H
|
||||
|
|
153
shortcuts.c
153
shortcuts.c
|
@ -13,6 +13,8 @@ bool
|
|||
sc_abort(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
girara_mode_set(session, NORMAL);
|
||||
|
||||
|
@ -22,12 +24,20 @@ sc_abort(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
|||
bool
|
||||
sc_adjust_window(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_change_buffer(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -35,6 +45,8 @@ bool
|
|||
sc_change_mode(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
girara_mode_set(session, argument->n);
|
||||
|
||||
|
@ -45,6 +57,8 @@ bool
|
|||
sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
if (!(GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar)))) {
|
||||
gtk_widget_show(GTK_WIDGET(session->gtk.inputbar));
|
||||
|
@ -62,15 +76,21 @@ sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, unsign
|
|||
bool
|
||||
sc_follow(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
if (argument->n == TOP) {
|
||||
girara_argument_t arg = { TOP, NULL };
|
||||
|
@ -85,12 +105,12 @@ sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
|||
return true;
|
||||
}
|
||||
|
||||
unsigned int number_of_pages = Zathura.document->number_of_pages;
|
||||
unsigned int number_of_pages = zathura->document->number_of_pages;
|
||||
|
||||
if (t > 0 && t <= number_of_pages) {
|
||||
// TODO: Calculate offset
|
||||
/*GtkAdjustment* adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));*/
|
||||
/*unsigned int offset = Zathura.document->pages[t - 1]->offset * Zathura.document->scale;*/
|
||||
/*GtkAdjustment* adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));*/
|
||||
/*unsigned int offset = zathura->document->pages[t - 1]->offset * zathura->document->scale;*/
|
||||
/*gtk_adjustment_set_value(adjustment, offset);*/
|
||||
}
|
||||
}
|
||||
|
@ -101,12 +121,14 @@ sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
|||
bool
|
||||
sc_navigate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
unsigned int number_of_pages = Zathura.document->number_of_pages;
|
||||
unsigned int new_page = Zathura.document->current_page_number;
|
||||
unsigned int number_of_pages = zathura->document->number_of_pages;
|
||||
unsigned int new_page = zathura->document->current_page_number;
|
||||
|
||||
if (argument->n == NEXT) {
|
||||
new_page = (new_page + 1) % number_of_pages;
|
||||
|
@ -122,24 +144,35 @@ sc_navigate(girara_session_t* session, girara_argument_t* argument, unsigned int
|
|||
bool
|
||||
sc_recolor(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_reload(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
|
||||
zathura_t* zathura = session->global.data;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_rotate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL || Zathura.document == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
/* update rotate value */
|
||||
Zathura.document->rotate = (Zathura.document->rotate + 90) % 360;
|
||||
zathura->document->rotate = (zathura->document->rotate + 90) % 360;
|
||||
|
||||
/* render all pages again */
|
||||
render_all();
|
||||
|
@ -150,11 +183,17 @@ sc_rotate(girara_session_t* session, girara_argument_t* argument, unsigned int t
|
|||
bool
|
||||
sc_scroll(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
GtkAdjustment* adjustment = NULL;
|
||||
if ( (argument->n == LEFT) || (argument->n == RIGHT) )
|
||||
adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));
|
||||
adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));
|
||||
else
|
||||
adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));
|
||||
adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));
|
||||
|
||||
gdouble view_size = gtk_adjustment_get_page_size(adjustment);
|
||||
gdouble value = gtk_adjustment_get_value(adjustment);
|
||||
|
@ -202,40 +241,54 @@ sc_scroll(girara_session_t* session, girara_argument_t* argument, unsigned int t
|
|||
bool
|
||||
sc_search(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_navigate_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
sc_toggle_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL || Zathura.document == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
girara_tree_node_t* document_index = NULL;
|
||||
GtkWidget* treeview = NULL;
|
||||
GtkTreeModel* model = NULL;
|
||||
GtkCellRenderer* renderer = NULL;
|
||||
|
||||
if (Zathura.UI.index == NULL) {
|
||||
if (zathura->UI.index == NULL) {
|
||||
/* create new index widget */
|
||||
Zathura.UI.index = gtk_scrolled_window_new(NULL, NULL);
|
||||
zathura->UI.index = gtk_scrolled_window_new(NULL, NULL);
|
||||
|
||||
if (Zathura.UI.index == NULL) {
|
||||
if (zathura->UI.index == NULL) {
|
||||
goto error_ret;
|
||||
}
|
||||
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Zathura.UI.index),
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(zathura->UI.index),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
|
||||
/* create index */
|
||||
document_index = zathura_document_index_generate(Zathura.document);
|
||||
document_index = zathura_document_index_generate(zathura->document);
|
||||
if (document_index == NULL) {
|
||||
// TODO: Error message
|
||||
goto error_free;
|
||||
|
@ -269,31 +322,31 @@ sc_toggle_index(girara_session_t* session, girara_argument_t* argument, unsigned
|
|||
gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview), gtk_tree_path_new_first(), NULL, FALSE);
|
||||
/*g_signal_connect(G_OBJECT(treeview), "row-activated", G_CALLBACK(cb_index_row_activated), NULL); TODO*/
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(Zathura.UI.index), treeview);
|
||||
gtk_container_add(GTK_CONTAINER(zathura->UI.index), treeview);
|
||||
gtk_widget_show(treeview);
|
||||
}
|
||||
|
||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(Zathura.UI.index))) {
|
||||
girara_set_view(session, Zathura.UI.page_view);
|
||||
gtk_widget_hide(GTK_WIDGET(Zathura.UI.index));
|
||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(zathura->UI.index))) {
|
||||
girara_set_view(session, zathura->UI.page_view);
|
||||
gtk_widget_hide(GTK_WIDGET(zathura->UI.index));
|
||||
} else {
|
||||
girara_set_view(session, Zathura.UI.index);
|
||||
gtk_widget_show(GTK_WIDGET(Zathura.UI.index));
|
||||
girara_set_view(session, zathura->UI.index);
|
||||
gtk_widget_show(GTK_WIDGET(zathura->UI.index));
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
error_free:
|
||||
|
||||
if (Zathura.UI.index != NULL) {
|
||||
g_object_ref_sink(Zathura.UI.index);
|
||||
Zathura.UI.index = NULL;
|
||||
if (zathura->UI.index != NULL) {
|
||||
g_object_ref_sink(zathura->UI.index);
|
||||
zathura->UI.index = NULL;
|
||||
}
|
||||
|
||||
if (document_index != NULL) {
|
||||
girara_node_free(document_index);
|
||||
}
|
||||
|
||||
|
||||
error_ret:
|
||||
|
||||
return false;
|
||||
|
@ -302,9 +355,7 @@ error_ret:
|
|||
bool
|
||||
sc_toggle_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
|
||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar))) {
|
||||
gtk_widget_hide(GTK_WIDGET(session->gtk.inputbar));
|
||||
|
@ -318,9 +369,7 @@ sc_toggle_inputbar(girara_session_t* session, girara_argument_t* argument, unsig
|
|||
bool
|
||||
sc_toggle_fullscreen(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
|
||||
static bool fullscreen = false;
|
||||
|
||||
|
@ -338,9 +387,7 @@ sc_toggle_fullscreen(girara_session_t* session, girara_argument_t* argument, uns
|
|||
bool
|
||||
sc_toggle_statusbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
|
||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.statusbar))) {
|
||||
gtk_widget_hide(GTK_WIDGET(session->gtk.statusbar));
|
||||
|
@ -354,6 +401,8 @@ sc_toggle_statusbar(girara_session_t* session, girara_argument_t* argument, unsi
|
|||
bool
|
||||
sc_quit(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
|
||||
girara_argument_t arg = { GIRARA_HIDE, NULL };
|
||||
girara_isc_completion(session, &arg, 0);
|
||||
|
||||
|
@ -367,12 +416,14 @@ sc_quit(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
|||
bool
|
||||
sc_zoom(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||
{
|
||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
||||
return false;
|
||||
}
|
||||
g_return_val_if_fail(session != NULL, false);
|
||||
g_return_val_if_fail(session->global.data != NULL, false);
|
||||
zathura_t* zathura = session->global.data;
|
||||
g_return_val_if_fail(argument != NULL, false);
|
||||
g_return_val_if_fail(zathura->document != NULL, false);
|
||||
|
||||
/* retreive zoom step value */
|
||||
int* value = girara_setting_get(Zathura.UI.session, "zoom-step");
|
||||
int* value = girara_setting_get(zathura->UI.session, "zoom-step");
|
||||
if (value == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
@ -380,11 +431,11 @@ sc_zoom(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
|||
float zoom_step = *value / 100.0f;
|
||||
|
||||
if (argument->n == ZOOM_IN) {
|
||||
Zathura.document->scale += zoom_step;
|
||||
zathura->document->scale += zoom_step;
|
||||
} else if (argument->n == ZOOM_OUT) {
|
||||
Zathura.document->scale -= zoom_step;
|
||||
zathura->document->scale -= zoom_step;
|
||||
} else {
|
||||
Zathura.document->scale = 1.0;
|
||||
zathura->document->scale = 1.0;
|
||||
}
|
||||
|
||||
render_all();
|
||||
|
|
Loading…
Reference in a new issue