diff --git a/ChangeLog b/ChangeLog index 1e2f07d53..66fae9242 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2005-05-20 Fred Kiefer + + * Headers/AppKit/NSResponder.h: Added new MacOSX methods. + * Source/NSResponder.m (-encodeWithCoder:, initWithCoder:) Handle + NSNextResponder for keyed encoding. + * Source/NSResponder.m + * Source/NSApplication.m + * Source/NSWindow.m + * Source/NSView.m + * Source/NSControl.m: + Implemented shouldBeTreatedAsInkEvent:. + 2005-05-19 Fred Kiefer * Source/NSImageCell.m (-setObjectValue:) Nil parameter now unsets diff --git a/Headers/AppKit/NSResponder.h b/Headers/AppKit/NSResponder.h index 948a7a75a..91462e33a 100644 --- a/Headers/AppKit/NSResponder.h +++ b/Headers/AppKit/NSResponder.h @@ -169,6 +169,8 @@ */ - (NSInterfaceStyle) interfaceStyle; - (void) setInterfaceStyle: (NSInterfaceStyle)aStyle; + +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent; #endif @end @@ -232,6 +234,13 @@ - (void) transposeWords: (id)sender; - (void) uppercaseWord: (id)sender; - (void) yank: (id)sender; + +// New in MacOSX 10.3 +- (void) cancelOperation: (id)sender; +- (void) deleteBackwardByDecomposingPreviousCharacter: (id)sender; +- (void) moveLeftAndModifySelection: (id)sender; +- (void) moveRightAndModifySelection: (id)sender; + @end #endif diff --git a/Source/NSApplication.m b/Source/NSApplication.m index 0ba3526e1..b97ff6e8c 100644 --- a/Source/NSApplication.m +++ b/Source/NSApplication.m @@ -1633,6 +1633,11 @@ See -runModalForWindow: return _current_event; } +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent +{ + return [[theEvent window] shouldBeTreatedAsInkEvent: theEvent]; +} + - (void) discardEventsMatchingMask: (unsigned int)mask beforeEvent: (NSEvent *)lastEvent { diff --git a/Source/NSControl.m b/Source/NSControl.m index 7475e1921..7cbf465b8 100644 --- a/Source/NSControl.m +++ b/Source/NSControl.m @@ -687,6 +687,11 @@ static Class actionCellClass; [self sendAction: [self action] to: [self target]]; } +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent +{ + return NO; +} + - (void) resetCursorRects { [_cell resetCursorRect: _bounds inView: self]; diff --git a/Source/NSResponder.m b/Source/NSResponder.m index 08517f4e9..d8ac5d8c4 100644 --- a/Source/NSResponder.m +++ b/Source/NSResponder.m @@ -351,6 +351,11 @@ [aCoder encodeObject: [self menu] forKey: @"NSMenu"]; } + if([self nextResponder] != nil) + { + [aCoder encodeConditionalObject: [self nextResponder] + forKey: @"NSNextResponder"]; + } } else { @@ -375,6 +380,11 @@ { obj = [aDecoder decodeObjectForKey: @"NSMenu"]; } + + if([aDecoder containsValueForKey: @"NSNextResponder"]) + { + [self setNextResponder: [aDecoder decodeObjectForKey: @"NSNextResponder"]]; + } } else { @@ -416,4 +426,10 @@ { return nil; } + +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent +{ + return NO; +} + @end diff --git a/Source/NSView.m b/Source/NSView.m index 318aba544..3667c56e3 100644 --- a/Source/NSView.m +++ b/Source/NSView.m @@ -4247,5 +4247,10 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level) } } +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent +{ + return YES; +} + @end diff --git a/Source/NSWindow.m b/Source/NSWindow.m index 569f2173a..da52d072a 100644 --- a/Source/NSWindow.m +++ b/Source/NSWindow.m @@ -3429,6 +3429,20 @@ resetCursorRectsForView(NSView *theView) } } +- (BOOL) shouldBeTreatedAsInkEvent: (NSEvent *)theEvent +{ + NSView *v; + + v = [_wv hitTest: [theEvent locationInWindow]]; + if (![self isMainWindow]) + { + return (v != _wv); + } + else + { + return [v shouldBeTreatedAsInkEvent: theEvent]; + } +} - (BOOL) tryToPerform: (SEL)anAction with: (id)anObject {