diff --git a/.vscode/settings.json b/.vscode/settings.json index c73aecbf..a2ba278d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,6 @@ "cmake.ignoreCMakeListsMissing": true, "files.associations": { "xstring": "cpp" - } -} \ No newline at end of file + }, + "C_Cpp.intelliSenseEngine": "disabled" +} diff --git a/src/shell/contextmenu/menu_widget.cc b/src/shell/contextmenu/menu_widget.cc index c444bc11..d04e2636 100644 --- a/src/shell/contextmenu/menu_widget.cc +++ b/src/shell/contextmenu/menu_widget.cc @@ -1058,6 +1058,17 @@ void mb_shell::menu_item_parent_widget::reset_appear_animation(float delay) { opacity->reset_to(0); opacity->animate_to(255); } +float mb_shell::menu_item_parent_widget::measure_width( + ui::update_context &ctx) { + float total = 0; + float gap = config::current->context_menu.theme.multibutton_line_gap; + for (auto &child : children) { + total += child->measure_width(ctx); + } + if (!children.empty()) + total += gap * (children.size() - 1); + return total; +} void mb_shell::menu_item_normal_widget::hide_submenu() { if (submenu_wid != nullptr) { submenu_wid->close(); diff --git a/src/shell/contextmenu/menu_widget.h b/src/shell/contextmenu/menu_widget.h index 11af3a61..f73dc990 100644 --- a/src/shell/contextmenu/menu_widget.h +++ b/src/shell/contextmenu/menu_widget.h @@ -39,6 +39,7 @@ struct menu_item_parent_widget : public menu_item_widget { using super = menu_item_widget; void update(ui::update_context &ctx) override; void reset_appear_animation(float delay) override; + float measure_width(ui::update_context &ctx) override; }; struct menu_item_normal_widget : public menu_item_widget {