diff --git a/src/SHME.ExternalTool/UI/CustomMainForm.Designer.cs b/src/SHME.ExternalTool/UI/CustomMainForm.Designer.cs index 7f6726f..e8561e2 100644 --- a/src/SHME.ExternalTool/UI/CustomMainForm.Designer.cs +++ b/src/SHME.ExternalTool/UI/CustomMainForm.Designer.cs @@ -5837,7 +5837,6 @@ private void InitializeComponent() 0, 0, 0}); - this.NudFramebufferH.ValueChanged += new System.EventHandler(this.NudFramebuffer_ValueChanged); this.NudFramebufferH.Click += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferH.Enter += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferH.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NudFramebuffer_KeyDown); @@ -5866,7 +5865,6 @@ private void InitializeComponent() 0, 0, 0}); - this.NudFramebufferW.ValueChanged += new System.EventHandler(this.NudFramebuffer_ValueChanged); this.NudFramebufferW.Click += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferW.Enter += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferW.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NudFramebuffer_KeyDown); @@ -5895,7 +5893,6 @@ private void InitializeComponent() this.NudFramebufferOfsX.Size = new System.Drawing.Size(55, 20); this.NudFramebufferOfsX.TabIndex = 10; this.toolTip1.SetToolTip(this.NudFramebufferOfsX, "X offset"); - this.NudFramebufferOfsX.ValueChanged += new System.EventHandler(this.NudFramebuffer_ValueChanged); this.NudFramebufferOfsX.Click += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferOfsX.Enter += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferOfsX.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NudFramebuffer_KeyDown); @@ -5914,7 +5911,6 @@ private void InitializeComponent() this.NudFramebufferOfsY.Size = new System.Drawing.Size(55, 20); this.NudFramebufferOfsY.TabIndex = 20; this.toolTip1.SetToolTip(this.NudFramebufferOfsY, "Y offset"); - this.NudFramebufferOfsY.ValueChanged += new System.EventHandler(this.NudFramebuffer_ValueChanged); this.NudFramebufferOfsY.Click += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferOfsY.Enter += new System.EventHandler(this.Selectable_Enter); this.NudFramebufferOfsY.KeyDown += new System.Windows.Forms.KeyEventHandler(this.NudFramebuffer_KeyDown); diff --git a/src/SHME.ExternalTool/UI/Events.cs b/src/SHME.ExternalTool/UI/Events.cs index c586f70..4125d5f 100644 --- a/src/SHME.ExternalTool/UI/Events.cs +++ b/src/SHME.ExternalTool/UI/Events.cs @@ -36,6 +36,14 @@ private void AttachEventHandlers() StageLoaded += UpdateArrays; StageLoaded += LoadHarryModel; + + // It's unseemly to have the framebuffer picture box populated + // with an image on first loading the tool, so don't attach the + // ValueChanged handler until after settings are bound. + NudFramebufferOfsX.ValueChanged += NudFramebuffer_ValueChanged; + NudFramebufferOfsY.ValueChanged += NudFramebuffer_ValueChanged; + NudFramebufferW.ValueChanged += NudFramebuffer_ValueChanged; + NudFramebufferH.ValueChanged += NudFramebuffer_ValueChanged; } private void DetachEventHandlers() { @@ -56,6 +64,11 @@ private void DetachEventHandlers() StageLoaded -= UpdateArrays; StageLoaded -= LoadHarryModel; + + NudFramebufferOfsX.ValueChanged -= NudFramebuffer_ValueChanged; + NudFramebufferOfsY.ValueChanged -= NudFramebuffer_ValueChanged; + NudFramebufferW.ValueChanged -= NudFramebuffer_ValueChanged; + NudFramebufferH.ValueChanged -= NudFramebuffer_ValueChanged; } private void OnStageLoaded(object sender, EventArgs e) diff --git a/src/SHME.ExternalTool/UI/FramebufferTab.cs b/src/SHME.ExternalTool/UI/FramebufferTab.cs index a023d07..ab1c564 100644 --- a/src/SHME.ExternalTool/UI/FramebufferTab.cs +++ b/src/SHME.ExternalTool/UI/FramebufferTab.cs @@ -93,6 +93,7 @@ private void BtnFramebufferGrab_Click(object sender, EventArgs e) bmp.UnlockBits(data); + BpbFramebuffer.Image?.Dispose(); BpbFramebuffer.Image = bmp; _framebufferGrabOriginalW = width;