Fix crash due to dangling pointer in MouseAnnotation
Summary:
BUG: 388228
Diff applies to Applications/17.12, and should be easy to merge to master. It's kept quite minimal as suggested by Albert.
Albert also suggested to add a dedicated unit test and I'd agree, but am not yet sure how to do it. The original bug involves several classes, including UI: Document, Page, AddAnnotationCommand, PageView, PageViewAnnotator, MouseAnnotation - to name a few. So a test for the exact bug scenario would become a bigger integration test rather than an isolated unit test. The other approach would be to do a real unit test on MouseAnnotation. But again, MouseAnnotation has nasty dependencies (e.g., needs a parent PageView) which I'd have to mock. Any ideas? I'd be interested in a discussion on this topic.
Test Plan:
- Load a document (e.g. linked PDF from bug report) and enable highlight toolbar (F6).
- Create highlight annotation.
- Move the view port so that the annotation position is right beside the highlight tool icon.
- Move the mouse over the annotation, and then horizontally left until you reach the tool icon; it's important to stay over the highlight annotation as long as in viewport.
- Press ctrl-z for undo.
- Click on highlight tool, move right into the document, create new highlight annotation.
- Okular doesn't crash.
Reviewers: Okular
Subscribers: aacid, ngraham
Tags: Okular
Differential Revision: https://phabricator.kde.org/D9852