Changeset 8707


Ignore:
Timestamp:
03/04/05 19:15:58 (16 years ago)
Author:
piso
Message:

handleJEvent(): refactoring.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/Editor.java

    r8702 r8707  
    33 *
    44 * Copyright (C) 1998-2005 Peter Graves
    5  * $Id: Editor.java,v 1.141 2005-03-04 17:33:45 piso Exp $
     5 * $Id: Editor.java,v 1.142 2005-03-04 19:15:58 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    24352435    private KeyMap requestedKeyMap;
    24362436
    2437     private String prefixKeyStatusText;
     2437    private EventSequence currentEventSequence;
    24382438
    24392439    public boolean handleJEvent(JEvent event)
     
    24512451                // Control G
    24522452                requestedKeyMap = null;
    2453                 prefixKeyStatusText = null;
     2453                currentEventSequence = null;
    24542454                status("");
    24552455                return false;
     
    24572457        }
    24582458        KeyMapping mapping = getKeyMapping(keyChar, keyCode, modifiers);
     2459        if (mapping == null) {
     2460            if (event.getID() == JEvent.KEY_TYPED) {
     2461                // Reset.
     2462                requestedKeyMap = null;
     2463                currentEventSequence = null;
     2464            }
     2465            return false;
     2466        }
    24592467        if (mapping != null) {
    24602468            Object command = mapping.getCommand();
     2469            if (command instanceof KeyMap) {
     2470                // Emacs-style key sequence.
     2471                if (currentEventSequence == null)
     2472                    currentEventSequence = new EventSequence();
     2473                currentEventSequence.addEvent(event);
     2474                Log.debug(String.valueOf(currentEventSequence));
     2475                requestedKeyMap = (KeyMap) command;
     2476                status(currentEventSequence.getStatusText() + "-");
     2477                return true;
     2478            }
    24612479            if (isRecordingMacro()) {
    24622480                if (command != "recordMacro" && command != "playbackMacro")
     
    24642482            }
    24652483            if (command instanceof String) {
    2466                 prefixKeyStatusText = null;
    24672484                requestedKeyMap = null;
     2485                currentEventSequence = null;
    24682486                String commandString = (String) command;
    24692487                if (commandString.length() > 0 && commandString.charAt(0) == '(') {
     
    24822500                }
    24832501            } else if (command instanceof LispObject) {
    2484                 prefixKeyStatusText = null;
    24852502                requestedKeyMap = null;
     2503                currentEventSequence = null;
    24862504                try {
    24872505                    LispThread.currentThread().execute(Lisp.coerceToFunction((LispObject)command));
     
    24902508                    Log.error(t);
    24912509                }
    2492                 return true;
    2493             } else if (command instanceof KeyMap) {
    2494                 requestedKeyMap = (KeyMap) command;
    2495                 if (prefixKeyStatusText == null) {
    2496                     prefixKeyStatusText = mapping.getKeyText();
    2497                 } else {
    2498                     prefixKeyStatusText =
    2499                         prefixKeyStatusText + " " + mapping.getKeyText();
    2500                 }
    2501                 status(prefixKeyStatusText + "-");
    25022510                return true;
    25032511            }
Note: See TracChangeset for help on using the changeset viewer.