All of those callbacks are conceptually related (change the page
layout), and depend from one another.
Now the single callback page_layout_value_changed defers to
page_widget_set_mode to change whatever is needed in the GTK widgets.
This patch adds a new configuration setting, selection-clipboard, which allows
us to choose between the PRIMARY selection, and the CLIPBOARD selection, for
determining which X clipboard to use for storing mouse-selected data. It has
only two valid values: "primary" and "clipboard", with "clipboard" being set as
the it's default value.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This patch implements two new ZathuraDatabaseInterface functions, save_jumplist
and load_jumplist, for both the plain and sqlite backends (along with some
cleanups).
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
- Don't delete the elements on the right of the current one, when
appending a new jump to the jumplist, because this makes no sense at
all; the point of the jumplist in the first place is to remember
previously jumped-to positions in the document, so there is no need
to delete anythings except to trim the oldest entries from the
beginning to maintain the maximum size. This also makes us compatible
with the Vim way of doing things.
- Make the jumplist mechanism functional on the same page; if we
followed a link to a target on the same page, remember the
adjustments before and after following the link. The same holds for
navigating search results on the same page.
- Implement position_set and use it instead of position_set_delayed
when following links in order to give zathura_jumplist_save a chance
to record the exact adjustments of the link target. Otherwise, it
will always record the adjustments after going to the target page,
but before going to the exact position within it.
- Don't consider movements with ^i and ^o as jumps :)
- Don't use page_set followed by setting the adjustments in
sc_jumplist, because this is redundant and causes clutter when using
^i and ^o, as the adjustments is set twice this way (once in page_set
and again in position_set_delayed). It's enough to only update the
page number on the statusbar and then set the adjustments.
- Hide implementation details (zathura_jumplist_save and
zathura_jumplist_append), and make things more consistent by
exporting and using only zathura_jumplist_add for adding new entries.
The end result: A more slick jumping experience :-)
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This uses the jumplist to implement a bisect functionality between the
last two jump points. ^j and ^k are bound to bisect forward and backward
respectively.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
Added config parameter "link-hadjust" with default value true. When set to false,
following internal links do not change the horizontal position of the page, only
the vertical position.
Also updates page number when following links, now.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This patch implements a page cache that is invalidated in a LRU fashion.
Pages are added to the cache as soon as they become visible. When the cache is
full and a new page that isn't in the cache becomes visible, the least recently
viewed page in the cache is evicted from memory and the new one takes it's
place.
The cache size is configurable using the page-cache-size configuration
variable, with a default value of 15 pages. Very large values for the cache
size are not recommended, though, as it will stress the system memory out.
The old periodic page reclaiming code is no longer necessary with this patch,
so I removed it.
Special thanks to Ignas Anikevičius, and Sebastian Ramacher for the
inspirations.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
Now by default, 'q' quits zathura even in fullscreen mode, and
'BackSpace' does the reverse of 'space', i.e. go back one page.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
Previously it was set to -1, which was essentially disabling the
horizontal scrolling. This enables the scrolling by default by setting
it to be the same as the vertical scrolling.
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
"focus_inputbar" and "toggle_page_mode" were defined in code but not
declared as shortcut functions (and thus could not be mapped to
different keys by the user using "map").
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
Also alphabetize the shortcut functions declarations in code, to make it
easier to keep the documentation and code in sync.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
This is useful when the text of the link doesn't match its target. The
default key is set to 'F'.
See issue 266 <http://bugs.pwmt.org/issue266>.
Reported-by: Iron <o380770@rtrtr.com>
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
No matter what the value of n was, the "n=" shortcut would set the zoom
value to 100%. It is now set to n% instead.
See issue #273 <http://bugs.pwmt.org/issue273>.
Reported-by: Kamil Smardzewski <roderyk197@gmail.com>
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
if scroll-page-aware is set, scrolling by full and half pages stops at
page boundaries (as djview4 does it on <space> and <backspace>).
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
thx
From d93f241584263414a2938748369bc92152ce9f88 Mon Sep 17 00:00:00 2001
From: Jonas Hoersch <coroa@online.de>
Date: Sun, 16 Sep 2012 16:14:28 +0200
Subject: [PATCH] add shortcut mappings for jumplist to make it configurable
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
The incremental-search config parameter enables / disables the incremental
search. I've set it disabled by default, as in large files it may become
unresponsive for some time.
Signed-off-by: Sebastian Ramacher <s.ramacher@gmx.at>
zathura records jumps through searches, index, links, etc. and enables to go
back and forth via ^o ^i.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
If option recolor-keephue is true, the recoloring algorithm
only adjusts the lightness of the original color, keeping the
rest of the properties close to the original.
When recolor-keephue is set to false, the recoloring is performed
as it was before, interpolating linearly between recolor-lightcolor
and recolor-darkcolor except for a different weighting for the
lightness which is closer to perception.
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
1) zoom-center :: bool
zoom-center = false
If zoom-center = false nothing changes.
If zoom-center = true zooming respects the horizontal center of the
pageview. That is, the vertical line dividing the displayed part of
the document doesn't move within the document.
Reasoning: When viewing a pdf with a margin we usually want to hide the
margin at both sides by zooming in.
2) scroll-hstep :: float
scroll-hstep = -1
If scroll-hstep < 0 nothing changes.
If scroll-hstep >= 0 then scroll-hstep defines the scroll step in the
horizontal direction.
Reasoning: This allows us to make finer adjustments in the horizontal
direction without the mouse and without loosing the ablility to
navigate quickly through the document.
3) search-hadjust :: bool
search-hadjust = true
If search-hadjust = true nothing changes.
If search-hadjust = false searching does not adjust the horizontal
center of the document when showing search results.
Reasoning: When viewing a pdf with a margin we usually want to hide
the margin at both sides by zooming in. The horizontal adjustment
sometimes hides parts of the document by moving the horizontal
center.