mirror of
https://github.com/rkd77/elinks.git
synced 2024-11-04 08:17:17 -05:00
0d001a88b7
Since there is only one LED panel per terminal, redrawing for each session is wasteful. Furthermore, since one terminal can have many sessions (i.e. tabs), and since the last session in the list might not be the current session, the wrong LEDs might be drawn. An easy way to demonstrate the bug is to enable ui.clock.enable, so that the panel is redrawn every 100ms, and then to select a text field and enter insert mode. Unless the current tab is the last tab, the insert-mode LED will only briefly show that insert mode is enabled. |
||
---|---|---|
.. | ||
button.c | ||
button.h | ||
checkbox.c | ||
checkbox.h | ||
common.h | ||
dialog.c | ||
dialog.h | ||
group.c | ||
group.h | ||
hierbox.c | ||
hierbox.h | ||
hotkey.c | ||
hotkey.h | ||
inpfield.c | ||
inpfield.h | ||
inphist.c | ||
inphist.h | ||
leds.c | ||
leds.h | ||
listbox.c | ||
listbox.h | ||
listmenu.c | ||
listmenu.h | ||
Makefile | ||
menu.c | ||
menu.h | ||
msgbox.c | ||
msgbox.h | ||
README | ||
style.c | ||
style.h | ||
text.c | ||
text.h | ||
widget.c | ||
widget.h |
OVERVIEW OF BFU =============== BFU is the text-mode user interface used by ELinks. It builds dialogs, widgets and menus on top of the window system implemented at src/terminal/. ===================== | struct widget_ops | | bfu/widget.h | ===================== 1^ | *| ==================== ====================== ================= | struct menu_item | | struct widget_data | * 1 | struct widget | | bfu/menu.h | | bfu/widget.h | ---> | bfu/widget.h | ==================== ====================== ================= +^ +^ +^ | | | ?| 1| 1| =============== ====================== ================= | struct menu | | struct dialog_data | * 1 | struct dialog | | bfu/menu.h | | bfu/dialog.h | ----> | bfu/dialog.h | =============== ====================== ================= ?^ ?^ ?^ ?| 1| 1| | | | | | | | | | 1v | 1v | 1v 1v ====================== | ======================== | ===================== | struct memory_list | | | struct dialog_layout | | | struct window | | util/memlist.h | | | bfu/dialog.h | | | terminal/window.h | ====================== | ======================== | ===================== ?v | *^ ========================= | | | struct dialog_refresh | | 1v | bfu/dialog.h | | ======================= ========================= | ? | struct terminal | ---------- | terminal/terminal.h | main_menu ======================= ?| ?| | | 1v ?v ========================== ============================= | struct terminal_screen | | struct terminal_interlink | | terminal/screen.h | | terminal/event.c | ========================== ============================= Legend: ---> can be followed like a pointer ? zero or one 1 exactly one * zero or more + one or more There may be errors in the quantifiers.