diff --git a/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs b/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs index ae491a22..6cb81aae 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs @@ -799,7 +799,7 @@ namespace CodeImp.DoomBuilder.BuilderModes Update(); // When pasting and mouse is in screen, drag selection immediately - //if(pasting && mouseinside) OnSelect(); + if(pasting && mouseinside && BuilderPlug.Me.AutoDragOnPaste) OnSelectBegin(); } else { @@ -1138,7 +1138,9 @@ namespace CodeImp.DoomBuilder.BuilderModes protected override void OnSelectBegin() { base.OnSelectBegin(); - + + if(mode != ModifyMode.None) return; + // Used in many cases: Vector2D center = offset + size * 0.5f; Vector2D delta; diff --git a/Source/Plugins/BuilderModes/General/BuilderPlug.cs b/Source/Plugins/BuilderModes/General/BuilderPlug.cs index 7369ff17..633282ce 100644 --- a/Source/Plugins/BuilderModes/General/BuilderPlug.cs +++ b/Source/Plugins/BuilderModes/General/BuilderPlug.cs @@ -79,6 +79,7 @@ namespace CodeImp.DoomBuilder.BuilderModes private float highlightthingsrange; private float splitlinedefsrange; private bool usehighlight; + private bool autodragonpaste; #endregion @@ -114,6 +115,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public float HighlightThingsRange { get { return highlightthingsrange; } } public float SplitLinedefsRange { get { return splitlinedefsrange; } } public bool UseHighlight { get { return usehighlight; } set { usehighlight = value; } } + public bool AutoDragOnPaste { get { return autodragonpaste; } set { autodragonpaste = value; } } #endregion @@ -186,6 +188,7 @@ namespace CodeImp.DoomBuilder.BuilderModes highlightrange = (float)General.Settings.ReadPluginSetting("highlightrange", 20); highlightthingsrange = (float)General.Settings.ReadPluginSetting("highlightthingsrange", 10); splitlinedefsrange = (float)General.Settings.ReadPluginSetting("splitlinedefsrange", 10); + autodragonpaste = General.Settings.ReadPluginSetting("autodragonpaste", false); } #endregion diff --git a/Source/Plugins/BuilderModes/Interface/PreferencesForm.Designer.cs b/Source/Plugins/BuilderModes/Interface/PreferencesForm.Designer.cs index 18fd3455..cbf25e32 100644 --- a/Source/Plugins/BuilderModes/Interface/PreferencesForm.Designer.cs +++ b/Source/Plugins/BuilderModes/Interface/PreferencesForm.Designer.cs @@ -52,6 +52,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.groupBox1 = new System.Windows.Forms.GroupBox(); this.label1 = new System.Windows.Forms.Label(); this.heightbysidedef = new System.Windows.Forms.ComboBox(); + this.autodragonpaste = new System.Windows.Forms.CheckBox(); this.tabs.SuspendLayout(); this.taboptions.SuspendLayout(); this.groupBox3.SuspendLayout(); @@ -88,6 +89,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // // groupBox3 // + this.groupBox3.Controls.Add(this.autodragonpaste); this.groupBox3.Controls.Add(this.visualmodeclearselection); this.groupBox3.Controls.Add(this.autoclearselection); this.groupBox3.Controls.Add(this.editnewthing); @@ -103,7 +105,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // visualmodeclearselection // this.visualmodeclearselection.AutoSize = true; - this.visualmodeclearselection.Location = new System.Drawing.Point(23, 161); + this.visualmodeclearselection.Location = new System.Drawing.Point(23, 137); this.visualmodeclearselection.Name = "visualmodeclearselection"; this.visualmodeclearselection.Size = new System.Drawing.Size(220, 18); this.visualmodeclearselection.TabIndex = 5; @@ -113,7 +115,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // autoclearselection // this.autoclearselection.AutoSize = true; - this.autoclearselection.Location = new System.Drawing.Point(23, 129); + this.autoclearselection.Location = new System.Drawing.Point(23, 111); this.autoclearselection.Name = "autoclearselection"; this.autoclearselection.Size = new System.Drawing.Size(231, 18); this.autoclearselection.TabIndex = 4; @@ -133,7 +135,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // editnewsector // this.editnewsector.AutoSize = true; - this.editnewsector.Location = new System.Drawing.Point(23, 65); + this.editnewsector.Location = new System.Drawing.Point(23, 59); this.editnewsector.Name = "editnewsector"; this.editnewsector.Size = new System.Drawing.Size(271, 18); this.editnewsector.TabIndex = 2; @@ -143,7 +145,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // additiveselect // this.additiveselect.AutoSize = true; - this.additiveselect.Location = new System.Drawing.Point(23, 97); + this.additiveselect.Location = new System.Drawing.Point(23, 85); this.additiveselect.Name = "additiveselect"; this.additiveselect.Size = new System.Drawing.Size(211, 18); this.additiveselect.TabIndex = 3; @@ -177,7 +179,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.splitlinedefsrange.AllowNegative = false; this.splitlinedefsrange.AllowRelative = false; this.splitlinedefsrange.ButtonStep = 5; - this.splitlinedefsrange.Location = new System.Drawing.Point(167, 149); + this.splitlinedefsrange.Location = new System.Drawing.Point(167, 152); this.splitlinedefsrange.Name = "splitlinedefsrange"; this.splitlinedefsrange.Size = new System.Drawing.Size(59, 24); this.splitlinedefsrange.StepValues = null; @@ -189,7 +191,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.stitchrange.AllowNegative = false; this.stitchrange.AllowRelative = false; this.stitchrange.ButtonStep = 5; - this.stitchrange.Location = new System.Drawing.Point(167, 109); + this.stitchrange.Location = new System.Drawing.Point(167, 112); this.stitchrange.Name = "stitchrange"; this.stitchrange.Size = new System.Drawing.Size(59, 24); this.stitchrange.StepValues = null; @@ -201,7 +203,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.highlightthingsrange.AllowNegative = false; this.highlightthingsrange.AllowRelative = false; this.highlightthingsrange.ButtonStep = 5; - this.highlightthingsrange.Location = new System.Drawing.Point(167, 69); + this.highlightthingsrange.Location = new System.Drawing.Point(167, 72); this.highlightthingsrange.Name = "highlightthingsrange"; this.highlightthingsrange.Size = new System.Drawing.Size(59, 24); this.highlightthingsrange.StepValues = null; @@ -213,7 +215,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.highlightrange.AllowNegative = false; this.highlightrange.AllowRelative = false; this.highlightrange.ButtonStep = 5; - this.highlightrange.Location = new System.Drawing.Point(167, 29); + this.highlightrange.Location = new System.Drawing.Point(167, 32); this.highlightrange.Name = "highlightrange"; this.highlightrange.Size = new System.Drawing.Size(59, 24); this.highlightrange.StepValues = null; @@ -222,7 +224,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(232, 154); + this.label8.Location = new System.Drawing.Point(232, 157); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(35, 14); this.label8.TabIndex = 15; @@ -231,7 +233,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(33, 114); + this.label2.Location = new System.Drawing.Point(33, 117); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(117, 14); this.label2.TabIndex = 4; @@ -241,7 +243,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(232, 114); + this.label3.Location = new System.Drawing.Point(232, 117); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(35, 14); this.label3.TabIndex = 6; @@ -250,7 +252,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label9 // this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(47, 154); + this.label9.Location = new System.Drawing.Point(47, 157); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(103, 14); this.label9.TabIndex = 13; @@ -260,7 +262,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(20, 34); + this.label5.Location = new System.Drawing.Point(20, 37); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(130, 14); this.label5.TabIndex = 7; @@ -270,7 +272,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(232, 74); + this.label6.Location = new System.Drawing.Point(232, 77); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(35, 14); this.label6.TabIndex = 12; @@ -279,7 +281,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(232, 34); + this.label4.Location = new System.Drawing.Point(232, 37); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(35, 14); this.label4.TabIndex = 9; @@ -288,7 +290,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(36, 74); + this.label7.Location = new System.Drawing.Point(36, 77); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(114, 14); this.label7.TabIndex = 10; @@ -330,6 +332,16 @@ namespace CodeImp.DoomBuilder.BuilderModes this.heightbysidedef.Size = new System.Drawing.Size(199, 22); this.heightbysidedef.TabIndex = 0; // + // autodragonpaste + // + this.autodragonpaste.AutoSize = true; + this.autodragonpaste.Location = new System.Drawing.Point(23, 163); + this.autodragonpaste.Name = "autodragonpaste"; + this.autodragonpaste.Size = new System.Drawing.Size(205, 18); + this.autodragonpaste.TabIndex = 6; + this.autodragonpaste.Text = "Drag selection automatically on paste"; + this.autodragonpaste.UseVisualStyleBackColor = true; + // // PreferencesForm // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -380,5 +392,6 @@ namespace CodeImp.DoomBuilder.BuilderModes private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox stitchrange; private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox highlightthingsrange; private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox highlightrange; + private System.Windows.Forms.CheckBox autodragonpaste; } } \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/Interface/PreferencesForm.cs b/Source/Plugins/BuilderModes/Interface/PreferencesForm.cs index f2d31580..16236b2d 100644 --- a/Source/Plugins/BuilderModes/Interface/PreferencesForm.cs +++ b/Source/Plugins/BuilderModes/Interface/PreferencesForm.cs @@ -66,6 +66,7 @@ namespace CodeImp.DoomBuilder.BuilderModes splitlinedefsrange.Text = General.Settings.ReadPluginSetting("splitlinedefsrange", 10).ToString(); autoclearselection.Checked = BuilderPlug.Me.AutoClearSelection; visualmodeclearselection.Checked = BuilderPlug.Me.VisualModeClearSelection; + autodragonpaste.Checked = BuilderPlug.Me.AutoDragOnPaste; } #endregion @@ -86,6 +87,7 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Settings.WritePluginSetting("splitlinedefsrange", splitlinedefsrange.GetResult(0)); General.Settings.WritePluginSetting("autoclearselection", autoclearselection.Checked); General.Settings.WritePluginSetting("visualmodeclearselection", visualmodeclearselection.Checked); + General.Settings.WritePluginSetting("autodragonpaste", autodragonpaste.Checked); } // When Cancel is pressed on the preferences dialog diff --git a/Source/Plugins/BuilderModes/Interface/PreferencesForm.resx b/Source/Plugins/BuilderModes/Interface/PreferencesForm.resx index 0230378d..7bf2ce3e 100644 --- a/Source/Plugins/BuilderModes/Interface/PreferencesForm.resx +++ b/Source/Plugins/BuilderModes/Interface/PreferencesForm.resx @@ -126,6 +126,9 @@ True + + True + True