Changes for backend miniwin control

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@13289 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fedor 2002-04-02 03:13:14 +00:00
parent a95b3054d2
commit 4ddbd9c46f
4 changed files with 17 additions and 2 deletions

View file

@ -11,6 +11,9 @@
Add some documentation.
* Source/NSWindow.m ([NSWindow -dealloc]): Check for context
before undefining gstate.
([NSWindow -miniaturize:]): Don't create miniwindow if server
can't handle it.
* Source/GSDisplayServer.m (-appOwnsMiniwindow): Implement.
2002-04-01 Gregory Casamento <greg_casamento@yahoo.com>

View file

@ -95,6 +95,7 @@ GSDisplayServer * GSCurrentServer(void);
- (void) windowbacking: (NSBackingStoreType)type;
- (void) titlewindow: (NSString *) window_title : (int) win;
- (void) miniwindow: (int) win;
- (BOOL) appOwnsMiniwindow;
- (void) windowdevice: (int) win;
- (void) orderwindow: (int) op : (int) otherWin : (int) win;
- (void) movewindow: (NSPoint)loc : (int) win;

View file

@ -461,6 +461,16 @@ GSCurrentServer(void)
[self subclassResponsibility: _cmd];
}
/** Returns YES if the application should create the miniwindow counterpart
to the full size window and own it. Some display systems handle the
miniwindow themselves. In this case the backend subclass should
override this method to return NO. */
- (BOOL) appOwnsMiniwindow
{
return YES;
}
/** Sets the window drawable for the current NSGraphicsContext,
typically by calling [NSGraphicsContext -DPSsetgcdrawable::::],
although depending on the concrete implmentation, more information

View file

@ -2101,6 +2101,7 @@ resetCursorRectsForView(NSView *theView)
the screen and it's counterpart (mini)window is displayed. */
- (void) miniaturize: (id)sender
{
GSDisplayServer *srv = GSServerForWindow(self);
[nc postNotificationName: NSWindowWillMiniaturizeNotification
object: self];
@ -2113,7 +2114,7 @@ resetCursorRectsForView(NSView *theView)
/*
* Ensure that we have a miniwindow counterpart.
*/
if (_counterpart == 0)
if (_counterpart == 0 && [srv appOwnsMiniwindow])
{
NSWindow *mini;
NSMiniWindowView *v;
@ -2131,7 +2132,7 @@ resetCursorRectsForView(NSView *theView)
RELEASE(v);
}
[self _lossOfKeyOrMainWindow];
[GSServerForWindow(self) miniwindow: _windowNum];
[srv miniwindow: _windowNum];
_f.visible = NO;
[nc postNotificationName: NSWindowDidMiniaturizeNotification