X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fui%2FEditorCanvas.java;h=aedaa481f4343b7831f07171c037ea7ef4e4eed1;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=ac37e76990089d82659415bef17037a05a560994;hpb=f87464acdb28197031f7235e60ed7de1ac206723;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorCanvas.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorCanvas.java index ac37e769..aedaa481 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorCanvas.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/ui/EditorCanvas.java @@ -22,22 +22,29 @@ public class EditorCanvas extends LogicUICanvas super(parent, style, editor.toBeEdited.submodel); handles = editor.handleManager.getHandles(); - editor.handleManager.addHandleAddedListener(h -> - h.addRedrawListener(this::redrawThreadsafe)); - //TODO: Is this even necessary? The Handle should be finalized by the gc - editor.handleManager.addHandleRemovedListener(h -> h.removeRedrawListener(this::redrawThreadsafe)); + editor.handleManager.addHandleAddedListener(h -> + { + redrawThreadsafe(); + h.addRedrawListener(this::redrawThreadsafe); + }); + // TODO: Is this even necessary? The Handle should be finalized by the gc + editor.handleManager.addHandleRemovedListener(h -> + { + redrawThreadsafe(); + h.removeRedrawListener(this::redrawThreadsafe); + }); addZoomedRenderer(gc -> { Rectangle visibleRegion = new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom); - Color background = Preferences.current().getColor("net.mograsim.logic.ui.color.background"); + Color background = Preferences.current().getColor("net.mograsim.logic.model.color.background"); if (background != null) setBackground(background);// this.setBackground, not gc.setBackground to have the background fill the // canvas - + TranslatedGC tgc = new TranslatedGC(gc, 0.0d, 0.0d, 1 / editor.toBeEdited.getSubmodelScale(), false); editor.toBeEdited.getOutlineRenderer().render(tgc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom)); - + handles.forEach(h -> h.render(gc, visibleRegion)); }); }