]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
gui: Move windows *after* resizing them.
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index a6bc54a738ff5e255675fbbe9902d09afabc281f..25e852dee462d3d394723bd26935f8cfbf6ecaa7 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -519,6 +519,7 @@ static __printf_2_3 void curses_log(int ll, const char *fmt,...)
        int color;
        char *msg;
        va_list ap;
+       unsigned bytes;
 
        if (ll < loglevel || !curses_active)
                return;
@@ -532,9 +533,10 @@ static __printf_2_3 void curses_log(int ll, const char *fmt,...)
                        color = COLOR_ERRMSG;
        }
        va_start(ap, fmt);
-       xvasprintf(&msg, fmt, ap);
+       bytes = xvasprintf(&msg, fmt, ap);
        va_end(ap);
-       chop(msg);
+       if (bytes > 0 && msg[bytes - 1] == '\n')
+               msg[bytes - 1] = '\0'; /* cut trailing newline */
        rb_add_entry(color, msg);
        wrefresh(bot.win);
 }
@@ -620,20 +622,20 @@ static void init_wins(int top_lines)
 
        assume_default_colors(theme.default_fg, theme.default_bg);
        if (top.win) {
-               mvwin(top.win, top.begy, top.begx);
                wresize(top.win, top.lines, top.cols);
+               mvwin(top.win, top.begy, top.begx);
 
-               mvwin(sb.win, sb.begy, sb.begx);
                wresize(sb.win, sb.lines, sb.cols);
+               mvwin(sb.win, sb.begy, sb.begx);
 
-               mvwin(sep.win, sep.begy, sep.begx);
                wresize(sep.win, sep.lines, sep.cols);
+               mvwin(sep.win, sep.begy, sep.begx);
 
-               mvwin(bot.win, bot.begy, bot.begx);
                wresize(bot.win, bot.lines, bot.cols);
+               mvwin(bot.win, bot.begy, bot.begx);
 
-               mvwin(in.win, in.begy, in.begx);
                wresize(in.win, in.lines, in.cols);
+               mvwin(in.win, in.begy, in.begx);
        } else {
                sep.win = newwin(sep.lines, sep.cols, sep.begy, sep.begx);
                top.win = newwin(top.lines, top.cols, top.begy, top.begx);
@@ -1412,11 +1414,9 @@ static void com_refresh(void)
 static void change_theme(int next)
 {
        if (next)
-               next_theme(&theme);
+               theme_next(&theme);
        else
-               prev_theme(&theme);
-       /* This seems to be needed twice, why? */
-       com_refresh();
+               theme_prev(&theme);
        com_refresh();
        PARA_NOTICE_LOG("new theme: %s\n", theme.name);
 }
@@ -1517,7 +1517,7 @@ int main(int argc, char *argv[])
                fprintf(stderr, "invalid key map\n");
                exit(EXIT_FAILURE);
        }
-       init_theme_or_die(conf.theme_arg, &theme);
+       theme_init(conf.theme_arg, &theme);
        setup_signal_handling();
        bot_win_rb = ringbuffer_new(RINGBUFFER_SIZE);
        setlocale(LC_CTYPE, "");