Do panel selection on mouse down

This commit is contained in:
Jaex 2019-10-18 03:27:09 +03:00
parent 7aa273919a
commit d0673604ad
2 changed files with 17 additions and 18 deletions

View file

@ -40,9 +40,9 @@ private void InitializeComponent()
this.flpMain.Padding = new System.Windows.Forms.Padding(5, 3, 5, 5);
this.flpMain.Size = new System.Drawing.Size(242, 8);
this.flpMain.TabIndex = 0;
this.flpMain.MouseDown += new System.Windows.Forms.MouseEventHandler(this.FlpMain_MouseDown);
this.flpMain.MouseEnter += new System.EventHandler(this.FlpMain_MouseEnter);
this.flpMain.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TaskThumbnailView_MouseUp);
this.flpMain.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseDown);
this.flpMain.MouseEnter += new System.EventHandler(this.Panel_MouseEnter);
this.flpMain.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseUp);
//
// TaskThumbnailView
//
@ -53,9 +53,9 @@ private void InitializeComponent()
this.Controls.Add(this.flpMain);
this.Name = "TaskThumbnailView";
this.Size = new System.Drawing.Size(242, 228);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.FlpMain_MouseDown);
this.MouseEnter += new System.EventHandler(this.FlpMain_MouseEnter);
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.TaskThumbnailView_MouseUp);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseDown);
this.MouseEnter += new System.EventHandler(this.Panel_MouseEnter);
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseUp);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -155,11 +155,12 @@ public void UpdateTheme()
private TaskThumbnailPanel CreatePanel(WorkerTask task)
{
TaskThumbnailPanel panel = new TaskThumbnailPanel(task);
panel.MouseEnter += FlpMain_MouseEnter;
panel.MouseUp += (object sender, MouseEventArgs e) => Panel_MouseUp(sender, e, panel);
panel.ThumbnailSize = ThumbnailSize;
panel.TitleVisible = TitleVisible;
panel.TitleLocation = TitleLocation;
panel.MouseEnter += Panel_MouseEnter;
panel.MouseDown += (object sender, MouseEventArgs e) => Panel_MouseDown(sender, e, panel);
panel.MouseUp += Panel_MouseUp;
return panel;
}
@ -223,7 +224,7 @@ protected void OnSelectedPanelChanged()
SelectedPanelChanged?.Invoke(this, EventArgs.Empty);
}
private void FlpMain_MouseEnter(object sender, EventArgs e)
private void Panel_MouseEnter(object sender, EventArgs e)
{
// Workaround to handle mouse wheel scrolling in Windows 7
if (NativeMethods.GetForegroundWindow() == ParentForm.Handle && !flpMain.Focused)
@ -232,17 +233,12 @@ private void FlpMain_MouseEnter(object sender, EventArgs e)
}
}
private void FlpMain_MouseDown(object sender, MouseEventArgs e)
private void Panel_MouseDown(object sender, MouseEventArgs e)
{
UnselectAllPanels();
Panel_MouseDown(sender, e, null);
}
private void TaskThumbnailView_MouseUp(object sender, MouseEventArgs e)
{
Panel_MouseUp(sender, e, null);
}
private void Panel_MouseUp(object sender, MouseEventArgs e, TaskThumbnailPanel panel)
private void Panel_MouseDown(object sender, MouseEventArgs e, TaskThumbnailPanel panel)
{
if (panel == null)
{
@ -286,7 +282,7 @@ private void Panel_MouseUp(object sender, MouseEventArgs e, TaskThumbnailPanel p
}
else
{
if (!panel.Selected)
if (!panel.Selected || e.Button == MouseButtons.Left)
{
UnselectAllPanels();
panel.Selected = true;
@ -296,7 +292,10 @@ private void Panel_MouseUp(object sender, MouseEventArgs e, TaskThumbnailPanel p
}
OnSelectedPanelChanged();
}
private void Panel_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
OnContextMenuRequested(sender, e);