mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 18:50:48 +00:00
Corrected handling of screen size for menu.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@21339 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
e4223431fd
commit
9013e6e466
2 changed files with 24 additions and 20 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,6 +1,14 @@
|
||||||
|
2005-06-22 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
|
* Source/NSMenu.m (-setGeometry): Use [NSWindow
|
||||||
|
setFrameFromString:] when possible to position the menu windows
|
||||||
|
relative to the screen size.
|
||||||
|
(-isPartlyOffScreen_OFFSCREEN, -setGeometry, -shiftOnScreen) Use
|
||||||
|
current screen and visibleFrame of screen instead of frame.
|
||||||
|
|
||||||
2005-06-18 Fred Kiefer <FredKiefer@gmx.de>
|
2005-06-18 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
* Source/NSColor.m(+colorFromString:): Make sure the scanner is
|
* Source/NSColor.m (+colorFromString:): Make sure the scanner is
|
||||||
always released. Fixes bug reported by Benhur Stein
|
always released. Fixes bug reported by Benhur Stein
|
||||||
<benhur.stein@gmail.com>.
|
<benhur.stein@gmail.com>.
|
||||||
|
|
||||||
|
|
|
@ -1157,9 +1157,6 @@ static NSNotificationCenter *nc;
|
||||||
|
|
||||||
@implementation NSMenu (GNUstepExtra)
|
@implementation NSMenu (GNUstepExtra)
|
||||||
|
|
||||||
#define IS_OFFSCREEN(WINDOW) \
|
|
||||||
!(NSContainsRect([[NSScreen mainScreen] frame], [WINDOW frame]))
|
|
||||||
|
|
||||||
- (void) setTornOff: (BOOL)flag
|
- (void) setTornOff: (BOOL)flag
|
||||||
{
|
{
|
||||||
NSMenu *supermenu;
|
NSMenu *supermenu;
|
||||||
|
@ -1224,7 +1221,10 @@ static NSNotificationCenter *nc;
|
||||||
|
|
||||||
- (BOOL) isPartlyOffScreen
|
- (BOOL) isPartlyOffScreen
|
||||||
{
|
{
|
||||||
return IS_OFFSCREEN ([self window]);
|
NSWindow *window;
|
||||||
|
|
||||||
|
window = [self window];
|
||||||
|
return !NSContainsRect([[window screen] visibleFrame], [window frame]);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) _performMenuClose: (id)sender
|
- (void) _performMenuClose: (id)sender
|
||||||
|
@ -1326,19 +1326,14 @@ static NSNotificationCenter *nc;
|
||||||
- (void) setGeometry
|
- (void) setGeometry
|
||||||
{
|
{
|
||||||
NSString *key;
|
NSString *key;
|
||||||
NSUserDefaults *defaults;
|
|
||||||
NSDictionary *menuLocations;
|
|
||||||
NSString *location;
|
|
||||||
|
|
||||||
NSPoint origin;
|
NSPoint origin;
|
||||||
NSScanner *scanner;
|
|
||||||
int value;
|
|
||||||
|
|
||||||
origin = NSMakePoint (0, [[NSScreen mainScreen] frame].size.height
|
|
||||||
- [_aWindow frame].size.height);
|
|
||||||
|
|
||||||
if (nil != (key = [self _locationKey]))
|
if (nil != (key = [self _locationKey]))
|
||||||
{
|
{
|
||||||
|
NSUserDefaults *defaults;
|
||||||
|
NSDictionary *menuLocations;
|
||||||
|
NSString *location;
|
||||||
|
|
||||||
defaults = [NSUserDefaults standardUserDefaults];
|
defaults = [NSUserDefaults standardUserDefaults];
|
||||||
menuLocations = [defaults objectForKey: NSMenuLocationsKey];
|
menuLocations = [defaults objectForKey: NSMenuLocationsKey];
|
||||||
|
|
||||||
|
@ -1349,14 +1344,15 @@ static NSNotificationCenter *nc;
|
||||||
|
|
||||||
if (location && [location isKindOfClass: [NSString class]])
|
if (location && [location isKindOfClass: [NSString class]])
|
||||||
{
|
{
|
||||||
scanner = [NSScanner scannerWithString: location];
|
[_aWindow setFrameFromString: location];
|
||||||
[scanner scanInt: &value];
|
[_bWindow setFrameFromString: location];
|
||||||
origin.x = value;
|
return;
|
||||||
[scanner scanInt: &value];
|
|
||||||
origin.y = value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
origin = NSMakePoint(0, [[_aWindow screen] visibleFrame].size.height
|
||||||
|
- [_aWindow frame].size.height);
|
||||||
|
|
||||||
[_aWindow setFrameOrigin: origin];
|
[_aWindow setFrameOrigin: origin];
|
||||||
[_bWindow setFrameOrigin: origin];
|
[_bWindow setFrameOrigin: origin];
|
||||||
}
|
}
|
||||||
|
@ -1479,7 +1475,7 @@ static NSNotificationCenter *nc;
|
||||||
{
|
{
|
||||||
NSWindow *theWindow = _transient ? _bWindow : _aWindow;
|
NSWindow *theWindow = _transient ? _bWindow : _aWindow;
|
||||||
NSRect frameRect = [theWindow frame];
|
NSRect frameRect = [theWindow frame];
|
||||||
NSRect screenRect = [[NSScreen mainScreen] frame];
|
NSRect screenRect = [[theWindow screen] visibleFrame];
|
||||||
NSPoint vector = {0.0, 0.0};
|
NSPoint vector = {0.0, 0.0};
|
||||||
BOOL moveIt = NO;
|
BOOL moveIt = NO;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue