Community
Participate
Working Groups
If I do a slow drag and release on my GEF canvas, the tool receives only one call to handleButtonUp(), generated from the Eclipse mouse-up event. If however I drag and release quickly, the tool receives 2 calls to handleButtonUp(), the first being generated during a mouse move, and the second by the mouse up. Attached are two stacktraces showing how each gets generated. The first event is generated from what looks like a hacky section of code in AbstractTool.mouseMove(...), to wit: if (!isInputSynched(me)) { boolean b1 = getCurrentInput().isMouseButtonDown(1); boolean b2 = getCurrentInput().isMouseButtonDown(2); boolean b3 = getCurrentInput().isMouseButtonDown(3); boolean b4 = getCurrentInput().isMouseButtonDown(4); boolean b5 = getCurrentInput().isMouseButtonDown(5); getCurrentInput().verifyMouseButtons = true; getCurrentInput().setInput(me); if (b1) handleButtonUp(1); if (b2) handleButtonUp(2); if (b3) handleButtonUp(3); if (b4) handleButtonUp(4); if (b5) handleButtonUp(5); ...
Created attachment 72884 [details] The first (buggy) event generated during a mouse move.
Created attachment 72885 [details] The second (correct) event generated by an swt mouseup.
By the way, is there a good reason why we can't vote on GEF bugs?