Bug 490933 - [GTK3] Wrong MouseExit event coordinates lead to premature closure of text editor hovers
Summary: [GTK3] Wrong MouseExit event coordinates lead to premature closure of text ed...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.6   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: 4.6 M7   Edit
Assignee: Markus Keller CLA
QA Contact:
URL:
Whiteboard:
Keywords: usability
Depends on: 403102
Blocks:
  Show dependency tree
 
Reported: 2016-04-01 13:42 EDT by Markus Keller CLA
Modified: 2016-04-27 06:53 EDT (History)
5 users (show)

See Also:


Attachments
Snippet (2.17 KB, text/plain)
2016-04-01 13:43 EDT, Markus Keller CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2016-04-01 13:42:08 EDT
The workaround for bug 403102 sends MouseExit events with wrong coordinates.

This leads to very annoying and hard-to-reproduce bugs in text editor hovers. org.eclipse.jface.text.AbstractHoverInformationControlManager.Closer implements sophisticated mouse event handling that ensures the hover stays up as long as the mouse is somewhere around the trigger area or inside the hover. The wrong coordinates jeopardize these efforts.

A prominent example is the EGit "Show Annotations" hover, which disappears when you e.g. move the mouse quickly over the "Diff to <sha-1> " label, or when you move it into the "Commit <sha-1>" label and then leave it on the left.

To reproduce in SWT, run the attached snippet and then move the mouse swiftly from the left into the green field and then leave through the bottom border of the green field.

The trap with the window-relative coordinates was laid with bug 94502. It evades me why it should make sense to use different coordinate systems depending on is_hint...

Fix is ready.
Comment 1 Markus Keller CLA 2016-04-01 13:43:42 EDT
Created attachment 260678 [details]
Snippet
Comment 3 Sravan Kumar Lakkimsetti CLA 2016-04-27 06:30:17 EDT
Verified on Ubuntu Mate 16.04 with I20160426-1615