aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2026-03-13 05:09:14 -0400
committerB. Watson <urchlay@slackware.uk>2026-03-13 05:09:14 -0400
commit08d6fe8f61b3b0a0b767cfca93412703017810a3 (patch)
treebe24640dc80550376caacd1d83075e950eb78e19 /src
parent5c3f9502bcda72dd4202a5a752441abcdf246ad1 (diff)
downloadfujinet-chat-08d6fe8f61b3b0a0b767cfca93412703017810a3.tar.gz
Don't hide the edit box when some other channel becomes active.
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) {