Bug 18070

Summary: Full Page Zoom: Javascript drag-enabled objects off-set from cursor
Product: WebKit Reporter: Marc Nothrop <marc>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac (Intel)   
OS: OS X 10.5   
URL: http://www.panic.com
Attachments:
Description Flags
Screenshot of proxy drag icon @ 100%
none
Screenshot of proxy drag icon zoomed in
none
Screenshot of 'download arrow' responding to offset icon
none
Patch to fix mouse events oliver: review+

Description Marc Nothrop 2008-03-25 10:16:08 PDT
Using Full Page Zoom in r31275:

At www.panic.com you can drag any of the application icons (centre page) to the green arrow (top right), to download the relevant app.

During the drag a semi-opaque icon appears beneath the cursor (simulating a Finder file drag.) When initiating the drag (mouse-down) the proxy icon is centred on the cursor location (irrespective of where on the icon the user actually clicked), and tracks consistently with the cursor until dropped (mouse-up.)

To complete the download, the icon must be dragged over the 'download arrow' which turns blue to indicate the icon can be dropped/released.

When zoomed in the icon appears offset down and to the right of the cursor (i.e. the presumed cursor centre is miscalculated), and when zoomed out the drag proxy icon is offset up and to the left.

Additionally the 'download arrow' will not focus (change blue and initiate the download) when the cursor is over it, but rather only when the proxy icon is above the arrow.

See also: http://demo.script.aculo.us/ajax/sortable_elements and http://demo.script.aculo.us/shop (drag product proxy icons, like Panic.com application icons.) In both cases the on-mousedown dragged elements exhibit a variable off-set from the cursor, at all zoom levels in r31275.

The further from the origin you drag the floating objects, the further the proxy objects are off-set from the cursor.

Dragging below the origin will cause the proxy object to progressively move further down away from the cursor. Dragging above the origin will cause the reverse with the proxy object moving further up and away from the cursor.

A continuous drag down below, and then up above the origin point of the 'drag-enabled' element will show the variability of the proxy object off-set from the cursor.
Comment 1 Marc Nothrop 2008-03-25 10:17:31 PDT
Created attachment 20032 [details]
Screenshot of proxy drag icon @ 100%

Screenshot shows how when dragging (mouse-down) an application icon, a
semi-opaque proxy icon is centred beneath the moving cursor.
Comment 2 Marc Nothrop 2008-03-25 10:18:21 PDT
Created attachment 20033 [details]
Screenshot of proxy drag icon zoomed in

Screenshot shows proxy icon offset from the cursor when zoomed in via Full Page
Zoom.
Comment 3 Marc Nothrop 2008-03-25 10:19:14 PDT
Created attachment 20034 [details]
Screenshot of 'download arrow' responding to offset icon

The 'download arrow' only highlights for the proxy icon (i.e. assumes the icon
is centred on the cursor.)
Comment 4 Dave Hyatt 2008-03-25 10:20:28 PDT
Mouse events haven't been adjusted for zooming yet.  That's probably all this is.

Comment 5 Dave Hyatt 2008-07-30 12:53:17 PDT
Created attachment 22560 [details]
Patch to fix mouse events
Comment 6 Dave Hyatt 2008-07-30 13:02:43 PDT
Fixed in r35457.