diff --git a/ChangeLog b/ChangeLog index 6f92a8015..4cee30e93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-11-05 Adam Fedor + + * Source/NSScreen.m (+mainScreen): Make the mainScreen a shared + instance. + + * Source/NSClipView.m (-setBoundsOrigin:): If our documentView is + focused, translate the PS context to the new bounds. + 2000-11-05 Fred Kiefer * Headers/gnustep/gui/NSClipView.h: diff --git a/Source/NSClipView.m b/Source/NSClipView.m index f8b7adbf3..70e244ba3 100644 --- a/Source/NSClipView.m +++ b/Source/NSClipView.m @@ -33,6 +33,7 @@ #include #include #include +#include @implementation NSClipView @@ -213,6 +214,9 @@ [self convertRect: newBounds toView: _documentView]]; } + if ([NSView focusView] == _documentView) + PStranslate(NSMinX(originalBounds)-point.x, NSMinY(originalBounds)-point.y); + [_super_view reflectScrolledClipView: self]; } diff --git a/Source/NSScreen.m b/Source/NSScreen.m index 8046802eb..80e3c4a01 100644 --- a/Source/NSScreen.m +++ b/Source/NSScreen.m @@ -247,11 +247,14 @@ _screenNumbers(int *count) } } +static NSScreen *mainScreen = nil; + // Creating NSScreen Instances + (NSScreen*) mainScreen { int *windows = 0, count; - NSScreen *mainScreen = nil; + if (mainScreen) + return mainScreen; // Initialize the window list. windows = _screenNumbers(&count); @@ -264,7 +267,7 @@ _screenNumbers(int *count) mainScreen = [[NSScreen alloc] _initWithScreenNumber: windows[0]]; NSZoneFree(NSDefaultMallocZone(), windows); // free the list - return AUTORELEASE(mainScreen); + return mainScreen; } + (NSScreen*) deepestScreen