mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-28 06:46:00 +01:00
Document viewer
3634636227
The adjustment callbacks act as an interface between position data in the document object, and the adjustments. We remove the horizontal centering code, as now it is done by position_set. Those callbacks should not change the position read from the document object in any way. Also, we split the adjustment_value_changed callback into a vertical and an horizontal version. Previously a single callback was reused for both, horizontal and vertical. That lead to a subtle problem when coming out of index mode. What happened was the following: 1. horizontal adjustment bounds change coming out of index mode. This triggers an hadjustment changed signal. 2. the hadjustment_changed callback handles it, and resets the hadjustment value, as the bound may have changed. This triggers a value_changed event. 3. the value_changed callback handles the event, and captures the position for *BOTH*, horizontal and vertical adjustments, saving them to the document object. 1..3 is repeated for the vertical adjustment. Now, if in 3. the horizontal adjustment bounds were not yet updated after the index mode, we got ourselves at the wrong vertical position. This race condition is avoided now because both value_changed callbacks *ONLY* handle their own direction, either vertical or horizontal, not both. |
||
---|---|---|
po | ||
tests | ||
.gitignore | ||
adjustment.c | ||
adjustment.h | ||
AUTHORS | ||
bookmarks.c | ||
bookmarks.h | ||
callbacks.c | ||
callbacks.h | ||
commands.c | ||
commands.h | ||
common.mk | ||
completion.c | ||
completion.h | ||
config.c | ||
config.h | ||
config.mk | ||
database-plain.c | ||
database-plain.h | ||
database-sqlite.c | ||
database-sqlite.h | ||
database.c | ||
database.h | ||
document.c | ||
document.h | ||
Doxyfile | ||
glib-compat.h | ||
internal.h | ||
LICENSE | ||
links.c | ||
links.h | ||
macros.h | ||
main.c | ||
Makefile | ||
marks.c | ||
marks.h | ||
page-widget.c | ||
page-widget.h | ||
page.c | ||
page.h | ||
plugin-api.h | ||
plugin.c | ||
plugin.h | ||
print.c | ||
print.h | ||
README | ||
render.c | ||
render.h | ||
shortcuts.c | ||
shortcuts.h | ||
synctex.c | ||
synctex.h | ||
types.c | ||
types.h | ||
utils.c | ||
utils.h | ||
version.h.in | ||
zathura.1.rst | ||
zathura.c | ||
zathura.desktop | ||
zathura.h | ||
zathura.pc.in | ||
zathurarc.5.rst |
zathura - a document viewer =========================== zathura is a highly customizable and functional document viewer based on the girara user interface library and several document libraries. Requirements ------------ gtk2 (>= 2.28) glib (>= 2.28) girara sqlite3 (optional, >= 3.5.9) check (for tests) intltool python-docutils (optional, for man pages) libmagic from file(1) (optional, for mime-type detection) Please note that you need to have a working pkg-config installation and that the Makefile is only compatible with GNU make. If you don't have a working pkg-config installation please set the GTK_INC, GTK_LIB, GIRARA_INC, GIRARA_LIB, SQLITE_INC and SQLITE_LIB variables accordingly. And also note that rst2man from python-docutils is needed to build the man pages. If it is not installed, the man pages won't be built. If you don't want to build with support for sqlite databases, you can set WITH_SQLITE=0 and sqlite support won't be available. The use of magic to detect mime types is optional and can be disabled by setting WITH_MAGIC=0. If you pass these flags as a command line argument to make, you have to ensure to pass the same flags when executing the install target. Installation ------------ To build and install zathura: make install Uninstall: ---------- To delete zathura from your system, just type: make uninstall