Ticket #7674: backward-kill-word-and-backward-word.diff

File backward-kill-word-and-backward-word.diff, 1.5 KB (added by GeneralMaximus, 13 years ago)
  • src/kits/interface/TextView.cpp

     
    32713271void
    32723272BTextView::_HandleBackspace()
    32733273{
     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   
    32743281    if (fUndo) {
    32753282        TypingUndoBuffer *undoBuffer = dynamic_cast<TypingUndoBuffer*>(
    32763283            fUndo);
     
    32843291    if (fSelStart == fSelEnd) {
    32853292        if (fSelStart == 0)
    32863293            return;
     3294        else if (optDown)
     3295            fSelStart = _PreviousWordStart(fSelStart);
    32873296        else
    32883297            fSelStart = _PreviousInitialByte(fSelStart);
    32893298    } else
     
    33153324        message->FindInt32("modifiers", &modifiers);
    33163325
    33173326    bool shiftDown = modifiers & B_SHIFT_KEY;
    3318     bool ctrlDown = modifiers & B_CONTROL_KEY;
     3327    bool optDown = modifiers & B_OPTION_KEY;
    33193328
    33203329    int32 lastClickOffset = fCaretOffset;
    33213330    switch (inArrowKey) {
     
    33263335                fCaretOffset = fSelStart;
    33273336            else {
    33283337                fCaretOffset
    3329                     = ctrlDown
     3338                    = optDown
    33303339                        ? _PreviousWordStart(fCaretOffset - 1)
    33313340                        : _PreviousInitialByte(fCaretOffset);
    33323341                if (shiftDown && fCaretOffset != lastClickOffset) {
     
    33523361                fCaretOffset = fSelEnd;
    33533362            else {
    33543363                fCaretOffset
    3355                     = ctrlDown
     3364                    = optDown
    33563365                        ? _NextWordEnd(fCaretOffset)
    33573366                        : _NextInitialByte(fCaretOffset);
    33583367                if (shiftDown && fCaretOffset != lastClickOffset) {