diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/edbox.c | 4 | ||||
| -rw-r--r-- | src/edbox.h | 2 | ||||
| -rw-r--r-- | src/screen.c | 7 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/edbox.c b/src/edbox.c index 7c9715d..1b56e5c 100644 --- a/src/edbox.c +++ b/src/edbox.c @@ -8,7 +8,7 @@ /* TODO: tab completion */ -// static int edbox_visible = 0; /* don't think we'll ever need it */ +int edbox_visible = 0; static u16 edbox_pos; /* range 0 to EDBOX_SIZE - 1 */ static u16 edbox_len; /* idem */ @@ -39,10 +39,12 @@ void edbox_show(void) { scr_waitvcount(116); *dlist_status_lms = addr; + edbox_visible = 1; show_cursor(); } void edbox_hide(void) { + edbox_visible = 0; scr_refresh(); } diff --git a/src/edbox.h b/src/edbox.h index 548dc87..c919ee9 100644 --- a/src/edbox.h +++ b/src/edbox.h @@ -4,6 +4,8 @@ #define EDBOX_SIZE 240 +extern int edbox_visible; + /* clear the contents of the edit box (whether it's visible or not) */ void edbox_clear(void); diff --git a/src/screen.c b/src/screen.c index 5852208..2b56808 100644 --- a/src/screen.c +++ b/src/screen.c @@ -3,6 +3,7 @@ #include "addrs.h" #include "screen.h" +#include "edbox.h" #define SDLST ((u16 *)0x0230) @@ -157,8 +158,10 @@ void scr_show_status(char s) { *p++ = sc; } - scr_waitvcount(112); - *dlist_status_lms = (u16)status_boxes[s]; + if(!edbox_visible) { + scr_waitvcount(112); + *dlist_status_lms = (u16)status_boxes[s]; + } } void scr_refresh(void) { |
