mirror of
https://github.com/Tha14/toxic.git
synced 2025-12-07 04:06:35 +01:00
chat window deleting and re-adding - it just werks
This commit is contained in:
27
friendlist.c
27
friendlist.c
@@ -13,9 +13,9 @@
|
||||
#include "windows.h"
|
||||
|
||||
extern char WINDOW_STATUS[TOXWINDOWS_MAX_NUM];
|
||||
extern int add_window(ToxWindow w);
|
||||
extern int focus_window(int num);
|
||||
extern int add_window(ToxWindow w, int n);
|
||||
extern ToxWindow new_chat(int friendnum);
|
||||
extern int w_active;
|
||||
|
||||
typedef struct {
|
||||
uint8_t name[MAX_NAME_LENGTH];
|
||||
@@ -52,7 +52,17 @@ void friendlist_onMessage(ToxWindow* self, int num, uint8_t* str, uint16_t len)
|
||||
return;
|
||||
|
||||
if(friends[num].chatwin == -1) {
|
||||
friends[num].chatwin = add_window(new_chat(num));
|
||||
friends[num].chatwin = num;
|
||||
int i;
|
||||
/* Find first open slot to hold chat window */
|
||||
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
|
||||
if (WINDOW_STATUS[i] == -1) {
|
||||
WINDOW_STATUS[i] = num;
|
||||
add_window(new_chat(num_selected), i);
|
||||
w_active = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,17 +114,18 @@ static void friendlist_onKey(ToxWindow* self, int key) {
|
||||
int i;
|
||||
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
|
||||
if (WINDOW_STATUS[i] == num_selected) {
|
||||
focus_window(i);
|
||||
w_active = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else {
|
||||
friends[num_selected].chatwin = add_window(new_chat(num_selected));
|
||||
focus_window(friends[num_selected].chatwin);
|
||||
int i;
|
||||
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) { // Find open slot
|
||||
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
|
||||
if (WINDOW_STATUS[i] == -1) {
|
||||
WINDOW_STATUS[i] = num_selected;
|
||||
friends[num_selected].chatwin = num_selected;
|
||||
add_window(new_chat(num_selected), i);
|
||||
w_active = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -178,4 +189,4 @@ ToxWindow new_friendlist() {
|
||||
strcpy(ret.title, "[friends]");
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user