Revision: 4039
Author: [email protected]
Date: Mon Dec 13 12:26:24 2010
Log: FIXED BUG 3093 no more exceptions when you right click while dragging a table.
http://code.google.com/p/power-architect/source/detail?r=4039

Modified:
 /trunk/src/main/java/ca/sqlpower/architect/swingui/ContainerPane.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/ContainerPane.java Wed Aug 25 09:10:43 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/ContainerPane.java Mon Dec 13 12:26:24 2010
@@ -228,7 +228,9 @@
                 }
             }

- if (clickItem == ITEM_INDEX_TITLE && !pp.getSession().getArchitectFrame().createRelationshipIsActive()) {
+            if (clickItem == ITEM_INDEX_TITLE &&
+ !pp.getSession().getArchitectFrame().createRelationshipIsActive() &&
+                    evt.getButton() == MouseEvent.BUTTON1) {
                 setupDrag(p);
             }
} else if (evt.getID() == MouseEvent.MOUSE_MOVED || evt.getID() == MouseEvent.MOUSE_DRAGGED) {
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java Tue Dec 7 14:43:10 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/PlayPen.java Mon Dec 13 12:26:24 2010
@@ -2543,18 +2543,23 @@
                public void maybeShowPopup(MouseEvent evt) {
                    Point p = unzoomPoint(evt.getPoint());
                    PlayPenComponent c = contentPane.getComponentAt(p);
-                   if (c != null) {
-                       p.translate(-c.getX(), -c.getY());
-                       if (evt.isPopupTrigger() && !evt.isConsumed()) {
-                           c.showPopup(p);
-                       }
-                   } else {
-                       if (evt.isPopupTrigger() && popupFactory != null) {
-                           JPanel pp = (JPanel) evt.getSource();
- //XXX we should let popupfactory to produce playpencomponent popup as well
-                           JPopupMenu popup = 
popupFactory.createPopupMenu(null);
-                           popup.show(pp, evt.getX(), evt.getY());
-                       }
+                   if(!mouseMode.equals(MouseModeType.CREATING_RELATIONSHIP) &&
+                           mouseMode.equals(MouseModeType.CREATING_TABLE)) {
+                   if (c != null) {
+                       if(!c.isBeingDragged()) {
+                               p.translate(-c.getX(), -c.getY());
+                               if (evt.isPopupTrigger() && !evt.isConsumed()) {
+                                   c.showPopup(p);
+                               }
+                       }
+                   } else {
+                       if (evt.isPopupTrigger() && popupFactory != null) {
+                           JPanel pp = (JPanel) evt.getSource();
+ //XXX we should let popupfactory to produce playpencomponent popup as well
+                           JPopupMenu popup = 
popupFactory.createPopupMenu(null);
+                           popup.show(pp, evt.getX(), evt.getY());
+                       }
+                   }
                    }
                }
        }

Reply via email to