Ticket #7674: backward-kill-word-and-backward-word.diff
File backward-kill-word-and-backward-word.diff, 1.5 KB (added by , 13 years ago) |
---|
-
src/kits/interface/TextView.cpp
3271 3271 void 3272 3272 BTextView::_HandleBackspace() 3273 3273 { 3274 int32 modifiers = 0; 3275 BMessage *message = Window()->CurrentMessage(); 3276 if (message != NULL) 3277 message->FindInt32("modifiers", &modifiers); 3278 3279 bool optDown = modifiers & B_OPTION_KEY; 3280 3274 3281 if (fUndo) { 3275 3282 TypingUndoBuffer *undoBuffer = dynamic_cast<TypingUndoBuffer*>( 3276 3283 fUndo); … … 3284 3291 if (fSelStart == fSelEnd) { 3285 3292 if (fSelStart == 0) 3286 3293 return; 3294 else if (optDown) 3295 fSelStart = _PreviousWordStart(fSelStart); 3287 3296 else 3288 3297 fSelStart = _PreviousInitialByte(fSelStart); 3289 3298 } else … … 3315 3324 message->FindInt32("modifiers", &modifiers); 3316 3325 3317 3326 bool shiftDown = modifiers & B_SHIFT_KEY; 3318 bool ctrlDown = modifiers & B_CONTROL_KEY;3327 bool optDown = modifiers & B_OPTION_KEY; 3319 3328 3320 3329 int32 lastClickOffset = fCaretOffset; 3321 3330 switch (inArrowKey) { … … 3326 3335 fCaretOffset = fSelStart; 3327 3336 else { 3328 3337 fCaretOffset 3329 = ctrlDown3338 = optDown 3330 3339 ? _PreviousWordStart(fCaretOffset - 1) 3331 3340 : _PreviousInitialByte(fCaretOffset); 3332 3341 if (shiftDown && fCaretOffset != lastClickOffset) { … … 3352 3361 fCaretOffset = fSelEnd; 3353 3362 else { 3354 3363 fCaretOffset 3355 = ctrlDown3364 = optDown 3356 3365 ? _NextWordEnd(fCaretOffset) 3357 3366 : _NextInitialByte(fCaretOffset); 3358 3367 if (shiftDown && fCaretOffset != lastClickOffset) {