mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 02:41:01 +00:00
GSWindowDecorationView merge
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/gnustep_testplant_branch@38703 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
302adee8ba
commit
fbbca0182c
1 changed files with 26 additions and 4 deletions
|
@ -353,20 +353,42 @@ static inline NSRect RectWithSizeScaledByFactor(NSRect aRect, CGFloat factor)
|
||||||
{
|
{
|
||||||
NSRect orgWindowFrame;
|
NSRect orgWindowFrame;
|
||||||
NSRect windowFrame;
|
NSRect windowFrame;
|
||||||
|
NSRect windowContentFrame;
|
||||||
|
|
||||||
if (difference != 0.0)
|
// FIXME: This is needed as long as NSWindow uses fraem limits not content frame limits
|
||||||
|
NSSize aSize = [window minSize];
|
||||||
|
if (!NSEqualSizes(aSize, NSZeroSize))
|
||||||
{
|
{
|
||||||
|
aSize.height += difference;
|
||||||
|
[window setMinSize: aSize];
|
||||||
|
}
|
||||||
|
aSize = [window maxSize];
|
||||||
|
if (!NSEqualSizes(aSize, NSZeroSize))
|
||||||
|
{
|
||||||
|
aSize.height += difference;
|
||||||
|
[window setMaxSize: aSize];
|
||||||
|
}
|
||||||
|
|
||||||
contentRect.size.height += difference;
|
contentRect.size.height += difference;
|
||||||
|
windowFrame = [object_getClass(self)
|
||||||
|
frameRectForContentRect: contentRect
|
||||||
|
styleMask: [window styleMask]];
|
||||||
|
|
||||||
|
// Set the local frame without changing the contents view
|
||||||
|
windowContentFrame = windowFrame;
|
||||||
|
windowContentFrame.origin = NSZeroPoint;
|
||||||
|
_autoresizes_subviews = NO;
|
||||||
|
[super setFrame: windowContentFrame];
|
||||||
|
|
||||||
// Keep the top of the window at the same place
|
// Keep the top of the window at the same place
|
||||||
orgWindowFrame = [window frame];
|
orgWindowFrame = [window frame];
|
||||||
windowFrame = orgWindowFrame;
|
|
||||||
windowFrame.origin.y = orgWindowFrame.origin.y + orgWindowFrame.size.height - windowFrame.size.height;
|
windowFrame.origin.y = orgWindowFrame.origin.y + orgWindowFrame.size.height - windowFrame.size.height;
|
||||||
windowFrame.origin.x = orgWindowFrame.origin.x;
|
windowFrame.origin.x = orgWindowFrame.origin.x;
|
||||||
windowFrame.size.height += difference;
|
|
||||||
|
// then resize the window
|
||||||
[window setFrame: windowFrame display: YES];
|
[window setFrame: windowFrame display: YES];
|
||||||
|
[self layout];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Special setFrame: implementation - a minimal autoresize mechanism
|
* Special setFrame: implementation - a minimal autoresize mechanism
|
||||||
|
|
Loading…
Reference in a new issue