Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1e53a13e

Von Moritz Bunkus vor fast 8 Jahren hinzugefügt

  • ID 1e53a13e510d79fb11fb35d64707dbec5b50eb61
  • Vorgänger 09979fcb
  • Nachfolger 1d8fe39b

CustomerVendorPicker: Taskendrücke auf Shift, Ctrl & Alt ignorieren

Andernfalls wird schon beim Drücken eines der Modifier eine Suche
ausgelöst. Das kann besonders nervig sein, wenn man den Focus vom
Browser wegnimmt:

• Alt+Tab drücken, um zum anderen Fenster zu wechseln
• Schon bei Alt wird eine Suche ausgelöst.
• Durch den Focus-Verlust wird ein Blur-Event ausgelöst.
• Und schon ist der interne Zustand ungültig, und das Element wird rot
dargestellt.

Analoges passiert, wenn man z.B. mit Ctrl+F2 zu einem anderen virtuellen
Desktop wechselt.

Noch schlimmer ist, dass bei Shift+Tab ebenfalls zuerst eine Suche
ausgelöst und anschließend verhindert wird, dass der Focus das Element
verlässt.

Unterschiede anzeigen:

js/autocomplete_customer.js
14 14
      RIGHT:  39,
15 15
      PAGE_UP: 33,
16 16
      PAGE_DOWN: 34,
17
      SHIFT:     16,
18
      CTRL:      17,
19
      ALT:       18,
17 20
    };
18 21
    var CLASSES = {
19 22
      PICKED:       'customer-vendor-picker-picked',
......
132 135
      select: function(event, ui) {
133 136
        set_item(ui.item);
134 137
      },
138
      search: function(event, ui) {
139
        if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT))
140
          event.preventDefault();
141
      }
135 142
    });
136 143
    /*  In case users are impatient and want to skip ahead:
137 144
     *  Capture <enter> key events and check if it's a unique hit.
......
164 171
          });
165 172
          return false;
166 173
        }
167
      } else {
174
      } else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) {
168 175
        state = STATES.UNDEFINED;
169 176
      }
170 177
    });

Auch abrufbar als: Unified diff