Add a new adjust mode that is set when focusing the inputbar and disables adjusting the vertical scrollbar. As a result, focusing the inputbar doesn't scroll the document, leading to better results when changing pages from the inputbar (e.g. using bookmarks).
Reported-by: Marwan Tanager <marwan.t...@gmail.com> --- callbacks.c | 7 +++++++ document.c | 6 +----- shortcuts.c | 2 ++ types.h | 3 ++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/callbacks.c b/callbacks.c index 9bd4806..4ec2382 100644 --- a/callbacks.c +++ b/callbacks.c @@ -148,6 +148,13 @@ cb_view_vadjustment_changed(GtkAdjustment* adjustment, gpointer data) zathura_t* zathura = data; g_return_if_fail(zathura != NULL); + zathura_adjust_mode_t adjust_mode = + zathura_document_get_adjust_mode(zathura->document); + + /* Don't scroll we're focusing the inputbar. */ + if (adjust_mode == ZATHURA_ADJUST_INPUTBAR) + return; + double ratio = zathura_adjustment_get_ratio(zathura->ui.vadjustment); zathura_adjustment_set_value_from_ratio(adjustment, ratio); } diff --git a/document.c b/document.c index 6b8d52b..370db98 100644 --- a/document.c +++ b/document.c @@ -362,11 +362,7 @@ zathura_document_set_adjust_mode(zathura_document_t* document, zathura_adjust_mo return; } - if (mode == ZATHURA_ADJUST_BESTFIT || mode == ZATHURA_ADJUST_WIDTH) { - document->adjust_mode = mode; - } else { - document->adjust_mode = ZATHURA_ADJUST_NONE; - } + document->adjust_mode = mode; } unsigned int diff --git a/shortcuts.c b/shortcuts.c index 4a15d44..4b0f0e7 100644 --- a/shortcuts.c +++ b/shortcuts.c @@ -232,6 +232,8 @@ sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, girara zathura_t* zathura = session->global.data; g_return_val_if_fail(argument != NULL, false); + zathura_document_set_adjust_mode(zathura->document, ZATHURA_ADJUST_INPUTBAR); + if (gtk_widget_get_visible(GTK_WIDGET(session->gtk.inputbar)) == false) { gtk_widget_show(GTK_WIDGET(session->gtk.inputbar)); } diff --git a/types.h b/types.h index 8aade9a..50bacb6 100644 --- a/types.h +++ b/types.h @@ -85,7 +85,8 @@ typedef enum zathura_adjust_mode_e { ZATHURA_ADJUST_NONE, /**< No adjustment */ ZATHURA_ADJUST_BESTFIT, /**< Adjust to best-fit */ - ZATHURA_ADJUST_WIDTH /**< Adjust to width */ + ZATHURA_ADJUST_WIDTH, /**< Adjust to width */ + ZATHURA_ADJUST_INPUTBAR /**< Focusing the inputbar */ } zathura_adjust_mode_t; /** -- 1.7.10.4 _______________________________________________ zathura mailing list zathura@lists.pwmt.org http://lists.pwmt.org/mailman/listinfo/zathura