diff --git a/sdk/jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java b/sdk/jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java index 48bc5fcb9..54e44ad2a 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java @@ -27,6 +27,7 @@ package com.jme3.gde.core.scene.controller; import com.jme3.app.Application; import com.jme3.app.state.AbstractAppState; import com.jme3.app.state.AppStateManager; +import com.jme3.gde.core.Installer; import com.jme3.gde.core.scene.SceneApplication; import com.jme3.gde.core.scene.controller.toolbars.CameraToolbar; import com.jme3.gde.core.sceneviewer.SceneViewerTopComponent; @@ -50,6 +51,7 @@ import com.jme3.renderer.RenderManager; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import org.openide.util.Exceptions; +import org.openide.util.NbPreferences; /** * @@ -418,13 +420,15 @@ public abstract class AbstractCameraController extends AbstractAppState implemen public void onMouseButtonEvent(MouseButtonEvent mbe) { //on a click release we request the focus for the top component //this allow netbeans to catch keyEvents and trigger actions according to keymapping - if (mbe.isReleased()) { - java.awt.EventQueue.invokeLater(new Runnable() { - - public void run() { - SceneViewerTopComponent.findInstance().requestActive(); - } - }); + if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) { + if (mbe.isReleased()) { + java.awt.EventQueue.invokeLater(new Runnable() { + + public void run() { + SceneViewerTopComponent.findInstance().requestActive(); + } + }); + } } } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java index 3871eaea8..ba4bf55ed 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java @@ -24,7 +24,6 @@ */ package com.jme3.gde.core.sceneviewer; -import com.jme3.gde.core.Installer; import com.jme3.gde.core.filters.FilterExplorerTopComponent; import com.jme3.gde.core.scene.SceneApplication; import com.jme3.gde.core.scene.SceneRequest; @@ -49,7 +48,6 @@ import org.openide.awt.UndoRedo; import org.openide.util.Exceptions; import org.openide.util.HelpCtx; import org.openide.util.Lookup; -import org.openide.util.NbPreferences; /** * Top component which displays something. @@ -80,6 +78,7 @@ public final class SceneViewerTopComponent extends TopComponent { app = SceneApplication.getApplication(); // oglCanvas = ((JmeCanvasContext) app.getContext()).getCanvas(); oglCanvas = app.getMainPanel(); + oglCanvas.setFocusable(false); oGLPanel.add(oglCanvas); } catch (Exception e) { @@ -92,59 +91,61 @@ public final class SceneViewerTopComponent extends TopComponent { //We add a mouse wheel listener to the top conmponent in order to correctly dispatch the event ot the cam controller //the oGLPanel may naver have the focus. - if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) { - addMouseWheelListener(new MouseWheelListener() { + // if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) { + addMouseWheelListener(new MouseWheelListener() { - public void mouseWheelMoved(final MouseWheelEvent e) { - SceneApplication.getApplication().enqueue(new Callable() { + public void mouseWheelMoved(final MouseWheelEvent e) { + SceneApplication.getApplication().enqueue(new Callable() { - public Void call() throws Exception { - String action = "MouseWheel-"; - if (e.getWheelRotation() < 0) { - action = "MouseWheel"; - } + public Void call() throws Exception { + String action = "MouseWheel-"; + if (e.getWheelRotation() < 0) { + action = "MouseWheel"; + } + if (app.getActiveCameraController() != null) { app.getActiveCameraController().onAnalog(action, e.getWheelRotation(), 0); - return null; } - }); - } - }); - addKeyListener(new KeyListener() { - - public void keyTyped(KeyEvent evt) { - } - - public void keyPressed(final KeyEvent evt) { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - int code = AwtKeyInput.convertAwtKey(evt.getKeyCode()); - KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), true, false); - keyEvent.setTime(evt.getWhen()); - if (app.getActiveCameraController() != null) { - app.getActiveCameraController().onKeyEvent(keyEvent); - } - return null; + return null; + } + }); + } + }); + addKeyListener(new KeyListener() { + + public void keyTyped(KeyEvent evt) { + } + + public void keyPressed(final KeyEvent evt) { + SceneApplication.getApplication().enqueue(new Callable() { + + public Void call() throws Exception { + int code = AwtKeyInput.convertAwtKey(evt.getKeyCode()); + KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), true, false); + keyEvent.setTime(evt.getWhen()); + if (app.getActiveCameraController() != null) { + app.getActiveCameraController().onKeyEvent(keyEvent); } - }); - } - - public void keyReleased(final KeyEvent evt) { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - int code = AwtKeyInput.convertAwtKey(evt.getKeyCode()); - KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), false, false); - keyEvent.setTime(evt.getWhen()); - if (app.getActiveCameraController() != null) { - app.getActiveCameraController().onKeyEvent(keyEvent); - } - return null; + return null; + } + }); + } + + public void keyReleased(final KeyEvent evt) { + SceneApplication.getApplication().enqueue(new Callable() { + + public Void call() throws Exception { + int code = AwtKeyInput.convertAwtKey(evt.getKeyCode()); + KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), false, false); + keyEvent.setTime(evt.getWhen()); + if (app.getActiveCameraController() != null) { + app.getActiveCameraController().onKeyEvent(keyEvent); } - }); - } - }); - } + return null; + } + }); + } + }); + //} }