Yessss. It does not work on the canvas pane, I suspect because of the
pickOnBounds, but it does work on the stackpane. Plus, I can register to the
stack pane without claiming the onMouseClick/Press hook.
Many thanks!
Tom
On 2014-6-9 8:29, Martin Sladecek wrote:
Hi Tom,
have you tried .addEventFilter() method? It receives the Event before the
controls underneath the canvas, in the capturing phase. If you don't consume
the Event, it should pass down to the controls.
For more on the topic, see
http://docs.oracle.com/javafx/2/events/processing.htm or
http://parleys.com/play/514892290364bc17fc56c39f
-Martin
On 06/09/2014 08:19 AM, Tom Eugelink wrote:
Hi all,
Maybe someone has solved this already, so I thought I pop the question.
Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on
any place in a scene when a certain (usually the middle or right) mouse button
is pressed.
Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu
initially places an empty "canvas" Pane on the stack pane, and will use that to
render and position the menu when it needs to appear.
Also I need to monitor the mouse to detect if the menu should appear. In order
to do that, I would like to use that canvas pane, but then any non relevant
button clicks will not reach the underlying controls. In order to enable
correct behavior I need to setPickOnBounds(false) on the pane, but then it does
receive the mouse events anymore.
Is there any way to monitor mouse events but still pass them through to the
underlying controls? In Swing I did something similar and used a system level
mouse event hook.
Tom
PS: I'm not certain if the stackpane approach I've used is the best way to do
this. It does work expect the mouse button problem. But any suggestions are
welcome.