From 844e2564fd758943b0bb561247b8bb7dadbb9152 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 3 Aug 2006 00:11:02 +0000 Subject: [PATCH] Block keyboard and mouse events before the context is initialized. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@23 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/java/com/threerings/jme/JmeCanvasApp.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/java/com/threerings/jme/JmeCanvasApp.java b/src/java/com/threerings/jme/JmeCanvasApp.java index 3e7faf58..7ac7fcd3 100644 --- a/src/java/com/threerings/jme/JmeCanvasApp.java +++ b/src/java/com/threerings/jme/JmeCanvasApp.java @@ -21,6 +21,7 @@ package com.threerings.jme; +import java.awt.AWTEvent; import java.awt.Canvas; import java.awt.Graphics; import java.awt.EventQueue; @@ -112,7 +113,12 @@ public class JmeCanvasApp extends JmeApp { // LWJGL's canvas releases the context after painting. we make it // current again, because we want it valid when we process events. + // block mouse and keyboard events until the context is valid. return new LWJGLCanvas() { + public void addNotify () { + super.addNotify(); + disableEvents(MOUSE_KEY_EVENT_MASK); + } public void update (Graphics g) { super.update(g); try { @@ -122,6 +128,10 @@ public class JmeCanvasApp extends JmeApp e + "]."); } } + protected void initGL () { + super.initGL(); + enableEvents(MOUSE_KEY_EVENT_MASK); + } }; } @@ -181,4 +191,10 @@ public class JmeCanvasApp extends JmeApp }; protected Canvas _canvas; + + protected static final long MOUSE_KEY_EVENT_MASK = + AWTEvent.MOUSE_EVENT_MASK | + AWTEvent.MOUSE_MOTION_EVENT_MASK | + AWTEvent.MOUSE_WHEEL_EVENT_MASK | + AWTEvent.KEY_EVENT_MASK; }