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

Bug 76868

Summary: Cannot move a small sized object using keyboard
Product: [Tools] GEF Reporter: Peter Severin <support>
Component: GEF-Legacy GEF (MVC)Assignee: gef-inbox <gef-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: yves.yang
Version: unspecifiedKeywords: helpwanted
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: Bugzilla 3.4 Migration

Description Peter Severin CLA 2004-10-22 23:10:32 EDT
When I try to move an object in logic example with the > and . keys I only get
the resize modes (one per each side and corner of the object) but dont get the
"move" mode. This happens when the object's height/width is under certain
minimum threshold.

To reproduce:

1. Create an empty logic diagram
2. Add a flow container object
3. Set the height of the object to 10 pixels
4. Use the period key to iterate handles. There is no move handle.

At this point, the object cannot be moved using keyboard.

The suggested workaround by Randy Hudson:

The accessible location for the move handle is too close to
the NW resize handle figure.  The Z-order of the handles means that the
resize handle is on top of the move handle.

One workaround would be to change the way getAccessibleLocation is
implemented to search for open space among the other handles.  The best
solution might be to enhance the accessibility to support to actually return
not just a location, but the actualy Handle for that location.  Then, the
mouseMove would be ignored, and since the handle is already known.
calculateCursor would have to be hacked too.
Comment 1 Randy Hudson CLA 2005-03-22 11:34:21 EST
No time to address for 3.1.
Comment 2 Yves YANG CLA 2007-04-27 15:35:10 EDT
I have noticed the same issue. The solution I found is to change the MoveHandle location in the method getAccessibleLocation(). Here is my code below. It resolved most of the cases except both width and height are too small.  Could you integrate it in the project?

public Point getAccessibleLocation() {
	Rectangle box = getBounds();
	Point p;
	if (box.height > box.width) {
		p = box.
			getTopRight().
			translate(-1, box.height / 4);
		translateToAbsolute(p);
	}
	else {
		p = box.
	        getTopLeft().
		translate(box.width / 4, 1);		
	}
	translateToAbsolute(p);
	return p;
} 
Comment 3 Anthony Hunter CLA 2009-08-24 12:00:20 EDT
LATER and REMIND resolutions will be going away with the upgrade of Bugzilla to the latest Bugzilla 3.4.  They are no longer part of the default Bugzilla installation. See http://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00778.html for the announcement.

As a result 
RESOLVED + REMIND OR LATER 
will be changed to
RESOLVED + WONTFIX

This unfortunately also means I need to REOPEN and then RESOLVE as WONTFIX

Sorry for the inconvenience.
Comment 4 Anthony Hunter CLA 2009-08-24 12:13:30 EDT
LATER and REMIND resolutions will be going away with the upgrade of Bugzilla to the latest Bugzilla 3.4.  They are no longer part of the default Bugzilla installation. See http://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00778.html for the announcement.

As a result 
RESOLVED + REMIND OR LATER 
will be changed to
RESOLVED + WONTFIX

This unfortunately also means I need to REOPEN and then RESOLVE as WONTFIX

Sorry for the inconvenience.