Changeset 1415 for trunk/src/org/expeditee/gio
- Timestamp:
- 07/24/19 11:23:45 (5 years ago)
- Location:
- trunk/src/org/expeditee/gio
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/gio/InputManager.java
r1164 r1415 306 306 protected final void distributeInputEvent(InputEvent event) 307 307 { 308 // if (event instanceof KBMInputEvent) { 309 // KBMInputEvent kEvent = (KBMInputEvent) event; 310 // if (kEvent.getKeyDown() != null) { 311 // System.err.println("distributeInputEvent:::" + kEvent.toString()); 312 // } 313 // } 314 308 315 // Allow listeners to optionally consume input before gesture translation 309 316 for (InputEventListener listener : _inputEventListeners) { -
trunk/src/org/expeditee/gio/TextLayoutManager.java
r1150 r1415 68 68 public float getLineWidth(Point p, Line[] lines) 69 69 { 70 float width = Float.MAX_VALUE;70 float width = (float) Integer.MAX_VALUE; 71 71 for(Line l : lines) { 72 72 // check for lines that cross over our y -
trunk/src/org/expeditee/gio/gesture/ExpediteeKBMGestureTranslator.java
r1413 r1415 7 7 import org.expeditee.gio.EcosystemManager; 8 8 import org.expeditee.gio.TimeoutQueue.TimeoutHandle; 9 import org.expeditee.gio.gesture.Gesture.GestureType; 9 10 import org.expeditee.gio.gesture.StandardGestureActions.StandardGestureType; 10 11 import org.expeditee.gio.gesture.data.ChangeColourGestureData; … … 100 101 return null; 101 102 } 103 102 104 //System.err.println("ExpediteeKBMGestureTranslator::" + details() + ": " + kbmEvent.getCharTyped()); 103 105 // Generate a INSERT_STRING gesture … … 130 132 addTranslator(new InputEventToGestureTranslator(InputType.KBM) 131 133 { 132 private static final int NO_CONSTRAINT = 0;134 //private static final int NO_CONSTRAINT = 0; 133 135 private SelectAreaGestureData _draggedFromData = null; 134 private int _constrainedDirection = NO_CONSTRAINT;136 //private int _constrainedDirection = NO_CONSTRAINT; 135 137 136 138 @Override … … 210 212 newMousePos.add(1, 1); 211 213 } else*/ { 212 _constrainedDirection = NO_CONSTRAINT;214 //_constrainedDirection = NO_CONSTRAINT; 213 215 newMousePos = kbmEvent.getMouseMove().getSecondEnd().clone(); 214 216 } … … 682 684 683 685 // Add the F10 -> TOGGLE_XRAY_MODE gesture recogniser 684 addTranslator(new InputEventToGestureTranslator(InputType.KBM) 685 {686 addTranslator(new InputEventToGestureTranslator(InputType.KBM) { 687 686 688 @Override 687 689 public String details() { return "F10 -> TOGGLE_XRAY_MODE"; } 688 689 @Override 690 public List<Gesture> onInputEvent(InputEvent event) { 691 // Cast to keyboard/mouse event 692 KBMInputEvent kbmEvent = (KBMInputEvent) event; 693 690 691 @Override 692 public List<Gesture> onInputEvent(InputEvent event) { 693 // Cast to keyboard/mouse event 694 KBMInputEvent kbmEvent = (KBMInputEvent) event; 695 694 696 // Must be pressing F10 to xray mode 695 if (kbmEvent.getKeyDown() != KBMInputEvent.Key.F10) { 696 return null; 697 } 698 699 // Return the gesture 700 if (kbmTranslator.isKeyDown(Key.SHIFT)) { 701 UndoGestureData data = new UndoGestureData(kbmTranslator.isKeyDown(Key.CTRL)); 702 return Gesture.single(StandardGestureActions.getInstance().gestureType(StandardGestureType.TOGGLE_SURROGATE_MODE), data); 703 } else { 704 return Gesture.single(StandardGestureActions.getInstance().gestureType(StandardGestureType.TOGGLE_XRAY_MODE), null); 705 } 697 if (kbmEvent.getKeyDown() != KBMInputEvent.Key.F10 || kbmTranslator.isKeyDown(Key.SHIFT)) { 698 return null; 699 } 700 701 return Gesture.single(StandardGestureActions.getInstance().gestureType(StandardGestureType.TOGGLE_XRAY_MODE), null); 702 } 703 }); 704 705 // Add the F10 -> CYCLE_SURROGATE_MODE gesture recogniser 706 addTranslator(new InputEventToGestureTranslator(InputType.KBM) { 707 @Override 708 public String details() { return "F10 -> CYCLE_SURROGATE_MODE"; } 709 710 @Override 711 public List<Gesture> onInputEvent(InputEvent event) { 712 // Case to keyboard/mouse event 713 KBMInputEvent kbmEvent = (KBMInputEvent) event; 714 715 // Must be pressing F10 to surrogate mode 716 if (kbmEvent.getKeyDown() != KBMInputEvent.Key.F10 || !kbmTranslator.isKeyDown(Key.SHIFT)) { 717 return null; 718 } 719 720 UndoGestureData data = new UndoGestureData(kbmTranslator.isKeyDown(Key.CTRL)); 721 return Gesture.single(StandardGestureActions.getInstance().gestureType(StandardGestureType.CYCLE_SURROGATE_MODE), data); 706 722 } 707 723 }); … … 2190 2206 return Gesture.single(vFormat); 2191 2207 } 2208 } 2209 }); 2210 2211 // Add the ENTER_CHAR_TYPED -> ACTIVATE BUTTON -> FORMAT gesture recogniser 2212 addTranslator(new InputEventToGestureTranslator(InputType.KBM) 2213 { 2214 @Override 2215 public String details() { return "ENTER_CHAR_TYPED -> ACTIVATE BUTTON"; } 2216 2217 @Override 2218 public List<Gesture> onInputEvent(InputEvent event) { 2219 // Cast to keyboard/mouse event 2220 KBMInputEvent kbmEvent = (KBMInputEvent) event; 2221 2222 if (kbmEvent.getKeyDown() != Key.ENTER) { 2223 return null; 2224 } 2225 2226 GestureType gestureType = StandardGestureActions.getInstance().gestureType(StandardGestureType.ACTIVATE_BUTTON); 2227 ItemSpecificGestureData data = new ClickGestureData(false); 2228 return Gesture.single(gestureType, data); 2192 2229 } 2193 2230 }); -
trunk/src/org/expeditee/gio/gesture/StandardGestureActions.java
r1413 r1415 54 54 import org.expeditee.gui.FreeItems; 55 55 import org.expeditee.gui.MessageBay; 56 import org.expeditee.gui.ItemsList; 56 57 import org.expeditee.gui.Vector; 57 58 import org.expeditee.io.ExpClipReader; … … 123 124 TOGGLE_ITEMS_MARK, // Show/hide the little circle indicating the item has a link and/or action 124 125 TOGGLE_XRAY_MODE, // F10 125 TOGGLE_SURROGATE_MODE, // Shift + F10126 CYCLE_SURROGATE_MODE, // Shift + F10 126 127 UNDO, 127 ZOOM 128 ZOOM, 129 ACTIVATE_BUTTON // Enter while over Item with _acceptsKeyboardEnter set to true 128 130 } 129 131 //@formatter:on … … 420 422 public void exec(Gesture gesture) { 421 423 InsertStringGestureData data = (InsertStringGestureData) gesture.getData(); 422 for (char c : data.getString().toCharArray()) { 424 425 Item currentItem = data.getCurrentItem(); 426 char[] charArray = data.getString().toCharArray(); 427 428 if (currentItem != null) { 429 // If we are over a item taht accepts keyboard enter and the only 430 // character being entered is the enter key then we do not insert it. 431 boolean keyboardEnter = data.getCurrentItem().acceptsKeyboardEnter(); 432 if (keyboardEnter && charArray.length == 1 && charArray[0] == (char) 10) { 433 return; 434 } 435 } 436 437 for (char c : charArray) { 423 438 processChar(c, data.isShiftDown()); 424 439 } … … 967 982 }); 968 983 969 setGestureAction(gestureType(StandardGestureType.TOGGLE_SURROGATE_MODE), new GestureAction() { 984 // Set the ACTIVATE BUTTON action 985 setGestureAction(gestureType(StandardGestureType.ACTIVATE_BUTTON), new GestureAction() { 986 @Override 987 public void exec(Gesture gesture) { 988 ItemSpecificGestureData data = (ItemSpecificGestureData) gesture.getData(); 989 if (data.getCurrentItem().acceptsKeyboardEnter()) { 990 getGestureAction(Gesture.GestureType.get("CLICK")).exec(gesture); 991 } 992 } 993 }); 994 995 setGestureAction(gestureType(StandardGestureType.CYCLE_SURROGATE_MODE), new GestureAction() { 970 996 @Override 971 997 public void exec(Gesture gesture) { … … 1745 1771 if (_lastHoldsHighlight) { 1746 1772 _lastHoldsHighlight = false; 1747 for (Item i : DisplayController.getCurrentFrame().get Items()) {1773 for (Item i : DisplayController.getCurrentFrame().getSortedItems()) { 1748 1774 if (i.isHighlighted() && i != on) { 1749 1775 FrameGraphics.changeHighlightMode(i, Item.HighlightMode.None); … … 1824 1850 1825 1851 if (checkEnclosure) { 1826 ItemUtils.EnclosedCheck(toAnchor.getParentOrCurrentFrame().get Items());1852 ItemUtils.EnclosedCheck(toAnchor.getParentOrCurrentFrame().getSortedItems()); 1827 1853 DisplayController.requestRefresh(true); 1828 1854 } … … 1936 1962 } 1937 1963 } else if (!toUndo.contains(i)) { 1938 if (addToUndo) 1939 { 1964 if (addToUndo) { 1940 1965 toUndo.add(i); // Why was is this a copy 1941 1966 } … … 1951 1976 // the current frame as well as the overlay frame 1952 1977 Frame currentFrame = DisplayController.getCurrentFrame(); 1953 currentFrame.addToUndoDelete( itemList);1978 currentFrame.addToUndoDelete(new ItemsList(itemList)); 1954 1979 itemList.clear(); 1955 1980 if (bReparse) { … … 3268 3293 SessionStats.DeletedItems(toUndo); 3269 3294 if (parent != null) { 3270 parent.addToUndoDelete( toUndo);3295 parent.addToUndoDelete(new ItemsList(toUndo)); 3271 3296 parent.removeAllItems(toUndo); // toDelete.getConnected() 3272 3297 } … … 3610 3635 DisplayController.setCursorPosition(toDisconnect.getPosition(), false); 3611 3636 pickup(newPoint); 3612 ItemUtils.EnclosedCheck(toDisconnect.getParentOrCurrentFrame().get Items());3637 ItemUtils.EnclosedCheck(toDisconnect.getParentOrCurrentFrame().getSortedItems()); 3613 3638 } 3614 3639 } … … 3926 3951 mergee.getParent().setChanged(true); 3927 3952 3928 ItemUtils.EnclosedCheck(mergee.getParent().get Items());3953 ItemUtils.EnclosedCheck(mergee.getParent().getSortedItems()); 3929 3954 // Mike: Why does parse frame have to be called?!? 3930 3955 FrameUtils.Parse(mergee.getParent()); … … 4386 4411 int mouseY = position.getY(); 4387 4412 // System.out.println(mouseX + "," + mouseY); 4388 for (Item i : DisplayController.getCurrentFrame().get Items()) {4413 for (Item i : DisplayController.getCurrentFrame().getSortedItems()) { 4389 4414 // System.out.println(i.getName().toString()); 4390 4415 if (i instanceof Text) { -
trunk/src/org/expeditee/gio/input/InputEventToGestureTranslatorSet.java
r1127 r1415 57 57 if (_recognisers.isEmpty()) 58 58 return null; 59 60 // if (event instanceof KBMInputEvent) { 61 // KBMInputEvent kEvent = (KBMInputEvent) event; 62 // if (kEvent.getKeyDown() != null) { 63 // System.err.println("onInputEvent:::" + kEvent.toString()); 64 // } 65 // } 59 66 60 67 // Only interested in monitored events -
trunk/src/org/expeditee/gio/input/KBMInputEvent.java
r1097 r1415 37 37 BACKSPACE, 38 38 TAB, 39 ENTER, 39 40 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z 40 41 } -
trunk/src/org/expeditee/gio/input/StandardInputEventListeners.java
r1097 r1415 52 52 53 53 @Override 54 public boolean onInputEvent(InputEvent event) 55 { 54 public boolean onInputEvent(InputEvent event) { 56 55 // Only interested in keyboard/mouse events 57 56 if (event.getInputType() != InputType.KBM) return false; … … 77 76 } 78 77 79 public boolean isKeyDown(Key key) 80 { 78 public boolean isKeyDown(Key key) { 81 79 return (key != null) && (_keyState[key.ordinal()] == Boolean.TRUE); 82 80 } 83 81 84 public boolean isMouseButtonDown(MouseButton button) 85 { 82 public boolean isMouseButtonDown(MouseButton button) { 86 83 return (button != null) && (_mouseState[button.ordinal()] == Boolean.TRUE); 87 84 } 88 85 89 public boolean isOnlyMouseButtonDown(MouseButton button) 90 { 86 public boolean isOnlyMouseButtonDown(MouseButton button) { 91 87 if (button == null) return false; 92 88 … … 98 94 } 99 95 100 public boolean isAnyMouseButtonDown() 101 { 96 public boolean isAnyMouseButtonDown() { 102 97 for (MouseButton button : MouseButton.values()) { 103 98 if (isMouseButtonDown(button)) return true; -
trunk/src/org/expeditee/gio/javafx/JavaFXConversions.java
r1144 r1415 137 137 case Y: return org.expeditee.gio.input.KBMInputEvent.Key.Y; 138 138 case Z: return org.expeditee.gio.input.KBMInputEvent.Key.Z; 139 case ENTER: return org.expeditee.gio.input.KBMInputEvent.Key.ENTER; 139 140 default: return null; 140 141 } -
trunk/src/org/expeditee/gio/swing/SwingConversions.java
r1144 r1415 350 350 case java.awt.event.KeyEvent.VK_Y: return org.expeditee.gio.input.KBMInputEvent.Key.Y; 351 351 case java.awt.event.KeyEvent.VK_Z: return org.expeditee.gio.input.KBMInputEvent.Key.Z; 352 case java.awt.event.KeyEvent.VK_ENTER: return org.expeditee.gio.input.KBMInputEvent.Key.ENTER; 352 353 default: return null; 353 354 } -
trunk/src/org/expeditee/gio/swing/SwingInputManager.java
r1248 r1415 4 4 import java.awt.Color; 5 5 import java.awt.Dimension; 6 import java.awt.KeyEventDispatcher; 7 import java.awt.KeyboardFocusManager; 6 8 import java.awt.MouseInfo; 7 9 import java.awt.Robot; … … 33 35 import org.expeditee.gio.input.InputEvent.InputType; 34 36 import org.expeditee.gio.input.KBMInputEvent; 37 import org.expeditee.gio.input.KBMInputEvent.Key; 38 import org.expeditee.gio.input.StandardInputEventListeners; 35 39 import org.expeditee.gui.Popup; 36 40 import org.expeditee.gui.PopupManager; … … 38 42 39 43 public class SwingInputManager extends InputManager implements ComponentListener, WindowListener, WindowStateListener, 40 KeyListener, MouseListener, MouseMotionListener, MouseWheelListener {44 KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, KeyEventDispatcher { 41 45 /** Singleton instance. */ 42 46 private static SwingInputManager _instance; … … 73 77 // Sign up to receive input as events 74 78 SwingGraphicsManager graphicsManager = SwingMiscManager.getIfUsingSwingGraphicsManager(); 75 if (graphicsManager != null) { 79 if (graphicsManager != null) { 76 80 graphicsManager.addWindowListener(swingInputManager); 77 81 graphicsManager.addWindowStateListener(swingInputManager); … … 91 95 graphicsManager.getGlassPane().setVisible(true); 92 96 graphicsManager.getContentPane().setBackground(Color.WHITE); 93 graphicsManager.getContentPane().setFocusTraversalKeysEnabled(false);94 }97 } 98 graphicsManager.getContentPane().setFocusTraversalKeysEnabled(false); 95 99 96 100 // Set up the robot (for controlling the mouse) … … 111 115 }); 112 116 _timer.setRepeats(false); 117 118 // AWTEventListener[] listeners = Toolkit.getDefaultToolkit().getAWTEventListeners(); 119 // for (AWTEventListener listener: listeners) { 120 // System.err.println(listener); 121 // F10FriendlyKeyboardFocusManager keyboardManager = new F10FriendlyKeyboardFocusManager(listener); 122 // KeyboardFocusManager.setCurrentKeyboardFocusManager(keyboardManager); 123 // } 124 // 125 // F10FriendlyKeyboardFocusManager keyboardManager = new F10FriendlyKeyboardFocusManager(this); 126 // KeyboardFocusManager.setCurrentKeyboardFocusManager(keyboardManager); 127 128 KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this); 113 129 } 114 130 … … 222 238 @Override 223 239 public void mouseWheelMoved(MouseWheelEvent e) { 240 //ensureShiftAltStateCorrect(e); 224 241 // Give widgets first whack at input 225 242 distributeNativeInput(e); … … 247 264 @Override 248 265 public void mouseMoved(MouseEvent e) { 266 //ensureShiftAltStateCorrect(e); 267 249 268 // Update the cursor position 250 269 updateCursorPosition(e.getX(), e.getY()); … … 271 290 @Override 272 291 public void mouseClicked(MouseEvent e) { 292 //ensureShiftAltStateCorrect(e); 273 293 // Give widgets first whack at input 274 294 distributeNativeInput(e); … … 282 302 @Override 283 303 public void mousePressed(MouseEvent e) { 304 //ensureShiftAltStateCorrect(e); 284 305 mouseAction(e, true); 285 306 } … … 287 308 @Override 288 309 public void mouseReleased(MouseEvent e) { 310 //ensureShiftAltStateCorrect(e); 289 311 mouseAction(e, false); 290 312 } … … 324 346 } catch (Exception exception) { 325 347 System.err.println("SwingInputManager::mouseAction: " + exception.getMessage()); 348 exception.printStackTrace(); 326 349 } 327 350 } … … 349 372 @Override 350 373 public void keyTyped(KeyEvent e) { 351 //System.err.println("SwingInputManager::keyTyped::KeyEvent: " + e.getKeyChar()); 374 //System.err.println("SwingInputManager::keyTyped::" + KeyEvent.getKeyText(e.getKeyCode())); 375 //ensureShiftAltStateCorrect(e); 376 352 377 // Give widgets first whack at input 353 378 distributeNativeInput(e); 354 379 if (e.isConsumed()) { 355 //System.err.println("SwingInputManager::keyTyped::Widget/Popup Consumed KeyEvent"); 356 return; 357 } 358 380 return; 381 } 382 359 383 try { 360 384 // Ignore escape character and control characters … … 376 400 @Override 377 401 public void keyPressed(KeyEvent e) { 402 //System.err.println("SwingInputManager::keyPressed::" + KeyEvent.getKeyText(e.getKeyCode())); 403 //ensureShiftAltStateCorrect(e); 378 404 keyAction(e, true); 379 405 } … … 381 407 @Override 382 408 public void keyReleased(KeyEvent e) { 409 //System.err.println("SwingInputManager::keyReleased::" + KeyEvent.getKeyText(e.getKeyCode())); 383 410 keyAction(e, false); 384 411 } 412 413 // private void ensureShiftAltStateCorrect(java.awt.event.InputEvent inputEvent) { 414 //// Component source = (Component) e.getSource(); 415 //// int id = KeyEvent.KEY_RELEASED; 416 //// long when = System.currentTimeMillis(); 417 //// int keyCode = KeyEvent.VK_UNDEFINED; 418 //// char keyChar = KeyEvent.CHAR_UNDEFINED; 419 // 420 //// int modifiers = (e.getModifiers() & ~KeyEvent.SHIFT_DOWN_MASK); 421 //// KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 422 //// Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 423 // 424 // boolean shiftIsDownInRecordedState = StandardInputEventListeners.kbmStateListener.isKeyDown(Key.SHIFT); 425 // boolean shiftIsDownEventState = inputEvent.isShiftDown(); 426 // if (shiftIsDownInRecordedState && !shiftIsDownEventState) { 427 // try { 428 // // Create an input event 429 // InputEvent event = new KBMInputEvent(KBMInputEvent.EventType.KEY_UP, KBMInputEvent.Key.SHIFT); 430 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending followup Shift Up"); 431 // 432 // // Translate and perform the input 433 // distributeInputEvent(event); 434 // } catch (Exception exception) { 435 // System.err.println(exception.getMessage()); 436 // } 437 // } 438 439 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::datastructure shift down: " + shiftIsDownInRecordedState); 440 // if (shiftIsDownInRecordedState != e.isShiftDown() && !e.isShiftDown()) { 441 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending shift up event."); 442 // int modifiers = (e.getModifiers() & ~KeyEvent.SHIFT_DOWN_MASK); 443 // KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 444 // Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 445 // } 446 447 // boolean altIsDown = StandardInputEventListeners.kbmStateListener.isKeyDown(Key.ALT); 448 // if (altIsDown != e.isAltDown() && !e.isAltDown()) { 449 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending alt up event."); 450 // int modifiers = (e.getModifiers() & ~KeyEvent.ALT_DOWN_MASK); 451 // KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 452 // Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 453 // } 454 // } 385 455 386 456 /** Handles key pressed/released events. */ 387 457 private void keyAction(KeyEvent e, boolean down) { 388 //System.err.println("SwingInputManager::keyAction::KeyEvent: " + e.getKeyChar());389 458 // Give widgets first whack at input 390 459 distributeNativeInput(e); 391 460 if (e.isConsumed()) { 392 //System.err.println("SwingInputManager::keyAction::Was consumed: " + e.isConsumed()); 393 return; 394 } 395 //System.err.println("SwingInputManager::keyAction::Was consumed: " + e.isConsumed()); 396 461 return; 462 } 463 397 464 KBMInputEvent.Key key = SwingConversions.fromSwingVirtualKey(e.getKeyCode()); 398 465 if (key == null) { 399 466 return; 400 467 } 401 468 402 469 try { 403 470 // Create an input event … … 424 491 /** Forwards the given input event to the listener if it is listening for it. */ 425 492 private void forwardNativeInputToListener(Object listener, java.awt.event.InputEvent event) { 426 //System.err.println("SwingInputManager::forwardNativeInputToListener");427 493 if (listener == null || event == null) { 428 494 return; 429 495 } 430 //System.err.println("SwingInputManager::forwardNativeInputToListener::Recieving input: " + event.toString());496 431 497 if (listener instanceof KeyListener && event instanceof KeyEvent) { 432 498 433 499 KeyListener keyListener = (KeyListener) listener; 434 500 KeyEvent ke = (KeyEvent) event; 435 501 436 502 switch (event.getID()) { 437 503 case KeyEvent.KEY_PRESSED: … … 442 508 return; 443 509 case KeyEvent.KEY_TYPED: 444 //System.err.println("SwingInputManager::forwardNativeInputToListener::Recieving key typed: " + event.toString());445 510 keyListener.keyTyped(ke); 446 511 return; … … 632 697 633 698 } 699 700 @Override 701 public boolean dispatchKeyEvent(KeyEvent e) { 702 if (e.getKeyCode() == KeyEvent.VK_F10) { 703 if (KeyEvent.KEY_PRESSED == e.getID()) { 704 keyPressed(e); 705 } else if (KeyEvent.KEY_RELEASED == e.getID()) { 706 keyReleased(e); 707 } else if (KeyEvent.KEY_TYPED == e.getID()) { 708 keyTyped(e); 709 } else { 710 System.err.println("SwingInputManager::dispatchKeyEvent::Found Key that is not pressed, " 711 + "released or typed. What is it? " + e.getID()); 712 } 713 return true; 714 } 715 return false; 716 } 634 717 } -
trunk/src/org/expeditee/gio/swing/SwingTextLayoutManager.java
r1206 r1415 262 262 } 263 263 264 java.awt.font.TextLayout layout = lineBreaker.nextLayout(width, end, dontBreakWords); 264 java.awt.font.TextLayout layout = null; 265 266 try { 267 layout = lineBreaker.nextLayout(width, end, dontBreakWords); 268 } catch (ArrayIndexOutOfBoundsException e) { 269 e.printStackTrace(); 270 } 265 271 266 272 // If it's impossible to layout any more text without breaking a word, just do it
Note:
See TracChangeset
for help on using the changeset viewer.