From 7da4809bfc2379449f301f48e787a80b9ce79203 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Sun, 7 Sep 2014 07:49:18 +0200 Subject: [PATCH] Network Preflet: EthernetSettingsView::_BuildInterfacesMenu() needs to call SetTargetForItems(), otherwise selecting interfaces in the popup menu doesn't work. --- src/preferences/network/EthernetSettingsView.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/preferences/network/EthernetSettingsView.cpp b/src/preferences/network/EthernetSettingsView.cpp index b440611915..f79ccdb29b 100644 --- a/src/preferences/network/EthernetSettingsView.cpp +++ b/src/preferences/network/EthernetSettingsView.cpp @@ -341,6 +341,12 @@ void EthernetSettingsView::_BuildInterfacesMenu() { BMenu* menu = fDeviceMenuField->Menu(); + BMenuItem* marked = menu->FindMarked(); + BString markedName; + if (marked != NULL) { + markedName = marked->Label(); + marked->SetMarked(false); + } menu->RemoveItems(0, menu->CountItems(), true); for (int32 i = 0; i < fInterfaces.CountItems(); i++) { @@ -352,9 +358,15 @@ EthernetSettingsView::_BuildInterfacesMenu() menu->AddItem(item); } + if (Window() != NULL) + menu->SetTargetForItems(this); + int32 numItems = menu->CountItems(); if (numItems > 0) { fDeviceMenuField->Menu()->SetEnabled(true); + BMenuItem* item = menu->FindItem(markedName.String()); + if (item != NULL) + item->SetMarked(true); } else { fDeviceMenuField->Menu()->SetEnabled(false); } @@ -405,7 +417,6 @@ EthernetSettingsView::_ShowConfiguration(Settings* settings) fSecondaryDNSTextControl->SetText(""); fDomainTextControl->SetText(""); - fDeviceMenuField->SetEnabled(settings != NULL); fTypeMenuField->SetEnabled(settings != NULL); bool enableControls = false;