Mercurial > hg > nnchat
diff main.c @ 503:bac3f9af112c
More work on curses cleanup. Almost working now.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 02 Jun 2012 20:03:08 +0300 |
parents | 52da406caf54 |
children | 12939e665e49 |
line wrap: on
line diff
--- a/main.c Fri Jun 01 17:45:38 2012 +0300 +++ b/main.c Sat Jun 02 20:03:08 2012 +0300 @@ -1634,7 +1634,7 @@ if (cursesInit) { int c, cnt = 0; - BOOL update = FALSE, updateMain = FALSE; + BOOL update = FALSE; // Handle several buffered keypresses at once do @@ -1717,7 +1717,7 @@ if (win != NULL) { currWin = win; - update = updateMain = TRUE; + update = TRUE; } c = ERR; } @@ -1735,7 +1735,7 @@ if (win != NULL) { currWin = win; - update = updateMain = TRUE; + update = TRUE; } c = ERR; } @@ -1749,7 +1749,7 @@ erase(); timeout(SET_DELAY); nnwin_reset(); - update = updateMain = TRUE; + update = TRUE; break; #endif @@ -1787,8 +1787,6 @@ // Update time value of last sent message for unidle timeouts prevKeepAlive = time(NULL); } - - updateMain = update = TRUE; } break; @@ -1803,7 +1801,6 @@ histPos++; nn_editbuf_free(editBuf); editBuf = nn_editbuf_copy(histBuf[histPos]); - update = TRUE; } break; @@ -1813,7 +1810,6 @@ histPos--; nn_editbuf_free(editBuf); editBuf = nn_editbuf_copy(histBuf[histPos]); - update = TRUE; } break; @@ -1823,7 +1819,6 @@ editBuf->pos--; while (editBuf->pos > 0 && !isspace((int) editBuf->data[editBuf->pos - 1])) editBuf->pos--; - update = TRUE; editBuf->dirty = TRUE; break; @@ -1833,25 +1828,20 @@ editBuf->pos++; while (editBuf->pos < editBuf->len && !isspace((int) editBuf->data[editBuf->pos])) editBuf->pos++; - update = TRUE; editBuf->dirty = TRUE; break; case KEY_HOME: nn_editbuf_setpos(editBuf, 0); - update = TRUE; break; case KEY_END: nn_editbuf_setpos(editBuf, editBuf->len); - update = TRUE; break; case KEY_LEFT: nn_editbuf_setpos(editBuf, editBuf->pos - 1); - update = TRUE; break; case KEY_RIGHT: nn_editbuf_setpos(editBuf, editBuf->pos + 1); - update = TRUE; break; case KEY_BACKSPACE: @@ -1859,23 +1849,19 @@ case 0x7f: nn_editbuf_delete(editBuf, editBuf->pos - 1); nn_editbuf_setpos(editBuf, editBuf->pos - 1); - update = TRUE; break; case KEY_DC: // Delete character nn_editbuf_delete(editBuf, editBuf->pos); - update = TRUE; break; case KEY_IC: // Ins = Toggle insert / overwrite mode insertMode = !insertMode; - update = TRUE; break; case KEY_F(2): // F2 = Clear editbuffer nn_editbuf_clear(editBuf); - update = TRUE; break; case KEY_F(5): // F5 = Ignore mode @@ -1898,11 +1884,10 @@ case 0x09: // Tab = complete username or command nn_tabcomplete_buffer(editBuf); - update = TRUE; break; case 0x0c: // Ctrl + L - wrefresh(stdscr); + update = TRUE; break; case KEY_NPAGE: @@ -1920,7 +1905,7 @@ currWin->pos = currWin->data->n - 10; if (oldPos != currWin->pos) - updateMain = TRUE; + update = TRUE; } break; @@ -1936,7 +1921,6 @@ else nn_editbuf_write(editBuf, editBuf->pos, c); nn_editbuf_setpos(editBuf, editBuf->pos + 1); - update = TRUE; } else { @@ -1948,7 +1932,7 @@ } while (c != ERR && !exitProg && ++cnt < 10); - nnwin_update(FALSE, editBuf, optUserName, optUserColor); + nnwin_update(update, editBuf, optUserName, optUserColor); } // cursesInit if (++updateCount > 10)