diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index 6d5c72dc9..06d4d437e 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -487,7 +487,7 @@ private void form_KeyDown(object sender, KeyEventArgs e) CurrentTool = ShapeType.EffectPixelate; break; case Keys.Control | Keys.V: - PasteFromClipboard(); + PasteFromClipboard(true); break; case Keys.Control | Keys.Z: UndoShape(); @@ -1299,8 +1299,19 @@ public void OrderStepShapes() } } - private void PasteFromClipboard() + private void PasteFromClipboard(bool insertMousePosition) { + Point pos; + + if (insertMousePosition) + { + pos = InputManager.ClientMousePosition; + } + else + { + pos = Form.ClientArea.Center(); + } + if (Clipboard.ContainsImage()) { Image img = ClipboardHelpers.GetImage(); @@ -1309,7 +1320,6 @@ private void PasteFromClipboard() { CurrentTool = ShapeType.DrawingImage; ImageDrawingShape shape = (ImageDrawingShape)CreateShape(ShapeType.DrawingImage); - Point pos = InputManager.ClientMousePosition; shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1); shape.SetImage(img, true); shape.OnCreated(); @@ -1325,10 +1335,8 @@ private void PasteFromClipboard() { CurrentTool = ShapeType.DrawingTextBackground; TextDrawingShape shape = (TextDrawingShape)CreateShape(ShapeType.DrawingTextBackground); - Point pos = InputManager.ClientMousePosition; shape.Rectangle = new Rectangle(pos.X, pos.Y, 1, 1); shape.Text = text.Trim(); - shape.AutoSize(true); shape.OnCreated(); AddShape(shape); SelectCurrentShape(); diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs index 0c5305e5c..8e73ce3ac 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs @@ -557,6 +557,12 @@ internal void CreateToolbar() tsmiUndo.MouseDown += (sender, e) => UndoShape(); tsddbEdit.DropDownItems.Add(tsmiUndo); + ToolStripMenuItem tsmiPaste = new ToolStripMenuItem("Paste image/text"); + tsmiPaste.Image = Resources.clipboard; + tsmiPaste.ShortcutKeyDisplayString = "Ctrl+V"; + tsmiPaste.MouseDown += (sender, e) => PasteFromClipboard(false); + tsddbEdit.DropDownItems.Add(tsmiPaste); + tsddbEdit.DropDownItems.Add(new ToolStripSeparator()); tsmiDelete = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_Delete);