From 648dc6e86cf8eb9a4d4789054ef56bda4f26f4fd Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 19 Aug 2013 21:37:43 +0100 Subject: [PATCH] New: Edit > Delete menu item support for text fields. This menu item deletes the current selection if there is one. Refs #1964. --- AppKit/CPTextField.j | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 2c4502304..c7d5aa1bf 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -1531,6 +1531,29 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); #endif } +- (void)delete:(id)sender +{ + if (!([self isEnabled] && [self isEditable])) + return; + + // delete: only works when there's a selection (as opposed to deleteForward: and deleteBackward:). + var selectedRange = [self selectedRange]; + + if (selectedRange.length < 1) + return; + + var newValue = [_stringValue stringByReplacingCharactersInRange:selectedRange withString:""]; + + [self setStringValue:newValue]; + [self setSelectedRange:CPMakeRange(selectedRange.location, 0)]; + [self _didEdit]; + +#if PLATFORM(DOM) + // Since we just performed the deletion manually, we don't need the browser to do anything else. + [[[self window] platformWindow] _propagateCurrentDOMEvent:NO]; +#endif +} + #pragma mark Setting the Delegate - (void)setDelegate:(id)aDelegate