Actions
Bug #13945
openRegression in WPopupMenu with disabled items
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
08/26/2025
Due date:
% Done:
0%
Estimated time:
Description
If a WPopupMenu with disabled items is displayed as a context menu, some CSS classes are missing in such elements. This applies to both Bootstrap 5 and the Classic themes. However, if WPopupMenu is assigned to a WPushButton, the display is correct. The bug was added after version 4.11.0. Here is an example code
setTheme(std::make_shared<Wt::WBootstrap5Theme>());
auto button = std::make_unique<Wt::WPushButton>("Menu");
button->setAttributeValue("oncontextmenu", "event.cancelBubble = true; event.returnValue = false; return false;");
button->mouseWentUp().connect([this](const Wt::WMouseEvent& event) {
if (event.button() == Wt::MouseButton::Right) {
auto coordinate = event.document();
auto menu = std::make_unique<Wt::WPopupMenu>();
auto item1 = menu->addItem("Item 1");
auto item2 = menu->addItem("Item 2");
auto item3 = menu->addItem("bla.png", "Item 3");
auto item4 = menu->addItem("bla.png", "Item 4");
item1->setDisabled(true);
item3->setDisabled(true);
menu->exec(Wt::WPoint{ coordinate.x, coordinate.y });
}
});
auto menu = std::make_unique<Wt::WPopupMenu>();
auto item1 = menu->addItem("Item 1");
auto item2 = menu->addItem("Item 2");
auto item3 = menu->addItem("bla.png", "Item 3");
auto item4 = menu->addItem("bla.png", "Item 4");
item1->setDisabled(true);
item3->setDisabled(true);
button->setMenu(std::move(menu));
root()->addWidget(std::move(button));
No data to display
Actions