src/windows/classes/sun/awt/windows/WToolkit.java
Print this page
@@ -35,10 +35,11 @@
import java.awt.TrayIcon;
import java.beans.PropertyChangeListener;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.awt.AWTAutoShutdown;
+import sun.awt.LightweightFrame;
import sun.awt.SunToolkit;
import sun.awt.Win32GraphicsDevice;
import sun.awt.Win32GraphicsEnvironment;
import sun.java2d.d3d.D3DRenderQueue;
import sun.java2d.opengl.OGLRenderQueue;
@@ -396,10 +397,16 @@
FramePeer peer = new WFramePeer(target);
targetCreatedPeer(target, peer);
return peer;
}
+ public FramePeer createLightweightFrame(LightweightFrame target) {
+ FramePeer peer = new WLightweightFramePeer(target);
+ targetCreatedPeer(target, peer);
+ return peer;
+ }
+
public CanvasPeer createCanvas(Canvas target) {
CanvasPeer peer = new WCanvasPeer(target);
targetCreatedPeer(target, peer);
return peer;
}
@@ -976,19 +983,33 @@
return !Win32GraphicsEnvironment.isDWMCompositionEnabled();
}
@SuppressWarnings("deprecation")
public void grab(Window w) {
+ // When grab/ungrab API is public,
+ // it should go through Window.grab(),
+ // not via SunToolkit.grab(Window).
+ if (w instanceof LightweightFrame) {
+ ((LightweightFrame)w).grabFocus();
+ return;
+ }
if (w.getPeer() != null) {
((WWindowPeer)w.getPeer()).grab();
}
}
@SuppressWarnings("deprecation")
public void ungrab(Window w) {
+ // When grab/ungrab API is public,
+ // it should go through Window.ungrab(boolean),
+ // not via SunToolkit.ungrab(Window).
+ if (w instanceof LightweightFrame) {
+ ((LightweightFrame)w).ungrabFocus(false);
+ return;
+ }
if (w.getPeer() != null) {
- ((WWindowPeer)w.getPeer()).ungrab();
+ ((WWindowPeer)w.getPeer()).ungrab(false);
}
}
public native boolean syncNativeQueue(final long timeout);
public boolean isDesktopSupported() {