From 3b92d5008b40680d26a53f1e413a39e336155a62 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 5 Feb 2017 12:49:56 +0300 Subject: [PATCH] Allow drag n drop file to actions toolbar for uploading --- ShareX/Forms/ActionsToolbarForm.cs | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/ShareX/Forms/ActionsToolbarForm.cs b/ShareX/Forms/ActionsToolbarForm.cs index e17a32db0..8a12bcb8c 100644 --- a/ShareX/Forms/ActionsToolbarForm.cs +++ b/ShareX/Forms/ActionsToolbarForm.cs @@ -65,6 +65,7 @@ private void InitializeComponent() { SuspendLayout(); + AllowDrop = true; AutoScaleDimensions = new SizeF(6F, 13F); AutoScaleMode = AutoScaleMode.Font; AutoSize = true; @@ -78,8 +79,10 @@ private void InitializeComponent() Text = "ShareX - Actions toolbar"; TopMost = Program.Settings.ActionsToolbarStayTopMost; - LocationChanged += SimpleActionsForm_LocationChanged; - Shown += SimpleActionsForm_Shown; + Shown += ActionsToolbarForm_Shown; + LocationChanged += ActionsToolbarForm_LocationChanged; + DragEnter += ActionsToolbarForm_DragEnter; + DragDrop += ActionsToolbarForm_DragDrop; tsMain = new ToolStripEx() { @@ -164,16 +167,35 @@ private void InitializeComponent() UpdatePosition(); } - private void SimpleActionsForm_Shown(object sender, EventArgs e) + private void ActionsToolbarForm_Shown(object sender, EventArgs e) { this.ForceActivate(); } - private void SimpleActionsForm_LocationChanged(object sender, EventArgs e) + private void ActionsToolbarForm_LocationChanged(object sender, EventArgs e) { CheckToolbarPosition(); } + private void ActionsToolbarForm_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop, false) || + e.Data.GetDataPresent(DataFormats.Bitmap, false) || + e.Data.GetDataPresent(DataFormats.Text, false)) + { + e.Effect = DragDropEffects.Copy; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + private void ActionsToolbarForm_DragDrop(object sender, DragEventArgs e) + { + UploadManager.DragDropUpload(e.Data); + } + private void CheckToolbarPosition() { Rectangle rectToolbar = Bounds;