From f6dbf3c199c7eea6ed024454ed7109695dabb7de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Mon, 19 Dec 2022 23:45:28 +0100 Subject: [PATCH] PowerControl: Update `MenuItem` on `Opening` --- PowerControl/Controller.cs | 5 ---- PowerControl/Menu/MenuItemWithOptions.cs | 30 +++++++++++++----------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/PowerControl/Controller.cs b/PowerControl/Controller.cs index 02f9ebd..4cff97b 100644 --- a/PowerControl/Controller.cs +++ b/PowerControl/Controller.cs @@ -52,11 +52,6 @@ namespace PowerControl var contextMenu = new System.Windows.Forms.ContextMenuStrip(components); - contextMenu.Opening += delegate (object? sender, CancelEventArgs e) - { - rootMenu.Update(); - }; - rootMenu.Visible = false; rootMenu.Update(); rootMenu.CreateMenu(contextMenu); diff --git a/PowerControl/Menu/MenuItemWithOptions.cs b/PowerControl/Menu/MenuItemWithOptions.cs index 1e1a646..16363d1 100644 --- a/PowerControl/Menu/MenuItemWithOptions.cs +++ b/PowerControl/Menu/MenuItemWithOptions.cs @@ -27,19 +27,6 @@ namespace PowerControl.Menu FinalizeSet(); }; - - toolStripItem.DropDownOpening += delegate - { - toolStripItem.DropDownItems.Clear(); - - foreach (var option in Options) - { - var item = new ToolStripMenuItem(option); - item.Checked = option == (SelectedOption ?? ActiveOption); - item.Click += delegate { FinalizeSet(); }; - toolStripItem.DropDownItems.Add(item); - } - }; } public override void Reset() @@ -114,7 +101,22 @@ namespace PowerControl.Menu { toolStripItem.Text = Name; contextMenu.Items.Add(toolStripItem); - contextMenu.Opening += delegate { toolStripItem.Visible = Visible && Options.Count > 0; }; + contextMenu.Opening += delegate + { + Update(); + + toolStripItem.DropDownItems.Clear(); + + foreach (var option in Options) + { + var item = new ToolStripMenuItem(option); + item.Checked = option == (SelectedOption ?? ActiveOption); + item.Click += delegate { Set(option, true); }; + toolStripItem.DropDownItems.Add(item); + } + + toolStripItem.Visible = Visible && Options.Count > 0; + }; } private void SelectIndex(int index)