aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes/com/sun/javafx
diff options
context:
space:
mode:
Diffstat (limited to 'src/classes/com/sun/javafx')
-rwxr-xr-xsrc/classes/com/sun/javafx/newt/Display.java2
-rwxr-xr-xsrc/classes/com/sun/javafx/newt/Screen.java2
-rwxr-xr-xsrc/classes/com/sun/javafx/newt/Window.java58
-rw-r--r--src/classes/com/sun/javafx/newt/awt/AWTDisplay.java46
-rw-r--r--src/classes/com/sun/javafx/newt/awt/AWTScreen.java46
-rw-r--r--src/classes/com/sun/javafx/newt/awt/AWTWindow.java274
-rwxr-xr-xsrc/classes/com/sun/javafx/newt/windows/WindowsWindow.java2
-rwxr-xr-xsrc/classes/com/sun/javafx/newt/x11/X11Window.java2
8 files changed, 412 insertions, 20 deletions
diff --git a/src/classes/com/sun/javafx/newt/Display.java b/src/classes/com/sun/javafx/newt/Display.java
index 2aa55246f..cd3aa75d0 100755
--- a/src/classes/com/sun/javafx/newt/Display.java
+++ b/src/classes/com/sun/javafx/newt/Display.java
@@ -46,7 +46,7 @@ public abstract class Display {
} else if (NewtFactory.X11.equals(type)) {
displayClass = Class.forName("com.sun.javafx.newt.x11.X11Display");
} else if (NewtFactory.MACOSX.equals(type)) {
- displayClass = Class.forName("com.sun.javafx.newt.macosx.MacOSXDisplay");
+ displayClass = Class.forName("com.sun.javafx.newt.awt.AWTDisplay");
} else {
throw new RuntimeException("Unknown display type \"" + type + "\"");
}
diff --git a/src/classes/com/sun/javafx/newt/Screen.java b/src/classes/com/sun/javafx/newt/Screen.java
index 38669b9e0..67322b97f 100755
--- a/src/classes/com/sun/javafx/newt/Screen.java
+++ b/src/classes/com/sun/javafx/newt/Screen.java
@@ -46,7 +46,7 @@ public abstract class Screen {
} else if (NewtFactory.X11.equals(type)) {
screenClass = Class.forName("com.sun.javafx.newt.x11.X11Screen");
} else if (NewtFactory.MACOSX.equals(type)) {
- screenClass = Class.forName("com.sun.javafx.newt.macosx.MacOSXScreen");
+ screenClass = Class.forName("com.sun.javafx.newt.awt.AWTScreen");
} else {
throw new RuntimeException("Unknown window type \"" + type + "\"");
}
diff --git a/src/classes/com/sun/javafx/newt/Window.java b/src/classes/com/sun/javafx/newt/Window.java
index 8b6688c3b..faf98d3d0 100755
--- a/src/classes/com/sun/javafx/newt/Window.java
+++ b/src/classes/com/sun/javafx/newt/Window.java
@@ -56,7 +56,11 @@ public abstract class Window implements NativeWindow
} else if (NewtFactory.X11.equals(type)) {
windowClass = Class.forName("com.sun.javafx.newt.x11.X11Window");
} else if (NewtFactory.MACOSX.equals(type)) {
- windowClass = Class.forName("com.sun.javafx.newt.macosx.MacOSXWindow");
+ // For the time being, use the AWT on Mac OS X since
+ // there's no advantage to avoiding its usage -- this
+ // would change if we were running on the iPhone and
+ // didn't have an AWT
+ windowClass = Class.forName("com.sun.javafx.newt.awt.AWTWindow");
} else {
throw new RuntimeException("Unknown window type \"" + type + "\"");
}
@@ -135,7 +139,7 @@ public abstract class Window implements NativeWindow
pumpMessages(em);
}
- public abstract void dispatchMessages(int eventMask);
+ protected abstract void dispatchMessages(int eventMask);
public String toString() {
return "Window[handle "+windowHandle+
@@ -254,6 +258,10 @@ public abstract class Window implements NativeWindow
public abstract void setPosition(int x, int y);
public abstract boolean setFullscreen(boolean fullscreen);
+ public Object getWrappedWindow() {
+ return null;
+ }
+
//
// MouseListener Support
//
@@ -262,14 +270,18 @@ public abstract class Window implements NativeWindow
if(l == null) {
return;
}
- mouseListener.add(l);
+ ArrayList newMouseListeners = (ArrayList) mouseListener.clone();
+ newMouseListeners.add(l);
+ mouseListener = newMouseListeners;
}
public synchronized void removeMouseListener(MouseListener l) {
if (l == null) {
return;
}
- mouseListener.remove(l);
+ ArrayList newMouseListeners = (ArrayList) mouseListener.clone();
+ newMouseListeners.remove(l);
+ mouseListener = newMouseListeners;
}
public synchronized MouseListener[] getMouseListeners() {
@@ -320,6 +332,8 @@ public abstract class Window implements NativeWindow
e = new MouseEvent(true, eventType, this, when,
modifiers, x, y, 0, button);
}
+ } else {
+ e = new MouseEvent(true, eventType, this, when, modifiers, x, y, 0, button);
}
if(DEBUG_MOUSE_EVENT) {
@@ -329,30 +343,39 @@ public abstract class Window implements NativeWindow
}
}
- for(Iterator i = mouseListener.iterator(); i.hasNext(); ) {
+ ArrayList listeners = null;
+ synchronized(this) {
+ listeners = mouseListener;
+ }
+ for(Iterator i = listeners.iterator(); i.hasNext(); ) {
+ MouseListener l = (MouseListener) i.next();
switch(e.getEventType()) {
+ case MouseEvent.EVENT_MOUSE_CLICKED:
+ l.mouseClicked(e);
+ break;
case MouseEvent.EVENT_MOUSE_ENTERED:
- ((MouseListener)i.next()).mouseEntered(e);
+ l.mouseEntered(e);
break;
case MouseEvent.EVENT_MOUSE_EXITED:
- ((MouseListener)i.next()).mouseExited(e);
+ l.mouseExited(e);
break;
case MouseEvent.EVENT_MOUSE_PRESSED:
- ((MouseListener)i.next()).mousePressed(e);
+ l.mousePressed(e);
break;
case MouseEvent.EVENT_MOUSE_RELEASED:
- MouseListener ml = (MouseListener)i.next();
- ml.mouseReleased(e);
+ l.mouseReleased(e);
if(null!=eClicked) {
- ml.mouseClicked(eClicked);
+ l.mouseClicked(eClicked);
}
break;
case MouseEvent.EVENT_MOUSE_MOVED:
- ((MouseListener)i.next()).mouseMoved(e);
+ l.mouseMoved(e);
break;
case MouseEvent.EVENT_MOUSE_DRAGGED:
- ((MouseListener)i.next()).mouseDragged(e);
+ l.mouseDragged(e);
break;
+ default:
+ throw new RuntimeException("Unexpected mouse event type " + e.getEventType());
}
}
}
@@ -388,16 +411,19 @@ public abstract class Window implements NativeWindow
System.out.println("sendKeyEvent: "+e);
}
for(Iterator i = keyListener.iterator(); i.hasNext(); ) {
+ KeyListener l = (KeyListener) i.next();
switch(eventType) {
case KeyEvent.EVENT_KEY_PRESSED:
- ((KeyListener)i.next()).keyPressed(e);
+ l.keyPressed(e);
break;
case KeyEvent.EVENT_KEY_RELEASED:
- ((KeyListener)i.next()).keyReleased(e);
+ l.keyReleased(e);
break;
case KeyEvent.EVENT_KEY_TYPED:
- ((KeyListener)i.next()).keyTyped(e);
+ l.keyTyped(e);
break;
+ default:
+ throw new RuntimeException("Unexpected key event type " + e.getEventType());
}
}
}
diff --git a/src/classes/com/sun/javafx/newt/awt/AWTDisplay.java b/src/classes/com/sun/javafx/newt/awt/AWTDisplay.java
new file mode 100644
index 000000000..37d1af2ed
--- /dev/null
+++ b/src/classes/com/sun/javafx/newt/awt/AWTDisplay.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.awt;
+
+import com.sun.javafx.newt.*;
+import com.sun.opengl.impl.*;
+
+public class AWTDisplay extends Display {
+ public AWTDisplay() {
+ }
+
+ protected void createNative() {
+ handle = 0;
+ }
+}
diff --git a/src/classes/com/sun/javafx/newt/awt/AWTScreen.java b/src/classes/com/sun/javafx/newt/awt/AWTScreen.java
new file mode 100644
index 000000000..4d8cfe776
--- /dev/null
+++ b/src/classes/com/sun/javafx/newt/awt/AWTScreen.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.awt;
+
+import com.sun.javafx.newt.*;
+import com.sun.opengl.impl.*;
+
+public class AWTScreen extends Screen {
+ public AWTScreen() {
+ }
+
+ protected void createNative() {
+ handle = 0;
+ }
+}
diff --git a/src/classes/com/sun/javafx/newt/awt/AWTWindow.java b/src/classes/com/sun/javafx/newt/awt/AWTWindow.java
new file mode 100644
index 000000000..b7ac5c5d6
--- /dev/null
+++ b/src/classes/com/sun/javafx/newt/awt/AWTWindow.java
@@ -0,0 +1,274 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ */
+
+package com.sun.javafx.newt.awt;
+
+import java.awt.BorderLayout;
+import java.awt.Canvas;
+import java.awt.DisplayMode;
+import java.awt.EventQueue;
+import java.awt.Frame;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.event.*;
+import java.util.*;
+
+import com.sun.javafx.newt.Window;
+
+/** An implementation of the Newt Window class built using the
+ AWT. This is provided for convenience of porting to platforms
+ supporting Java SE. */
+
+public class AWTWindow extends Window {
+ private Frame frame;
+ private Canvas canvas;
+ private LinkedList/*<AWTEventWrapper>*/ events = new LinkedList();
+ private boolean gotDisplaySize;
+ private int displayWidth;
+ private int displayHeight;
+
+ protected void createNative() {
+ runOnEDT(new Runnable() {
+ public void run() {
+ frame = new Frame("AWT NewtWindow");
+ frame.setLayout(new BorderLayout());
+ canvas = new Canvas();
+ Listener listener = new Listener();
+ canvas.addMouseListener(listener);
+ canvas.addMouseMotionListener(listener);
+ canvas.addKeyListener(listener);
+ frame.add(canvas, BorderLayout.CENTER);
+ frame.setSize(width, height);
+ frame.setLocation(x, y);
+ }
+ });
+ }
+
+ protected void closeNative() {
+ runOnEDT(new Runnable() {
+ public void run() {
+ frame.dispose();
+ frame = null;
+ }
+ });
+ }
+
+ public int getDisplayWidth() {
+ getDisplaySize();
+ return displayWidth;
+ }
+
+ public int getDisplayHeight() {
+ getDisplaySize();
+ return displayHeight;
+ }
+
+ private void getDisplaySize() {
+ if (!gotDisplaySize) {
+ DisplayMode mode =
+ GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode();
+ displayWidth = mode.getWidth();
+ displayHeight = mode.getHeight();
+ gotDisplaySize = true;
+ }
+ }
+
+ public void setVisible(final boolean visible) {
+ runOnEDT(new Runnable() {
+ public void run() {
+ frame.setVisible(visible);
+ }
+ });
+ }
+
+ public void setSize(final int width, final int height) {
+ this.width = width;
+ this.height = height;
+ runOnEDT(new Runnable() {
+ public void run() {
+ frame.setSize(width, height);
+ }
+ });
+ }
+
+ public void setPosition(final int x, final int y) {
+ runOnEDT(new Runnable() {
+ public void run() {
+ frame.setLocation(x, y);
+ }
+ });
+ }
+
+ public boolean setFullscreen(boolean fullscreen) {
+ // Ignore for now
+ return false;
+ }
+
+ public Object getWrappedWindow() {
+ return canvas;
+ }
+
+ public void dispatchMessages(int eventMask) {
+ AWTEventWrapper w;
+ do {
+ synchronized(this) {
+ if (!events.isEmpty()) {
+ w = (AWTEventWrapper) events.removeFirst();
+ } else {
+ w = null;
+ }
+ }
+ if (w != null) {
+ if (w.isMouseEvent()) {
+ if ((eventMask & com.sun.javafx.newt.EventListener.MOUSE) != 0) {
+ MouseEvent e = (MouseEvent) w.getEvent();
+ sendMouseEvent(w.getType(), convertModifiers(e),
+ e.getX(), e.getY(), convertButton(e));
+ }
+ } else {
+ if ((eventMask & com.sun.javafx.newt.EventListener.KEY) != 0) {
+ KeyEvent e = (KeyEvent) w.getEvent();
+ sendKeyEvent(w.getType(), convertModifiers(e),
+ e.getKeyCode(), e.getKeyChar());
+ }
+ }
+ }
+ } while (w != null);
+ }
+
+ private static int convertModifiers(InputEvent e) {
+ int newtMods = 0;
+ int mods = e.getModifiers();
+ if ((mods & InputEvent.SHIFT_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.SHIFT_MASK;
+ if ((mods & InputEvent.CTRL_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.CTRL_MASK;
+ if ((mods & InputEvent.META_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.META_MASK;
+ if ((mods & InputEvent.ALT_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.ALT_MASK;
+ if ((mods & InputEvent.ALT_GRAPH_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.ALT_GRAPH_MASK;
+ return newtMods;
+ }
+
+ private static int convertButton(MouseEvent e) {
+ switch (e.getButton()) {
+ case MouseEvent.BUTTON1: return com.sun.javafx.newt.MouseEvent.BUTTON1;
+ case MouseEvent.BUTTON2: return com.sun.javafx.newt.MouseEvent.BUTTON2;
+ case MouseEvent.BUTTON3: return com.sun.javafx.newt.MouseEvent.BUTTON3;
+ }
+ return 0;
+ }
+
+ private static void runOnEDT(Runnable r) {
+ if (EventQueue.isDispatchThread()) {
+ r.run();
+ } else {
+ try {
+ EventQueue.invokeAndWait(r);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private void enqueueEvent(boolean isMouseEvent, int type, InputEvent e) {
+ AWTEventWrapper wrapper = new AWTEventWrapper(isMouseEvent,type, e);
+ synchronized(this) {
+ events.add(wrapper);
+ }
+ }
+
+ static class AWTEventWrapper {
+ boolean isMouseEvent;
+ int type;
+ InputEvent e;
+
+ AWTEventWrapper(boolean isMouseEvent, int type, InputEvent e) {
+ this.isMouseEvent = isMouseEvent;
+ this.type = type;
+ this.e = e;
+ }
+
+ public boolean isMouseEvent() {
+ return isMouseEvent;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public InputEvent getEvent() {
+ return e;
+ }
+ }
+
+ class Listener implements MouseListener, MouseMotionListener, KeyListener {
+ public void mouseClicked(MouseEvent e) {
+ // We ignore these as we synthesize them ourselves out of
+ // mouse pressed and released events
+ }
+
+ public void mouseEntered(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_ENTERED, e);
+ }
+
+ public void mouseExited(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_EXITED, e);
+ }
+
+ public void mousePressed(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_PRESSED, e);
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_RELEASED, e);
+ }
+
+ public void mouseMoved(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_MOVED, e);
+ }
+
+ public void mouseDragged(MouseEvent e) {
+ enqueueEvent(true, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_DRAGGED, e);
+ }
+
+ public void keyPressed(KeyEvent e) {
+ enqueueEvent(false, com.sun.javafx.newt.KeyEvent.EVENT_KEY_PRESSED, e);
+ }
+
+ public void keyReleased(KeyEvent e) {
+ enqueueEvent(false, com.sun.javafx.newt.KeyEvent.EVENT_KEY_RELEASED, e);
+ }
+
+ public void keyTyped(KeyEvent e) {
+ enqueueEvent(false, com.sun.javafx.newt.KeyEvent.EVENT_KEY_TYPED, e);
+ }
+ }
+}
diff --git a/src/classes/com/sun/javafx/newt/windows/WindowsWindow.java b/src/classes/com/sun/javafx/newt/windows/WindowsWindow.java
index 47dd15add..3ee6dbb0f 100755
--- a/src/classes/com/sun/javafx/newt/windows/WindowsWindow.java
+++ b/src/classes/com/sun/javafx/newt/windows/WindowsWindow.java
@@ -105,7 +105,7 @@ public class WindowsWindow extends Window {
return 480; // FIXME
}
- public void dispatchMessages(int eventMask) {
+ protected void dispatchMessages(int eventMask) {
DispatchMessages(windowHandle, eventMask);
}
diff --git a/src/classes/com/sun/javafx/newt/x11/X11Window.java b/src/classes/com/sun/javafx/newt/x11/X11Window.java
index 10fd1acd5..101ee813b 100755
--- a/src/classes/com/sun/javafx/newt/x11/X11Window.java
+++ b/src/classes/com/sun/javafx/newt/x11/X11Window.java
@@ -108,7 +108,7 @@ public class X11Window extends Window {
return getDisplayHeight0(getDisplayHandle(), getScreenIndex());
}
- public void dispatchMessages(int eventMask) {
+ protected void dispatchMessages(int eventMask) {
DispatchMessages(getDisplayHandle(), windowHandle, eventMask);
}