From 37e6fce30b8b91d5d0fefce2a0ed056cf6df4ef9 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Wed, 30 Mar 2016 10:48:54 -0700 Subject: [PATCH] Disconnect menuItemEvent before setIsOptionChecked, and then reconnect. --- examples/selectAudioDevice.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/selectAudioDevice.js b/examples/selectAudioDevice.js index b1da219eb5..c86d034adb 100644 --- a/examples/selectAudioDevice.js +++ b/examples/selectAudioDevice.js @@ -120,21 +120,25 @@ function menuItemEvent(menuItem) { if (menuItem.endsWith(" for Output")) { var selectedDevice = menuItem.trimStartsWith("Use ").trimEndsWith(" for Output"); print("output audio selection..." + selectedDevice); + Menu.menuItemEvent.disconnect(menuItemEvent); Menu.setIsOptionChecked(selectedOutputMenu, false); selectedOutputMenu = menuItem; Menu.setIsOptionChecked(selectedOutputMenu, true); if (AudioDevice.setOutputDevice(selectedDevice)) { Settings.setValue(OUTPUT_DEVICE_SETTING, selectedDevice); } + Menu.menuItemEvent.connect(menuItemEvent); } else if (menuItem.endsWith(" for Input")) { var selectedDevice = menuItem.trimStartsWith("Use ").trimEndsWith(" for Input"); print("input audio selection..." + selectedDevice); + Menu.menuItemEvent.disconnect(menuItemEvent); Menu.setIsOptionChecked(selectedInputMenu, false); selectedInputMenu = menuItem; Menu.setIsOptionChecked(selectedInputMenu, true); if (AudioDevice.setInputDevice(selectedDevice)) { Settings.setValue(INPUT_DEVICE_SETTING, selectedDevice); } + Menu.menuItemEvent.connect(menuItemEvent); } } }