Skip to content
This repository was archived by the owner on Oct 4, 2021. It is now read-only.

Commit 2e10989

Browse files
committed
[Debugger] Fixed CanRename() logic for Locals/Watch context menu & allowed disabled menu items
1 parent 32e5a8c commit 2e10989

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Mac/MacObjectValueTreeView.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ protected void OnUpdateAddWatch (CommandInfo cinfo)
913913
[CommandHandler (EditCommands.Rename)]
914914
protected void OnRename ()
915915
{
916-
if (SelectedRow == -1)
916+
if (SelectedRowCount != 1 || SelectedRow < 0)
917917
return;
918918

919919
var nameView = (MacDebuggerObjectNameView) GetView (0, SelectedRow, false);
@@ -928,7 +928,13 @@ void OnRename (object sender, EventArgs args)
928928

929929
bool CanRename (out bool enabled)
930930
{
931-
enabled = SelectedRowCount == 1 && SelectedRow != -1;
931+
if (SelectedRowCount == 1 && SelectedRow >= 0) {
932+
var item = (MacObjectValueNode) ItemAtRow (SelectedRow);
933+
934+
enabled = item.Target.Parent is RootObjectValueNode || item.Target is AddNewExpressionObjectValueNode;
935+
} else {
936+
enabled = false;
937+
}
932938

933939
return AllowWatchExpressions;
934940
}
@@ -951,7 +957,9 @@ public override NSMenu MenuForEvent (NSEvent theEvent)
951957
if (row < 0)
952958
return null;
953959

954-
var menu = new NSMenu ();
960+
var menu = new NSMenu {
961+
AutoEnablesItems = false
962+
};
955963
bool enabled;
956964

957965
if (CanAddWatch (out enabled)) {

0 commit comments

Comments
 (0)