diff --git a/src/chat.c b/src/chat.c index 6dafd9e..4c8bbc7 100644 --- a/src/chat.c +++ b/src/chat.c @@ -923,7 +923,10 @@ static void chat_onDraw(ToxWindow *self, Tox *m) ChatContext *ctx = self->chatwin; + pthread_mutex_lock(&Winthread.lock); line_info_print(self); + pthread_mutex_unlock(&Winthread.lock); + wclear(ctx->linewin); curs_set(1); diff --git a/src/groupchat.c b/src/groupchat.c index ec97ebb..8423497 100644 --- a/src/groupchat.c +++ b/src/groupchat.c @@ -656,7 +656,10 @@ static void groupchat_onDraw(ToxWindow *self, Tox *m) ChatContext *ctx = self->chatwin; + pthread_mutex_lock(&Winthread.lock); line_info_print(self); + pthread_mutex_unlock(&Winthread.lock); + wclear(ctx->linewin); curs_set(1); diff --git a/src/prompt.c b/src/prompt.c index 355d0d3..a3d2901 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -254,7 +254,10 @@ static void prompt_onDraw(ToxWindow *self, Tox *m) ChatContext *ctx = self->chatwin; + pthread_mutex_lock(&Winthread.lock); line_info_print(self); + pthread_mutex_unlock(&Winthread.lock); + wclear(ctx->linewin); curs_set(1); diff --git a/src/windows.c b/src/windows.c index 4075371..f50ff10 100644 --- a/src/windows.c +++ b/src/windows.c @@ -561,8 +561,11 @@ void refresh_inactive_windows(void) for (i = 0; i < MAX_WINDOWS_NUM; ++i) { ToxWindow *a = &windows[i]; - if (a->active && a != active_window && !a->is_friendlist) + if (a->active && a != active_window && !a->is_friendlist) { + pthread_mutex_lock(&Winthread.lock); line_info_print(a); + pthread_mutex_unlock(&Winthread.lock); + } } }