aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/edbox.c4
-rw-r--r--src/edbox.h2
-rw-r--r--src/screen.c7
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) {