From 291b40c4ef83b06cb68da684ba3bbcbfea1a4f0d Mon Sep 17 00:00:00 2001 From: fredkiefer Date: Fri, 15 Aug 2008 06:45:17 +0000 Subject: [PATCH] Improved mini window handling. Patch by Hubert Chathi . git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@26810 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 7 +++++++ Source/NSApplication.m | 13 +++++++++---- Source/NSWindow.m | 6 ++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d95383878..1555508a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-08-15 Fred Kiefer + + * Source/NSWindow.m (-makeKeyAndOrderFront:): Unhide the application. + * Source/NSApplication.m (-hide:, -unhideWithoutActivation): + Better handling for miniaturized windows. + Patch by Hubert Chathi . + 2008-08-13 22:20-EDT Gregory John Casamento * Source/NSApplication.m: Removed icns string addition to rely on diff --git a/Source/NSApplication.m b/Source/NSApplication.m index b0d150773..f628a243a 100644 --- a/Source/NSApplication.m +++ b/Source/NSApplication.m @@ -2255,7 +2255,7 @@ image.

See Also: -applicationIconImage

while ((win = [iter nextObject])) { - if ([win isVisible] == NO) + if ([win isVisible] == NO && ![win isMiniaturized]) { continue; /* Already invisible */ } @@ -2343,9 +2343,14 @@ image.

See Also: -applicationIconImage

count = [_hidden count]; for (i = 0; i < count; i++) - { - [[_hidden objectAtIndex: i] orderFrontRegardless]; - } + { + NSWindow *win = [_hidden objectAtIndex: i]; + [win orderFrontRegardless]; + if ([win isMiniaturized]) + { + [GSServerForWindow(win) miniwindow: [win windowNumber]]; + } + } [_hidden removeAllObjects]; [[_app_icon_window contentView] setNeedsDisplay: YES]; diff --git a/Source/NSWindow.m b/Source/NSWindow.m index 88ac81c55..a6e0d7a31 100644 --- a/Source/NSWindow.m +++ b/Source/NSWindow.m @@ -1543,6 +1543,12 @@ many times. - (void) makeKeyAndOrderFront: (id)sender { [self deminiaturize: self]; + /* + * If a window is ordered in, make sure that the application isn't hidden, + * and is active. + */ + if ([self canBecomeKeyWindow]) + [NSApp unhide: self]; [self orderFrontRegardless]; [self makeKeyWindow]; /*