Fix for #303 where the combobox is editable, it does change the drawing a bit. [skip ci]

This commit is contained in:
Robin Krom 2021-03-29 22:57:10 +02:00
commit 42d8fdd15e
No known key found for this signature in database
GPG key ID: BCC01364F1371490
2 changed files with 33 additions and 28 deletions

View file

@ -19,6 +19,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
using System.Windows.Forms;
using Greenshot.Base.Controls; using Greenshot.Base.Controls;
namespace Greenshot.Forms { namespace Greenshot.Forms {
@ -65,7 +66,7 @@ namespace Greenshot.Forms {
this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.Size = new System.Drawing.Size(75, 23);
this.buttonOK.TabIndex = 6; this.buttonOK.TabIndex = 6;
this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); this.buttonOK.Click += new System.EventHandler(this.ButtonOK_Click);
// //
// buttonCancel // buttonCancel
// //
@ -108,8 +109,8 @@ namespace Greenshot.Forms {
this.textbox_height.Name = "textbox_height"; this.textbox_height.Name = "textbox_height";
this.textbox_height.Size = new System.Drawing.Size(69, 20); this.textbox_height.Size = new System.Drawing.Size(69, 20);
this.textbox_height.TabIndex = 3; this.textbox_height.TabIndex = 3;
this.textbox_height.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textbox_KeyUp); this.textbox_height.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Textbox_KeyUp);
this.textbox_height.Validating += new System.ComponentModel.CancelEventHandler(this.textbox_Validating); this.textbox_height.Validating += new System.ComponentModel.CancelEventHandler(this.Textbox_Validating);
// //
// textbox_width // textbox_width
// //
@ -117,8 +118,8 @@ namespace Greenshot.Forms {
this.textbox_width.Name = "textbox_width"; this.textbox_width.Name = "textbox_width";
this.textbox_width.Size = new System.Drawing.Size(69, 20); this.textbox_width.Size = new System.Drawing.Size(69, 20);
this.textbox_width.TabIndex = 1; this.textbox_width.TabIndex = 1;
this.textbox_width.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textbox_KeyUp); this.textbox_width.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Textbox_KeyUp);
this.textbox_width.Validating += new System.ComponentModel.CancelEventHandler(this.textbox_Validating); this.textbox_width.Validating += new System.ComponentModel.CancelEventHandler(this.Textbox_Validating);
// //
// combobox_width // combobox_width
// //
@ -127,19 +128,21 @@ namespace Greenshot.Forms {
this.combobox_width.Name = "combobox_width"; this.combobox_width.Name = "combobox_width";
this.combobox_width.Size = new System.Drawing.Size(65, 21); this.combobox_width.Size = new System.Drawing.Size(65, 21);
this.combobox_width.TabIndex = 2; this.combobox_width.TabIndex = 2;
// this.combobox_width.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
// combobox_height //
// // combobox_height
this.combobox_height.FormattingEnabled = true; //
this.combobox_height.FormattingEnabled = true;
this.combobox_height.ItemHeight = 13; this.combobox_height.ItemHeight = 13;
this.combobox_height.Location = new System.Drawing.Point(165, 38); this.combobox_height.Location = new System.Drawing.Point(165, 38);
this.combobox_height.Name = "combobox_height"; this.combobox_height.Name = "combobox_height";
this.combobox_height.Size = new System.Drawing.Size(65, 21); this.combobox_height.Size = new System.Drawing.Size(65, 21);
this.combobox_height.TabIndex = 4; this.combobox_height.TabIndex = 4;
// this.combobox_height.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
// ResizeSettingsForm //
// // ResizeSettingsForm
this.AcceptButton = this.buttonOK; //
this.AcceptButton = this.buttonOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.buttonCancel; this.CancelButton = this.buttonCancel;

View file

@ -53,15 +53,16 @@ namespace Greenshot.Forms
textbox_height.Text = effect.Height.ToString(); textbox_height.Text = effect.Height.ToString();
_newWidth = effect.Width; _newWidth = effect.Width;
_newHeight = effect.Height; _newHeight = effect.Height;
combobox_width.SelectedIndexChanged += combobox_SelectedIndexChanged; combobox_width.SelectedIndexChanged += Combobox_SelectedIndexChanged;
combobox_height.SelectedIndexChanged += combobox_SelectedIndexChanged; combobox_height.SelectedIndexChanged += Combobox_SelectedIndexChanged;
checkbox_aspectratio.Checked = effect.MaintainAspectRatio; checkbox_aspectratio.Checked = effect.MaintainAspectRatio;
} }
private void buttonOK_Click(object sender, EventArgs e) private void ButtonOK_Click(object sender, EventArgs e)
{ {
if (_newWidth != _effect.Width || _newHeight != _effect.Height) const double tolerance = 3 * double.Epsilon;
if (Math.Abs(_newWidth - _effect.Width) > tolerance || Math.Abs(_newHeight - _effect.Height) > tolerance)
{ {
_effect.Width = (int) _newWidth; _effect.Width = (int) _newWidth;
_effect.Height = (int) _newHeight; _effect.Height = (int) _newHeight;
@ -72,16 +73,17 @@ namespace Greenshot.Forms
private static bool Validate(object sender) private static bool Validate(object sender)
{ {
if (sender is TextBox textbox) if (sender is not TextBox textBox)
{ {
if (!double.TryParse(textbox.Text, out var numberEntered)) return true;
{
textbox.BackColor = Color.Red;
return false;
}
textbox.BackColor = Color.White;
} }
if (!double.TryParse(textBox.Text, out _))
{
textBox.BackColor = Color.Red;
return false;
}
textBox.BackColor = Color.White;
return true; return true;
} }
@ -116,7 +118,7 @@ namespace Greenshot.Forms
textbox_height.Text = ((int) displayValue).ToString(); textbox_height.Text = ((int) displayValue).ToString();
} }
private void textbox_KeyUp(object sender, KeyEventArgs e) private void Textbox_KeyUp(object sender, KeyEventArgs e)
{ {
if (!Validate(sender)) if (!Validate(sender))
{ {
@ -186,7 +188,7 @@ namespace Greenshot.Forms
} }
} }
private void textbox_Validating(object sender, System.ComponentModel.CancelEventArgs e) private void Textbox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{ {
Validate(sender); Validate(sender);
} }
@ -196,7 +198,7 @@ namespace Greenshot.Forms
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void combobox_SelectedIndexChanged(object sender, EventArgs e) private void Combobox_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (Validate(textbox_width)) if (Validate(textbox_width))
{ {