summaryrefslogtreecommitdiff
path: root/libview
AgeCommit message (Collapse)AuthorFilesLines
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-07-18presentation: avoid deprecated 'gtk_style_context_set_background'Pablo Barciela1-3/+0
2018-05-10libview: replace deprecated gdk_flushraveit652-4/+8
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-05a11y: Return correct start and end offsetsJason Crain1-6/+9
This modifies ev_page_accessible_get_range_for_boundary to ensure that the start and end offsets it returns are within the allowed range. https://bugzilla.gnome.org/show_bug.cgi?id=777992 origin commit: https://git.gnome.org/browse/evince/commit/?id=e95a4e3
2018-04-05a11y: Fix crash with Orca screen readerJason Crain1-1/+1
ev_page_accessible_get_substring gets called with out of bounds values leading to a crash. Clamp start_offset to a valid range. https://bugzilla.gnome.org/show_bug.cgi?id=777992 origin commit: https://git.gnome.org/browse/evince/commit/?id=b34f357
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-04-02libview: fix text selection with mouse in annotation windowmonsta1-23/+32
taken from: https://github.com/GNOME/evince/commit/91ac78bc587eb2ac931136c9da9609b142410209
2018-03-27libview: fix build without epubraveit651-2/+2
Fixes https://github.com/mate-desktop/atril/issues/308
2018-03-26Allow changing the page of a presentationWilliam Jon McCann1-3/+24
https://bugzilla.gnome.org/show_bug.cgi?id=693749 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-8&id=53d6a3
2018-03-26libview: Fix goto window in presentation modeCarlos Garcia Campos1-1/+2
It wasn't correctly set as modal. origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-2&id=987aab6
2018-03-26libview: avoid deprecated gdk_screen_get_monitorraveit651-4/+4
....in ev-view-presentation This was introduced again in previous commit.
2018-03-26EvPresentationView: Render correctly on hi-dpi displaysOwen W. Taylor1-13/+48
Create rendering jobs with a scale that incorporate the scale factor of the widget, and then use cairo_surface_set_device_scale() to make the resulting surfaces render at the correct size. Handle changes to the scale factor both for the cached surfaces, and also for the monitor dimensions, which are reported in scaled coordinates. https://bugzilla.gnome.org/show_bug.cgi?id=723431 origin commit: https://git.gnome.org/browse/evince/commit/?id=37c13b
2018-03-26libview: Fix g_return condition in set_device_scale_on_surface()Carlos Garcia Campos1-1/+1
Fail when device scale is not 1 if hidpi is not available, we were doing the opposite. origin commit: https://git.gnome.org/browse/evince/commit/?id=90a258
2018-03-26EvView: render correctly on hi-dpi displaysOwen W. Taylor2-7/+20
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: use css to draw the background of presentationsraveit651-25/+16
With the recent changes in gtk+, widgets have to draw themselves, causing the current use of gdk_window_set_background_rgba to fail. https://bugzilla.gnome.org/show_bug.cgi?id=765557 view: Redraw ev-view-presentation when setting normal and black mode. The black and normal mode are the same from the CSS point of view. The difference is that in the draw function the page is not drawn in black mode. Hence, we need to explicitly queue a redraw in these cases. Since setting the white mode add a CSS class, this queues the redraw for us. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=772390. origin commits: https://git.gnome.org/browse/evince/commit/?id=2b352b3 https://git.gnome.org/browse/evince/commit/?id=b3f49f4 Fixes https://github.com/mate-desktop/atril/issues/232
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: Add check for pageless documents to ev_view_accessible_focus_changedJoanmarie Diggs1-1/+1
Without this check, Evince will crash when opening a document that, for whatever reason, has no pages. https://bugzilla.gnome.org/show_bug.cgi?id=731046 origin commit: https://git.gnome.org/browse/evince/commit/?id=c0ecc95
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 Campos5-444/+33
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-19libview: save inverted colors in a documentPiiit1-0/+3
The web-view callback for inverted colors got called, and if it did not find a web-view open it defaulted to FALSE for inverted colors. origin commit: https://github.com/linuxmint/xreader/commit/abb5060 https://github.com/linuxmint/xreader/issues/38
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-16epub: fix loading epub thumbnailsMickael Albertus1-24/+23
origin commit: https://github.com/linuxmint/xreader/commit/6ed0ee1 Note: origin commit causes some serious build warnings, ......fixed.
2018-03-16Check legal boundaries of accessible pagesGermán Poo-Caamaño1-0/+7
Fixes https://github.com/mate-desktop/atril/issues/302 Keep the accessible view end page under the limits of the document. Sometimes when a document is reloaded, it may have less pages making the end page higher than the actual number of pages. Fix end_page reset after reload a page When a document is reloaded, and the accessible end_page is higher than the number of pages, it must be re-initialized to the number of pages minus one because it refers to elements in an array. Fix https://bugzilla.gnome.org/show_bug.cgi?id=735744 origin commits: https://git.gnome.org/browse/evince/commit/?id=feff531 https://git.gnome.org/browse/evince/commit/?id=e6e0d29
2018-03-15Add zoom resetLars Mueller4-0/+20
origin commit: https://github.com/linuxmint/xreader/commit/43acb8f
2018-02-16avoid deprecated GtkStockPablo Barciela1-1/+1
2018-01-31require GTK+ 3.22 and GLib 2.50monsta3-41/+2
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 Barciela2-14/+8
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-27ev-link-accessible: Improve efficiency of methods to get start and end indicesJoanmarie Diggs1-5/+22
* Store the value to eliminate unnecessary iteration through character rects * Calculate the end index forward from the start index rather than backwards from the last character on the page https://bugzilla.gnome.org/show_bug.cgi?id=732340 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=1a6c9df
2017-11-27Expose form fields as AtkObject children of the pageJoanmarie Diggs6-9/+314
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-27Expose images as AtkObject children of the pageJoanmarie Diggs4-2/+272
https://bugzilla.gnome.org/show_bug.cgi?id=728475 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=aea890c
2017-11-27Expose links as AtkObject children of the pageraveit652-1/+224
https://bugzilla.gnome.org/show_bug.cgi?id=728475 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=004b199
2017-11-27ev-view-accessible: Add a method to determine if a given doc rect is showingJoanmarie Diggs2-0/+29
The Accessibility code needs to know this to set and update ATK_STATE_SHOWING. https://bugzilla.gnome.org/show_bug.cgi?id=728475 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=5c2ce4e
2017-11-27ev-page-cache: Add method to check if a given page has been cachedJoanmarie Diggs2-0/+16
The Accessibility code will expose child objects (links, images, form fields) of the page, but can only do so after that page has been cached. https://bugzilla.gnome.org/show_bug.cgi?id=728475 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=a898d96
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 Diggs3-0/+37
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: Implement AtkComponent for pagesJoanmarie Diggs3-0/+79
https://bugzilla.gnome.org/show_bug.cgi?id=728673 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=7d1bf5a
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-27a11y: ensure text cached when you request an EvPageAccessibleAlejandro Piñeiro3-0/+22
https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=b5fc924
2017-11-27a11y: managing atk states on EvPageAccessibleAlejandro Piñeiro3-0/+97
This includes: * Implements ref_state_set on EvPageAccessible * Notify FOCUSED state changes https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=c421a90
2017-11-27a11y: add if applies ATK_RELATION_FLOWS_TO/FROM on EvPageAccessibleAlejandro Piñeiro3-1/+58
https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=f6ae6b7
2017-11-27a11y: move AtkHyperText implementation from EvViewAccessible to EvPageAccessibleAlejandro Piñeiro4-163/+135
https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=750f20d
2017-11-27a11y: move AtkText implementation from EvViewAccessible to EvPageAccessibleAlejandro Piñeiro3-738/+695
https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=2a458a9
2017-11-27a11y: expose EvPageAccessible as children of EvViewAccessibleAlejandro Piñeiro1-7/+70
https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=c1cdf84
2017-11-27a11y: new EvPageAccessibleAlejandro Piñeiro3-0/+222
Basic skeleton for a new accessible class, that represents each individual page. https://bugzilla.gnome.org/show_bug.cgi?id=724965 origin commit: https://git.gnome.org/browse/evince/commit/?h=gnome-3-14&id=c489d3f
2017-11-27libview: Fix some broken aspects EvViewAccessible text supportJoanmarie Diggs3-173/+230
* 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-27libview: Take caret navigation into account when getting AtkHyperlink indicesJoanmarie Diggs1-2/+8
https://bugzilla.gnome.org/show_bug.cgi?id=726310 https://git.gnome.org/browse/evince/commit/?h=gnome-3-12&id=5e4d9f8
2017-11-27a11y: cleaning implementation for atk_text_get_caret_offsetAlejandro Piñeiro1-15/+2
If caret access is not enabled (or in any other error) caret_offset should be -1, and not one based on the gtktextbuffer. Based on a previous patch by Joanmarie Diggs https://bugzilla.gnome.org/show_bug.cgi?id=701746 https://git.gnome.org/browse/evince/commit/?h=gnome-3-12&id=3b63aa8