jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java
changeset 12176 fc690f855620
parent 12047 320a714614e9
child 12640 5ea775607d72
equal deleted inserted replaced
12175:e832f6ea56e5 12176:fc690f855620
    31 import sun.java2d.opengl.CGLLayer;
    31 import sun.java2d.opengl.CGLLayer;
    32 import sun.java2d.SurfaceData;
    32 import sun.java2d.SurfaceData;
    33 
    33 
    34 import sun.awt.CGraphicsConfig;
    34 import sun.awt.CGraphicsConfig;
    35 import sun.awt.CGraphicsDevice;
    35 import sun.awt.CGraphicsDevice;
       
    36 import sun.awt.CausedFocusEvent;
    36 
    37 
    37 import java.awt.*;
    38 import java.awt.*;
    38 import java.awt.BufferCapabilities.FlipContents;
    39 import java.awt.BufferCapabilities.FlipContents;
       
    40 
       
    41 import sun.util.logging.PlatformLogger;
    39 
    42 
    40 /*
    43 /*
    41  * Provides a lightweight implementation of the EmbeddedFrame.
    44  * Provides a lightweight implementation of the EmbeddedFrame.
    42  */
    45  */
    43 public class CPlatformEmbeddedFrame implements PlatformWindow {
    46 public class CPlatformEmbeddedFrame implements PlatformWindow {
    44 
    47 
       
    48     private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformEmbeddedFrame");
       
    49 
    45     private CGLLayer windowLayer;
    50     private CGLLayer windowLayer;
    46     private LWWindowPeer peer;
    51     private LWWindowPeer peer;
       
    52     private CEmbeddedFrame target;
    47 
    53 
    48     private volatile int screenX = 0;
    54     private volatile int screenX = 0;
    49     private volatile int screenY = 0;
    55     private volatile int screenY = 0;
    50 
    56 
    51     @Override // PlatformWindow
    57     @Override // PlatformWindow
    52     public void initialize(Window target, final LWWindowPeer peer, PlatformWindow owner) {
    58     public void initialize(Window target, final LWWindowPeer peer, PlatformWindow owner) {
    53         this.peer = peer;
    59         this.peer = peer;
    54         this.windowLayer = new CGLLayer(peer);
    60         this.windowLayer = new CGLLayer(peer);
       
    61         this.target = (CEmbeddedFrame)target;
    55     }
    62     }
    56 
    63 
    57     @Override
    64     @Override
    58     public LWWindowPeer getPeer() {
    65     public LWWindowPeer getPeer() {
    59         return peer;
    66         return peer;
   147 
   154 
   148     @Override
   155     @Override
   149     public void updateFocusableWindowState() {}
   156     public void updateFocusableWindowState() {}
   150 
   157 
   151     @Override
   158     @Override
       
   159     public boolean rejectFocusRequest(CausedFocusEvent.Cause cause) {
       
   160         // Cross-app activation requests are not allowed.
       
   161         if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
       
   162             !target.isParentWindowActive())
       
   163         {
       
   164             focusLogger.fine("the embedder is inactive, so the request is rejected");
       
   165             return true;
       
   166         }
       
   167         return false;
       
   168     }
       
   169 
       
   170     @Override
   152     public boolean requestWindowFocus() {
   171     public boolean requestWindowFocus() {
   153         return true;
   172         return true;
   154     }
   173     }
   155 
   174 
   156     @Override
   175     @Override