1. 26 Mar, 2013 1 commit
    • Marwan Tanager's avatar
      Replace the periodic page reclaiming code with a LRU caching algorithm. · cb18fe86
      Marwan Tanager authored and Sebastian Ramacher's avatar Sebastian Ramacher committed
      
      
      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's avatarSebastian Ramacher <sebastian+dev@ramacher.at>
      cb18fe86
  2. 25 Mar, 2013 1 commit
  3. 24 Mar, 2013 1 commit
  4. 23 Mar, 2013 4 commits
    • Sebastian Ramacher's avatar
      CS · 9c150380
      Sebastian Ramacher authored
      
      
      Signed-off-by: Sebastian Ramacher's avatarSebastian Ramacher <sebastian+dev@ramacher.at>
      9c150380
    • Benoît Knecht's avatar
      Don't scroll the document when focusing the inputbar · 1702fb62
      Benoît Knecht authored and Sebastian Ramacher's avatar Sebastian Ramacher committed
      
      
      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: default avatarMarwan Tanager <marwan.tngr@gmail.com>
      
      Signed-off-by: Sebastian Ramacher's avatarSebastian Ramacher <sebastian+dev@ramacher.at>
      1702fb62
    • Benoît Knecht's avatar
      Use signals to readjust_view_after_zooming() · c9eef954
      Benoît Knecht authored and Sebastian Ramacher's avatar Sebastian Ramacher committed
      
      
      Instead of guesstimating the values of the scrollbars adjustments after
      a change in zoom level, connect callbacks to the "changed" GtkAdjustment
      event (which is emitted when the bounds or page_size of the adjustment
      change, e.g. when the zoom level changes), and compute the new values
      from there.
      
      The previous adjustment values are tracked in zathura->ui.hadjustment
      and zathura->ui.vadjustment (and updated by signal handlers as well), so
      that the view's position can be maintained while zooming.
      
      cb_view_hadjustment_changed() centers the page horizontally if a
      "best-fit" or "width" zoom is being performed, or if "zoom-center" is
      true; otherwise, it keeps the view horizontally centered around the same
      area of the page.
      
      cb_view_vadjustment_changed() always keeps the view vertically centered
      around the same area of the page.
      
      Many thanks to Marwan Tanager for thoroughly reviewing the various
      stages of this patch, and actually coming up with a working solution.
      
      Signed-off-by: Sebastian Ramacher's avatarSebastian Ramacher <sebastian+dev@ramacher.at>
      c9eef954
    • Benoît Knecht's avatar
      Revert commit ce6e7351 · f5b02a97
      Benoît Knecht authored and Sebastian Ramacher's avatar Sebastian Ramacher committed
      
      
      This wasn't correct. Padding is already accounted for:
      
        scale = (width - (pages_per_row - 1) * padding) /
                (pages_per_row * cell_width)
      
      If you add padding on the denominator, you end up with black margins on
      the sides of the window, which isn't what padding is for (i.e. insert a
      gap between rendered pages), and defeats the purpose of a "best-fit".
      
      Signed-off-by: Sebastian Ramacher's avatarSebastian Ramacher <sebastian+dev@ramacher.at>
      f5b02a97
  5. 17 Mar, 2013 7 commits
  6. 14 Mar, 2013 3 commits
  7. 11 Mar, 2013 1 commit
  8. 09 Mar, 2013 2 commits
  9. 03 Mar, 2013 2 commits
  10. 28 Feb, 2013 2 commits
  11. 24 Feb, 2013 2 commits
  12. 23 Feb, 2013 6 commits
  13. 22 Feb, 2013 1 commit
  14. 19 Feb, 2013 2 commits
  15. 13 Feb, 2013 4 commits
  16. 09 Feb, 2013 1 commit