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
-~----------~----~----~----~------~----~------~--~---