Resolved bug when editing a tree node name - the context menu would steal keyboard input for its shortcut keys

This commit is contained in:
David Sparer
2016-09-15 13:31:00 -06:00
parent ecb77238a3
commit a50f96606b
2 changed files with 25 additions and 17 deletions

View File

@@ -51,6 +51,7 @@ namespace mRemoteNG.UI.Controls
{
InitializeComponent();
ApplyLanguage();
EnableShortcutKeys();
Opening += (sender, args) => AddExternalApps();
}
@@ -122,7 +123,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeConnect.Image = Resources.Play;
_cMenTreeConnect.Name = "_cMenTreeConnect";
_cMenTreeConnect.ShortcutKeys = ((Keys.Control | Keys.Shift) | Keys.C);
_cMenTreeConnect.Size = new System.Drawing.Size(199, 22);
_cMenTreeConnect.Text = "Connect";
_cMenTreeConnect.Click += (sender, args) => OnConnectClicked(args);
@@ -218,7 +218,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeDuplicate.Image = Resources.page_copy;
_cMenTreeDuplicate.Name = "_cMenTreeDuplicate";
_cMenTreeDuplicate.ShortcutKeys = Keys.Control | Keys.D;
_cMenTreeDuplicate.Size = new System.Drawing.Size(199, 22);
_cMenTreeDuplicate.Text = "Duplicate";
_cMenTreeDuplicate.Click += (sender, args) => OnDuplicateClicked(args);
@@ -227,7 +226,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeRename.Image = Resources.Rename;
_cMenTreeRename.Name = "_cMenTreeRename";
_cMenTreeRename.ShortcutKeys = Keys.F2;
_cMenTreeRename.Size = new System.Drawing.Size(199, 22);
_cMenTreeRename.Text = "Rename";
_cMenTreeRename.Click += (sender, args) => OnRenameClicked(args);
@@ -236,7 +234,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeDelete.Image = Resources.Delete;
_cMenTreeDelete.Name = "_cMenTreeDelete";
_cMenTreeDelete.ShortcutKeys = Keys.Delete;
_cMenTreeDelete.Size = new System.Drawing.Size(199, 22);
_cMenTreeDelete.Text = "Delete";
_cMenTreeDelete.Click += (sender, args) => OnDeleteClicked(args);
@@ -341,7 +338,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeMoveUp.Image = Resources.Arrow_Up;
_cMenTreeMoveUp.Name = "_cMenTreeMoveUp";
_cMenTreeMoveUp.ShortcutKeys = Keys.Control | Keys.Up;
_cMenTreeMoveUp.Size = new System.Drawing.Size(199, 22);
_cMenTreeMoveUp.Text = "Move up";
_cMenTreeMoveUp.Click += (sender, args) => OnMoveUpClicked(args);
@@ -350,7 +346,6 @@ namespace mRemoteNG.UI.Controls
//
_cMenTreeMoveDown.Image = Resources.Arrow_Down;
_cMenTreeMoveDown.Name = "_cMenTreeMoveDown";
_cMenTreeMoveDown.ShortcutKeys = Keys.Control | Keys.Down;
_cMenTreeMoveDown.Size = new System.Drawing.Size(199, 22);
_cMenTreeMoveDown.Text = "Move down";
_cMenTreeMoveDown.Click += (sender, args) => OnMoveDownClicked(args);
@@ -488,6 +483,26 @@ namespace mRemoteNG.UI.Controls
}
}
internal void DisableShortcutKeys()
{
_cMenTreeConnect.ShortcutKeys = Keys.None;
_cMenTreeDuplicate.ShortcutKeys = Keys.None;
_cMenTreeRename.ShortcutKeys = Keys.None;
_cMenTreeDelete.ShortcutKeys = Keys.None;
_cMenTreeMoveUp.ShortcutKeys = Keys.None;
_cMenTreeMoveDown.ShortcutKeys = Keys.None;
}
internal void EnableShortcutKeys()
{
_cMenTreeConnect.ShortcutKeys = ((Keys.Control | Keys.Shift) | Keys.C);
_cMenTreeDuplicate.ShortcutKeys = Keys.Control | Keys.D;
_cMenTreeRename.ShortcutKeys = Keys.F2;
_cMenTreeDelete.ShortcutKeys = Keys.Delete;
_cMenTreeMoveUp.ShortcutKeys = Keys.Control | Keys.Up;
_cMenTreeMoveDown.ShortcutKeys = Keys.Control | Keys.Down;
}
private static void EnableMenuItemsRecursive(ToolStripItemCollection items, bool enable = true)
{
foreach (ToolStripItem item in items)

View File

@@ -307,18 +307,17 @@ namespace mRemoteNG.UI.Window
#region Private Methods
private void tvConnections_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
//cMenTreeDelete.ShortcutKeys = Keys.None;
}
{
_contextMenu.DisableShortcutKeys();
}
private void tvConnections_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
try
{
//cMenTreeDelete.ShortcutKeys = Keys.Delete;
_contextMenu.EnableShortcutKeys();
ConnectionTreeModel.RenameNode(SelectedNode, e.Label);
Windows.configForm.pGrid_SelectedObjectChanged();
//ShowHideTreeContextMenuItems(SelectedNode);
Runtime.SaveConnectionsBG();
}
catch (Exception ex)
@@ -332,7 +331,6 @@ namespace mRemoteNG.UI.Window
try
{
Windows.configForm.SetPropertyGridObject(olvConnections.SelectedObject);
//ShowHideTreeContextMenuItems((ConnectionInfo)olvConnections.SelectedObject);
Runtime.LastSelected = ((ConnectionInfo)olvConnections.SelectedObject)?.ConstantID;
}
catch (Exception ex)
@@ -347,7 +345,6 @@ namespace mRemoteNG.UI.Window
{
if (e.ClickCount > 1) return;
var clickedNode = (ConnectionInfo)e.Model;
//ShowHideTreeContextMenuItems(SelectedNode);
//if (e.Button != MouseButtons.Left) return;
if (clickedNode.GetTreeNodeType() != TreeNodeType.Connection && clickedNode.GetTreeNodeType() != TreeNodeType.PuttySession) return;
@@ -387,10 +384,6 @@ namespace mRemoteNG.UI.Window
Runtime.MessageCollector.AddExceptionStackTrace("tvConnections_MouseMove (UI.Window.ConnectionTreeWindow) failed", ex);
}
}
#endregion
#region Tree Context Menu