X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2FLogicUICanvas.java;h=34cfb09949a5d468308c18de23eeae4499a74eff;hb=440a9a9dc9532ea88d475b0dee9ecc58260016cc;hp=78f3bdda2db8fad7290508d7a590102a2ac2d138;hpb=5d2cc463dfcf36d114a2667e13e985b014d3cfb1;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java index 78f3bdda..34cfb099 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java @@ -53,7 +53,11 @@ public class LogicUICanvas extends ZoomableCanvas setBackground(background);// this.setBackground, not gc.setBackground to have the background fill the canvas renderer.render(gc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom)); }); - model.setRedrawHandler(this::redrawThreadsafe); + model.setRedrawHandler(() -> + { + if (!isDisposed()) + redrawThreadsafe(); + }); addListener(SWT.MouseDown, this::mouseDown); @@ -63,7 +67,7 @@ public class LogicUICanvas extends ZoomableCanvas private void mouseDown(Event e) { - if (e.button == 1) + if (e.button == Preferences.current().getInt("net.mograsim.logic.model.button.action")) { Point click = canvasToWorldCoords(e.x, e.y); for (ModelComponent component : model.getComponentsByName().values()) @@ -164,6 +168,7 @@ public class LogicUICanvas extends ZoomableCanvas get.addListener(SWT.Selection, getAction); stateIDText.addListener(SWT.DefaultSelection, getAction); debugShell.open(); + addDisposeListener(e -> debugShell.dispose()); } private void compsChanged(Consumer compAdded, Consumer compRemoved, ModelComponent c,