Don't try to find where the cursor is and just set it to the last line for logcursor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
diff --git a/main.c b/main.c
index a3722ae..be69cba 100644
--- a/main.c
+++ b/main.c
@@ -532,7 +532,6 @@ static inline void print_status(int thr_id)
if (unlikely(!curses_active))
return;
- getyx(mainwin, logcursor, x);
move(2,0);
printw("Totals: %s", statusline);
@@ -566,11 +565,10 @@ static inline void print_status(int thr_id)
static void refresh_display(void)
{
- int i, x, maxy;
+ int i, x;
if (unlikely(!curses_active))
return;
- getyx(mainwin, logcursor, x);
move(0,0);
attron(A_BOLD);
@@ -586,7 +584,6 @@ static void refresh_display(void)
move(logstart, 0);
clrtoeol();
hline('-', 80);
- move(logcursor, 0);
for (i = 0; i < mining_threads; i++)
print_status(i);
@@ -597,16 +594,17 @@ static void refresh_display(void)
void log_curses(const char *f, va_list ap)
{
- int i, x, maxy;
+ int x;
if (unlikely(!curses_active))
return;
+
+ /* Scroll log output downwards */
+ getmaxyx(mainwin, logcursor, x);
+ move(--logcursor, 0);
vw_printw(mainwin, f, ap);
clrtoeol();
- getyx(mainwin, logcursor, x);
- /* Scroll log output downwards */
- getmaxyx(mainwin, maxy, x);
refresh_display();
}
@@ -1994,6 +1992,7 @@ int main (int argc, char *argv[])
idlok(mainwin, true);
scrollok(mainwin, true);
curses_active = true;
+ getmaxyx(mainwin, logcursor, i);
move(logcursor, 0);
refresh_display();