Skip to content
  • Marwan Tanager's avatar
    Enhancements/Cleanups for the jumplist mechansim · afd008f4
    Marwan Tanager authored and Sebastian Ramacher's avatar Sebastian Ramacher committed
    
    
    	- 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: default avatarSebastian Ramacher <sebastian+dev@ramacher.at>
    afd008f4