src/macosx/classes/sun/lwawt/LWWindowPeer.java

Print this page

        

*** 809,818 **** --- 809,826 ---- mouseClickButtons = eventButtonMask; } else { mouseClickButtons |= eventButtonMask; } + // The window should be focused on mouse click. If it gets activated by the native platform, + // this request will be no op. It will take effect when: + // 1. A simple not focused window is clicked. + // 2. An active but not focused owner frame/dialog is clicked. + // The mouse event then will trigger a focus request "in window" to the component, so the window + // should gain focus before. + requestWindowFocus(CausedFocusEvent.Cause.MOUSE_EVENT); + mouseDownTarget[targetIdx] = targetPeer; } else if (id == MouseEvent.MOUSE_DRAGGED) { // Cocoa dragged event has the information about which mouse // button is being dragged. Use it to determine the peer that // should receive the dragged event.
*** 899,922 **** * Called by the delegate when a key is pressed. */ public void dispatchKeyEvent(int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation) { ! KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance(); Component focusOwner = kfmPeer.getCurrentFocusOwner(); ! // Null focus owner may receive key event when ! // application hides the focused window upon ESC press ! // (AWT transfers/clears the focus owner) and pending ESC release ! // may come to already hidden window. This check eliminates NPE. ! if (focusOwner != null) { ! KeyEvent event = ! new KeyEvent(focusOwner, id, when, modifiers, ! keyCode, keyChar, keyLocation); ! LWComponentPeer peer = (LWComponentPeer)focusOwner.getPeer(); ! peer.postEvent(event); } } // ---- UTILITY METHODS ---- // --- 907,926 ---- * Called by the delegate when a key is pressed. */ public void dispatchKeyEvent(int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation) { ! LWKeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance(); Component focusOwner = kfmPeer.getCurrentFocusOwner(); ! if (focusOwner == null) { ! focusOwner = kfmPeer.getCurrentFocusedWindow(); ! if (focusOwner == null) { ! focusOwner = this.getTarget(); ! } } + postEvent(new KeyEvent(focusOwner, id, when, modifiers, keyCode, keyChar, keyLocation)); } // ---- UTILITY METHODS ---- //