diff --git a/prompt_toolkit/widgets/base.py b/prompt_toolkit/widgets/base.py index e143acf39..4af822c7f 100644 --- a/prompt_toolkit/widgets/base.py +++ b/prompt_toolkit/widgets/base.py @@ -104,6 +104,8 @@ class Border: TOP_RIGHT = "\u2510" BOTTOM_LEFT = "\u2514" BOTTOM_RIGHT = "\u2518" + SPLIT_LEFT = "\u251c" + SPLIT_RIGHT = "\u2524" class TextArea: diff --git a/prompt_toolkit/widgets/menus.py b/prompt_toolkit/widgets/menus.py index 4408ec65a..49093ed6f 100644 --- a/prompt_toolkit/widgets/menus.py +++ b/prompt_toolkit/widgets/menus.py @@ -292,7 +292,14 @@ def mouse_handler(mouse_event: MouseEvent) -> None: else: style = "" - yield ("class:menu", Border.VERTICAL) + + if item.text == "-": + yield ( + style + "class:menu-border", + Border.SPLIT_LEFT,mouse_handler, + ) + else: + yield ("class:menu", Border.VERTICAL) if item.text == "-": yield ( style + "class:menu-border", @@ -309,11 +316,26 @@ def mouse_handler(mouse_event: MouseEvent) -> None: if item.children: yield (style, ">", mouse_handler) else: - yield (style, " ", mouse_handler) + if item.text == "-": + yield ( + style + "class:menu-border", + Border.HORIZONTAL, + mouse_handler, + ) + else: + yield (style, " ", mouse_handler) if i == selected_item: yield ("[SetMenuPosition]", "") - yield ("class:menu", Border.VERTICAL) + + if item.text == "-": + yield ( + style + "class:menu-border", + Border.SPLIT_RIGHT, + mouse_handler, + ) + else: + yield ("class:menu", Border.VERTICAL) yield ("", "\n")