summaryrefslogtreecommitdiff
path: root/libview/ev-view.c
AgeCommit message (Collapse)AuthorFilesLines
3 dayslibview: Allow zooming to the limits of the scaleVictor Kareh1-6/+19
If the current zoom level was within one zoom factor of the limit, it was not possible to scroll towards the limit. This made smooth scrolling near the limit awkward, as unless the scroll event had a large delta it was impossible to reach the zoom limit. Non-smooth scrolling was also affected, but it was just much more difficult to trigger. Fix this by allowing zooming while the current zoom level is within one zoom factor of the limit. Add a new ev_view_can_zoom() function to make zooming by a factor (as with smooth scrolling) more convenient. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/6d299b69
4 daysUse properties for can-zoom-in and -outVictor Kareh1-3/+77
This simplifies the logic required to enable zoom actions for consumers of the view. Backported from https://gitlab.gnome.org/GNOME/evince/-/commit/bbfbf913
2026-02-13Improve search systemmbkma1-0/+8
shell: Add EvFindSidebar widget to show search results see https://gitlab.gnome.org/GNOME/evince/-/commit/940ce8048e4fc6503dca03c1ce090ff4a11dface eggfindbar: don't close the findbar when it loses the focus see https://gitlab.gnome.org/GNOME/evince/-/commit/a2d781fb124bd19861035fd41dacc976e00d19ef shell: Add the findbar to the main box instead of the view box libview: Add ev_view_find_set_result
2021-11-20Use a blank line at mostrbuj1-2/+0
2020-08-16Remove unused macrosPablo Barciela1-4/+0
2020-06-18Re-enable highlight_find_resultsOz N Tiram1-6/+3
2020-06-18Fix -Wunused-function warnings caused by --enable-synctex=noOz N Tiram1-0/+10
2020-06-18Make synctex optionalOz Tiram1-1/+8
Not everyone who reads PDF's is necessarily a LaTeX user. These changes allow users to install atril without the huge bagage of tex-live on systems where synctex isn't provided as a stand alone library.
2019-12-08Revert "First page should not reloaded"raveit651-5/+4
This reverts commit 00fad2c0d0fcdade570a08f046e85a4558f1fc0c. and fixes https://github.com/mate-desktop/atril/issues/404
2019-11-28avoid redundant redeclarationsPablo Barciela1-2/+0
2019-11-23libview: Reset `pressed_button` when starting Drag and DropMartin Wimpress1-0/+2
If view->pressed_button is left set, when the Drag and Drop operation completes, Atril will act as if it is still in a selection event. Adapted from: https://gitlab.gnome.org/GNOME/evince/commit/92828bb797742e04aadbfdd62ba1da36837c37cf
2019-08-21ev-view: Remove unused variables and assignmentrbuj1-3/+0
2019-08-10DPI: compute monitor resolution or get screen resolutionrbuj1-13/+16
2019-07-01Remove trailing whitespacesLaurent Napias1-80/+80
2019-06-26Bump Cairo version to 1.14.0Matthew Petroff1-6/+0
such that hi-dpi conditionals aren't needed. origin commit: https://github.com/linuxmint/xreader/commit/df3cdc6
2018-10-20EvView: Fix cursor movement when logical and visual line order differsColomban Wendling1-0/+10
Make sure not to move the caret in the wrong direction when restoring the visual line X offset, in case the visual and logical order is slightly different. The algorithm used to move the cursor on the next line and restore the X position across lines works as follows: 1. Move `cursor_offset` to the next line by incrementing it until reaching a line break; 2. Find the Y coordinate corresponding to the new cursor_offset; 3. Find the text closest to the new Y coordinate and the previous X coordinate. 4. Move cursor_offset to the text at this new (X, Y) location. The issue lies in step 3, which can find a position on a different line than expected in case several lines have a nearly the same Y position. Evince references: * https://gitlab.gnome.org/GNOME/evince/issues/889 * https://gitlab.gnome.org/GNOME/evince/merge_requests/81 * https://gitlab.gnome.org/GNOME/evince/commit/dddd98b4c7922e2906bba6a31afa07837ae6c39c
2018-05-10libview: replace deprecated gdk_flushraveit651-2/+4
2018-04-05view: Fix page background rendering while loadingCarlos Garcia Campos1-0/+4
origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=38528f9
2018-04-05view: Use a rendered frame instead of custom borderWilliam Jon McCann1-27/+37
So it can be styled with CSS. https://bugzilla.gnome.org/show_bug.cgi?id=653294 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=7a6b53a https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=4657961
2018-04-04libview: drop deprecated unneeded coderaveit651-3/+0
inspired by: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=a56186e
2018-03-26EvView: render correctly on hi-dpi displaysOwen W. Taylor1-5/+18
Make EvPixbufCache generate surfaces with extra resolution based on gtk_widget_get_scale_factor(). Handle cairo surfaces with a device scale in ev_view_draw(). Trigger an update of the pixbuf cache when the scale factor changes. https://bugzilla.gnome.org/show_bug.cgi?id=723431 origin commit: https://git.gnome.org/browse/evince/commit/?id=a612f8
2018-03-22libview: Check number of pages when processing button eventsMarek Kasik1-1/+1
Check whether there are some pages in the opened document when processing button events to avoid crash. https://bugzilla.gnome.org/show_bug.cgi?id=769700 origin commit: https://git.gnome.org/browse/evince/commit/?id=f30aed7
2018-03-22libview: Check number of pages on ev_view_document_changed_cbGermán Poo-Caamaño1-2/+5
Fix crash on corrupted PDF with no pages. Thanks to Juha Kylmänen from OUSPG who were testing robutness. (CVE-2013-3718). libview: Fix warning on ev_view_document_changed_cb There was an introduction of a warning when fixing the bug https://bugzilla.gnome.org/show_bug.cgi?id=701302 If ev_view_document_changed_cb () is emitted when there is no previous document, the check fails. This patch change the order of the condition checks. origin commits: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=62b1585 https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=5431595
2018-03-22Use GtkOverlay to show the loading messageCarlos Garcia Campos1-99/+31
Remove the EvLoadingWindow from libview and move the implementation to the shell using a EvLoadingMessage widget and GtkOverlay. EvView has now a is-loading property that allows the users to implement their own loading notification system. This fixes several realted to the loading window. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=035c1cb
2018-03-19Save/restore context when getting colors for a different stateraveit651-0/+7
Getting colors for a state different from the current state of the corresponding widget without saving the context might trigger an invalidation and a redraw. Because this was happening from the draw function this resulted in a redraw loop and constant high CPU usage. This could be triggered by selecting text or searching. https://bugzilla.gnome.org/show_bug.cgi?id=755442 inspired by: https://git.gnome.org/browse/evince/commit/?id=1987f04 https://github.com/linuxmint/xreader/commit/e76a18d
2018-03-15Add zoom resetLars Mueller1-0/+7
origin commit: https://github.com/linuxmint/xreader/commit/43acb8f
2018-01-31require GTK+ 3.22 and GLib 2.50monsta1-22/+0
2018-01-02Revert "libview: Update the current page also when pending scroll is to find ↵raveit651-2/+1
a location" Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1525313 This reverts commit e64064d40b451011dba2f891be454f65439df18d.
2017-12-10WidthOfScreen and HeightOfScreen implementationPablo Barciela1-7/+4
This commit reverts: https://github.com/mate-desktop/atril/commit/d9fffe2dc0e33d6777099c18635b7b75f54d3d35 And it applies an alternative to fix the deprecated functions: gdk_screen_get_width gdk_screen_get_height
2017-11-27Expose form fields as AtkObject children of the pageJoanmarie Diggs1-4/+4
https://bugzilla.gnome.org/show_bug.cgi?id=728475 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=d707486
2017-11-27libview: Update the caret cursor when jumping to a find resultJoanmarie Diggs1-0/+3
https://bugzilla.gnome.org/show_bug.cgi?id=728996 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=fc031f7
2017-11-27libview: Update ATK_STATE_SHOWING when the visible page range changesJoanmarie Diggs1-0/+4
https://bugzilla.gnome.org/show_bug.cgi?id=728664 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=110a98a https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=c4e98b3
2017-11-27libview: Fix shift+click text selectionJoanmarie Diggs1-7/+16
https://bugzilla.gnome.org/show_bug.cgi?id=728189 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=7cf4c80
2017-11-27libview: Fix some broken aspects EvViewAccessible text supportJoanmarie Diggs1-0/+14
* Stop using GtkTextBuffer: It was a hack more than a real solution * Fix setting and clearing of selection via AtkText for the current page * Strip newline chars out of the sentence strings: Newlines break TTS prosody * Add some logic to heuristically distinguish soft and hard returns https://bugzilla.gnome.org/show_bug.cgi?id=725003 https://git.gnome.org/browse/evince/commit/?h=gnome-3-12&id=03afe27
2017-11-27view: set_caret_cursor_position should emit "cursor-moved" if appliesAlejandro Piñeiro1-0/+3
https://bugzilla.gnome.org/show_bug.cgi?id=701746 from: https://git.gnome.org/browse/evince/commit/?h=gnome-3-12&id=9809525
2017-11-27ev-view-accessible: Clear the cached data when the current pageAntia Puentes1-0/+4
or document is updated. https://bugzilla.gnome.org/show_bug.cgi?id=704621 https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=d71e0d7
2017-09-06libview: Add ev_view_set_caret_cursor_positionCarlos Garcia Campos1-0/+18
origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=b2597d
2017-09-06libview: Update the current page also when pending scroll is to find a locationCarlos Garcia Campos1-1/+2
Pending scroll SCROLL_TO_FIND_LOCATION, can jump to another page if the location is in a different page. We should change the current page in the model in this case too. Origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=8709b39
2017-09-06libview: Do not schedule a redraw when enabling/disabling caret navigationCarlos Garcia Campos1-1/+3
If the cursor is not in a visible page origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=c187766
2017-09-06libview: Stop caret cursor blinking when cursor is not in a visible pageCarlos Garcia Campos1-0/+14
origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=570927e
2017-09-06libview: Add ev_view_supports_caret_navigation()Antia Puentes1-0/+15
https://bugzilla.gnome.org/show_bug.cgi?id=702079 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=6127a36
2017-09-06libview: Fix selections starting/ending in page marginsCarlos Garcia Campos1-0/+8
Do not take into account the page area borders when looking the pages where the selection starts or ends. This allows to start a new selection from a page margin and prevents selection from disappearing when selecting multiple pages and releasing the mouse between two pages. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=4969e2b
2017-09-06libview: Reduce the pages to scan for selectionsCarlos Garcia Campos1-26/+58
when selection starts and ends at the same point We can use the current page range in this case, since this will only happen when starting a new word/line selection. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=e92c98f
2017-09-06libview: Remove unused rectangle selection modeCarlos Garcia Campos1-59/+5
origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=848459e
2017-09-06libview: Rework ev_view_accessible_get_selectionAntia Puentes1-7/+22
Actually return the text and offset range of the selected text in the current page. https://bugzilla.gnome.org/show_bug.cgi?id=704335 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=a178d26
2017-09-06libview: do not redraw the whole view when caret cursor movesCarlos Garcia Campos1-16/+33
Invalidate the previous and new regions instead. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=e39ac99
2017-09-06libview: Update the cursor area after positioning the cursor when moving ↵Carlos Garcia Campos1-0/+3
between lines origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=074dfec
2017-09-06libview: Use error bell and return early when moving between lines failsCarlos Garcia Campos1-6/+11
origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=3666096
2017-09-06libview: do not schedule a resize in ensure_rectangle_is_visibleCarlos Garcia Campos1-2/+0
It will be scheduled if the adjustments change. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=0597aa7
2017-09-06libview: Stop the cursor blink when there are selections activeCarlos Garcia Campos1-1/+5
Even though the caret cursor is not shown while there are active selections we don't want the cursor blink timeout running and scheduling redraws. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-10&id=41c660f