< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m
Print this page
*** 185,194 ****
--- 185,197 ----
@synthesize ownerWindow;
@synthesize preFullScreenLevel;
@synthesize standardFrame;
@synthesize isMinimizing;
+ // Key notification received status
+ static bool keyNotificationRecd = false;
+
- (void) updateMinMaxSize:(BOOL)resizable {
if (resizable) {
[self.nsWindow setMinSize:self.javaMinSize];
[self.nsWindow setMaxSize:self.javaMaxSize];
} else {
*** 740,752 ****
- (void) windowDidBecomeMain: (NSNotification *) notification {
AWT_ASSERT_APPKIT_THREAD;
[AWTToolkit eventCountPlusPlus];
#ifdef DEBUG
! NSLog(@"became main: %d %@ %@", [self.nsWindow isKeyWindow], [self.nsWindow title], [self menuBarForWindow]);
#endif
if (![self.nsWindow isKeyWindow]) {
[self activateWindowMenuBar];
}
JNIEnv *env = [ThreadUtilities getJNIEnv];
--- 743,762 ----
- (void) windowDidBecomeMain: (NSNotification *) notification {
AWT_ASSERT_APPKIT_THREAD;
[AWTToolkit eventCountPlusPlus];
#ifdef DEBUG
! NSLog(@"became main: %d %@ %@ %d", [self.nsWindow isKeyWindow], [self.nsWindow title], [self menuBarForWindow], keyNotificationRecd);
#endif
+ // if for some reason, no KEY notification is received but this main window is also a key window
+ // then we need to execute the KEY notification functionality.
+ if(keyNotificationRecd != true && [self.nsWindow isKeyWindow]) {
+ [self doWindowDidBecomeKey];
+ }
+ keyNotificationRecd = false;
+
if (![self.nsWindow isKeyWindow]) {
[self activateWindowMenuBar];
}
JNIEnv *env = [ThreadUtilities getJNIEnv];
*** 762,771 ****
--- 772,787 ----
AWT_ASSERT_APPKIT_THREAD;
[AWTToolkit eventCountPlusPlus];
#ifdef DEBUG
NSLog(@"became key: %d %@ %@", [self.nsWindow isMainWindow], [self.nsWindow title], [self menuBarForWindow]);
#endif
+ [self doWindowDidBecomeKey];
+ keyNotificationRecd = true;
+ }
+
+ - (void) doWindowDidBecomeKey {
+ AWT_ASSERT_APPKIT_THREAD;
AWTWindow *opposite = [AWTWindow lastKeyWindow];
if (![self.nsWindow isMainWindow]) {
[self activateWindowMenuBar];
}
< prev index next >