Revision: 532 Author: allain.lalonde Date: Mon Jul 20 19:57:42 2009 Log: Fixed Issue 71; made resulting PStyledText take the camera's scale into account. Also, made right click call stopEditing, so that the input field was always the same size as the resulting text would be, was weird otherwise http://code.google.com/p/piccolo2d/source/detail?r=532
Modified: /piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java ======================================= --- /piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java Fri Jan 23 12:29:37 2009 +++ /piccolo2d.java/trunk/extras/src/main/java/edu/umd/cs/piccolox/event/PStyledTextEventHandler.java Mon Jul 20 19:57:42 2009 @@ -57,6 +57,7 @@ import edu.umd.cs.piccolo.PNode; import edu.umd.cs.piccolo.event.PBasicInputEventHandler; import edu.umd.cs.piccolo.event.PInputEvent; +import edu.umd.cs.piccolo.event.PInputEventFilter; import edu.umd.cs.piccolox.nodes.PStyledText; /** @@ -78,6 +79,9 @@ public PStyledTextEventHandler(PCanvas canvas) { super(); + PInputEventFilter filter = new PInputEventFilter(); + filter.setOrMask(InputEvent.BUTTON1_MASK | InputEvent.BUTTON3_MASK); + this.setEventFilter(filter); this.canvas = canvas; initEditor(createDefaultEditor()); } @@ -166,7 +170,11 @@ public void mousePressed(PInputEvent inputEvent) { PNode pickedNode = inputEvent.getPickedNode(); - stopEditing(); + stopEditing(inputEvent); + + if (inputEvent.getButton() != MouseEvent.BUTTON1) { + return; + } if (pickedNode instanceof PStyledText) { startEditing(inputEvent, (PStyledText) pickedNode); @@ -204,23 +212,26 @@ editedText = text; } - public void stopEditing() { - if (editedText != null) { - editedText.getDocument().removeDocumentListener(docListener); - editedText.setEditing(false); - - if (editedText.getDocument().getLength() == 0) { - editedText.removeFromParent(); - } - else { - editedText.syncWithDocument(); - } - - editor.setVisible(false); - canvas.repaint(); - - editedText = null; - } + public void stopEditing(PInputEvent event) { + if (editedText == null) { + return; + } + + editedText.getDocument().removeDocumentListener(docListener); + editedText.setEditing(false); + + if (editedText.getDocument().getLength() == 0) { + editedText.removeFromParent(); + } + else { + editedText.syncWithDocument(); + } + + editedText.setScale(1.0 / event.getCamera().getViewScale()); + editor.setVisible(false); + canvas.repaint(); + + editedText = null; } public void dispatchEventToEditor(final PInputEvent e) { --~--~---------~--~----~------------~-------~--~----~ Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en -~----------~----~----~----~------~----~------~--~---