1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00
elinks/src/bfu
Miciah Dashiel Butler Masters 0d001a88b7 redraw_leds: Redraw the LED panel for each terminal, not each session
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.
2008-01-03 06:38:27 +00:00
..
button.c get_opt_*: Add ses parameter 2007-08-28 17:24:59 +00:00
button.h add_dlg_button_do: Let file point to const. 2007-01-28 14:44:24 +02:00
checkbox.c Make all instances of struct widget_ops const. 2007-01-28 14:41:40 +02:00
checkbox.h Make all instances of struct widget_ops const. 2007-01-28 14:41:40 +02:00
common.h Remove empty lines in start of header files 2005-11-15 11:33:27 +01:00
dialog.c Drop EVENT_TEXTAREA, use EVENT_RESIZE instead 2007-09-01 12:46:02 +00:00
dialog.h Initially place cursor on the current listbox item 2006-02-12 17:11:57 +00:00
group.c Bug 914: Don't let UTF-8 I/O affect internal representations. 2007-05-20 15:31:02 +03:00
group.h Added format_only parameter for distinguish between formating. 2006-03-06 06:01:12 +01:00
hierbox.c Drop EVENT_TEXTAREA, use EVENT_RESIZE instead 2007-09-01 12:46:02 +00:00
hierbox.h Update hierbox comments and make them ready for Doxygen 2007-08-08 13:18:53 +02:00
hotkey.c get_opt_*: Add ses parameter 2007-08-28 17:24:59 +00:00
hotkey.h BFU UTF-8: check_hotkeys_common() compares hotkeys as Unicode. 2006-08-13 23:45:41 +03:00
inpfield.c get_opt_*: Add ses parameter 2007-08-28 17:24:59 +00:00
inpfield.h Declare element types of lists. 2007-07-26 22:47:23 +03:00
inphist.c Declare element types of lists. 2007-07-26 22:47:23 +03:00
inphist.h Declare element types of lists. 2007-07-26 22:47:23 +03:00
leds.c redraw_leds: Redraw the LED panel for each terminal, not each session 2008-01-03 06:38:27 +00:00
leds.h Indicate backgrounded downloads using an unused led. 2007-11-07 11:24:52 +01:00
listbox.c Drop EVENT_TEXTAREA, use EVENT_RESIZE instead 2007-09-01 12:46:02 +00:00
listbox.h Declare element types of lists. 2007-07-26 22:47:23 +03:00
listmenu.c Cast the NULL argument of straconcat to unsigned char *. 2007-03-11 12:59:11 +02:00
listmenu.h Remove now useless $Id: lines. 2005-10-21 09:14:07 +02:00
Makefile path_to_top -> top_builddir 2005-10-20 04:00:35 +02:00
menu.c Drop EVENT_TEXTAREA, use EVENT_RESIZE instead 2007-09-01 12:46:02 +00:00
menu.h Properly deselect the main menu instead of crashing 2006-06-19 11:07:03 +00:00
msgbox.c Type-check button arguments of msg_box. 2007-03-10 23:50:56 +02:00
msgbox.h Type-check button arguments of msg_box. 2007-03-10 23:50:56 +02:00
README doc: Added src/bfu/README. 2006-05-13 17:01:20 +03:00
style.c get_opt_*: Add ses parameter 2007-08-28 17:24:59 +00:00
style.h Doxify bfu/style 2007-07-31 14:39:12 +02:00
text.c Bug 914: Don't let UTF-8 I/O affect internal representations. 2007-05-20 15:31:02 +03:00
text.h Make all instances of struct widget_ops const. 2007-01-28 14:41:40 +02:00
widget.c Remove now useless $Id: lines. 2005-10-21 09:14:07 +02:00
widget.h Bug 914: Don't let UTF-8 I/O affect internal representations. 2007-05-20 15:31:02 +03:00

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.