< prev index next >

src/solaris/classes/sun/awt/X11/XBaseWindow.java

Print this page

        

@@ -999,10 +999,17 @@
             buttonState |= (xbe.get_state() & XConstants.buttonsMask[i]);
         }
         switch (xev.get_type()) {
         case XConstants.ButtonPress:
             if (buttonState == 0) {
+                XWindowPeer parent = getToplevelXWindow();
+                // See 6385277, 6981400.
+                if (parent != null && parent.isFocusableWindow()) {
+                    // A click in a client area drops the actual focused window retaining.
+                    parent.setActualFocusedWindow(null);
+                    parent.requestWindowFocus(xbe.get_time(), true);
+                }
                 XAwtState.setAutoGrabWindow(this);
             }
             break;
         case XConstants.ButtonRelease:
             if (isFullRelease(buttonState, xbe.get_button())) {
< prev index next >