Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 457944

Summary: [tooltip] Hovering over left hand ruler showed tooltip in weird location
Product: [ECD] Orion Reporter: Michael Rennie <Michael_Rennie>
Component: ClientAssignee: Curtis Windatt <curtis.windatt.public>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: curtis.windatt.public, emoffatt
Version: 8.0   
Target Milestone: 8.0   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Attachments:
Description Flags
screen shot none

Description Michael Rennie CLA 2015-01-20 09:53:36 EST
Created attachment 250082 [details]
screen shot

Steps:

1. Open target site with the latest from master (and no other changes in your workspace)

2. repeatedly mouse over / off of a warning annotation in the left hand ruler

3. eventually you should see the attached screen shot
Comment 1 Michael Rennie CLA 2015-01-20 09:58:57 EST
2a. clicking repeatedly on the annotation reproduces the problem easier. use the following snippet and click on the 'v is unread' annnotation:

var v = {
  "!name": "browser"
}

4. Hovering a bunch of times also causes the multiple tooltip problem - where we get the same content (title + content) in the tooltip more than once.
Comment 2 Curtis Windatt CLA 2015-01-21 16:58:06 EST
I could inconsistently reproduce this by a combination of double clicking and moving the mouse between clicks on a multi-annotation.  All of the hovers use a location based on the annotation marker in the ruler the user moused over.  However, under certain circumstances, between the mouse over event and the hover opening, the selected html element would lose all location/bounds information.

The ruler isn't causing this so it must be the browser clearing the bounds information.

http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=502a7de65c068df1ce17b7701ba4e296ed8bb923
The solution is to store the bounds of the moused over element rather than the element itself.  The element will always have the correct bounds when hovering over it (or we wouldn't have an annotation to open a hover for).  We don't use anything from the selected element other than the bounds.