diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml
index 5a1e99f0..90fffbf5 100644
--- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml
+++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml
@@ -20,12 +20,12 @@
+
+ metric
+ false
+
lastPath
C:\Documents and Settings\Branislav Stojkovic\Desktop
-
- metric
- true
-
\ No newline at end of file
diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPanel.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPanel.java
index 28ff5b6a..7de99bd7 100644
--- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPanel.java
+++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPanel.java
@@ -16,6 +16,7 @@ import java.awt.dnd.DropTarget;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
+import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
@@ -120,7 +121,7 @@ class CanvasPanel extends JComponent implements Autoscroll {
}
g.drawImage(bufferImage, 0, 0, this);
} catch (NullPointerException e) {
- // Do nothing, it will be recreated in the next pass.
+ createBufferImage();
}
} while (bufferImage == null || bufferImage.contentsLost());
}
@@ -139,6 +140,14 @@ class CanvasPanel extends JComponent implements Autoscroll {
invalidate();
}
});
+ addKeyListener(new KeyAdapter() {
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ plugInPort.mouseMoved(getMousePosition(), e.isControlDown(), e.isShiftDown(), e
+ .isAltDown());
+ }
+ });
addMouseMotionListener(new MouseAdapter() {
@Override
diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/ComponentProcessor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/ComponentProcessor.java
index 12f6268f..ef9610be 100644
--- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/ComponentProcessor.java
+++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/ComponentProcessor.java
@@ -76,6 +76,16 @@ public class ComponentProcessor {
return cloner.deepClone(properties);
}
+ /**
+ * Reads all control points from the specified component class. Note than
+ * control points are cached, so it may happen that control points returned
+ * already have their values populated. Always use
+ * {@link ControlPointWrapper#readFrom(IComponentInstance)} to update their
+ * state from an actual component.
+ *
+ * @param clazz
+ * @return
+ */
public List extractControlPoints(Class extends IComponentInstance> clazz) {
if (controlPointCache.containsKey(clazz)) {
return cloner.deepClone(controlPointCache.get(clazz));
diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java
index ce158e5f..c73410d4 100644
--- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java
+++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/presenter/Presenter.java
@@ -400,6 +400,10 @@ public class Presenter implements IPlugInPort {
}
}
}
+ // If CTRL is pressed, we only care about the top most component.
+ if (altDown && components.size() > 0) {
+ break;
+ }
}
if (!components.equals(componentsUnderCursor)) {
componentsUnderCursor = components;