Changeset 8681


Ignore:
Timestamp:
03/02/05 01:53:00 (16 years ago)
Author:
piso
Message:

Work in progress: handleKeyEvent(), getKeyMapping()

File:
1 edited

Legend:

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

    r8678 r8681  
    33 *
    44 * Copyright (C) 1998-2005 Peter Graves
    5  * $Id: Editor.java,v 1.137 2005-03-01 21:20:16 piso Exp $
     5 * $Id: Editor.java,v 1.138 2005-03-02 01:53:00 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    24432443            return true;
    24442444        }
     2445        if (requestedKeyMap != null) {
     2446            if (keyChar == 7 && keyCode == 0x47 && modifiers == 2) {
     2447                // Control G
     2448                requestedKeyMap = null;
     2449                prefixKeyStatusText = null;
     2450                status("");
     2451                return false;
     2452            }
     2453        }
    24452454        KeyMapping mapping = getKeyMapping(keyChar, keyCode, modifiers);
    24462455        if (mapping != null) {
     
    24512460            }
    24522461            if (command instanceof String) {
     2462                prefixKeyStatusText = null;
     2463                requestedKeyMap = null;
    24532464                String commandString = (String) command;
    24542465                if (commandString.length() > 0 && commandString.charAt(0) == '(') {
    2455                     // Lisp form.
     2466                    // A Lisp form.
    24562467                    executeCommand(commandString);
    24572468                    return true;
     
    24662477                    catch (NoSuchMethodException e) {}
    24672478                }
     2479            } else if (command instanceof LispObject) {
     2480                prefixKeyStatusText = null;
     2481                requestedKeyMap = null;
     2482                try {
     2483                    LispThread.currentThread().execute(Lisp.coerceToFunction((LispObject)command));
     2484                }
     2485                catch (Throwable t) {
     2486                    Log.error(t);
     2487                }
     2488                return true;
    24682489            } else if (command instanceof KeyMap) {
    2469                 //Log.debug("setting requestedKeyMap to " + command);
    24702490                requestedKeyMap = (KeyMap) command;
    24712491                if (prefixKeyStatusText == null) {
    2472                     prefixKeyStatusText = mapping.getKeyText() + "-";
     2492                    //                     prefixKeyStatusText = mapping.getKeyText() + "-";
     2493                    prefixKeyStatusText = mapping.getKeyText();
    24732494                } else {
    24742495                    prefixKeyStatusText =
    2475                         prefixKeyStatusText + mapping.getKeyText();
    2476                 }
    2477                 status(prefixKeyStatusText);
    2478                 return true;
    2479             } else if (command instanceof LispObject) {
    2480                 try {
    2481                     LispThread.currentThread().execute(Lisp.coerceToFunction((LispObject)command));
    2482                 }
    2483                 catch (Throwable t) {
    2484                     Log.error(t);
    2485                 }
     2496                        prefixKeyStatusText + " " + mapping.getKeyText();
     2497                }
     2498                status(prefixKeyStatusText + "-");
    24862499                return true;
    24872500            }
     
    24952508            KeyMapping mapping =
    24962509                requestedKeyMap.lookup(keyChar, keyCode, modifiers);
    2497             if (mapping != null) {
    2498                 requestedKeyMap = null;
    2499                 prefixKeyStatusText = null;
    2500             } else if (keyChar == 7 && keyCode == 0x47 && modifiers == 2) {
    2501                 // Control G
    2502                 requestedKeyMap = null;
    2503                 prefixKeyStatusText = null;
    2504                 status("");
    2505             }
    25062510            return mapping;
    25072511        }
Note: See TracChangeset for help on using the changeset viewer.