$ git clone http://tcclient.ion.nu/tc_client.git
commit 22c545300c2cdddeaa378bde33b473a0485d0849
Author: Alicia <...>
Date: Sun Apr 3 16:31:17 2016 +0200
tc_client-gtk: handle only one sendmessage event at a time, and don't send empty lines.
diff --git a/ChangeLog b/ChangeLog
index 26fd078..7d13954 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
0.39:
modbot: only use youtube-dl's 'ytsearch:' for --get-id, and only if it doesn't appear to be an ID already.
+tc_client-gtk: handle only one sendmessage event at a time, and don't send empty lines.
0.38:
Handle multi-line messages.
Added option --hexcolors to print hex color codes instead of ANSI color escape codes.
diff --git a/utilities/gtk/camviewer.c b/utilities/gtk/camviewer.c
index be7eecd..ef4f4c9 100644
--- a/utilities/gtk/camviewer.c
+++ b/utilities/gtk/camviewer.c
@@ -741,15 +741,20 @@ gboolean inputkeys(GtkWidget* widget, GdkEventKey* event, void* data)
return 0;
}
+char sendingmsg=0;
void sendmessage(GtkEntry* entry, void* data)
{
const char* msg=gtk_entry_get_text(entry);
+ if(!msg[0]){return;} // Don't send empty lines
+ if(sendingmsg){return;}
+ sendingmsg=1;
inputhistory_add(msg);
char* pm=0;
if(!strncmp(msg, "/pm ", 4))
{
pm_open(&msg[4], 1);
gtk_entry_set_text(entry, "");
+ sendingmsg=0;
return;
}
else if(msg[0]!='/') // If we're in a PM tab, send messages as PMs
@@ -763,6 +768,7 @@ void sendmessage(GtkEntry* entry, void* data)
if(!user) // Person we were PMing with left
{
gtk_entry_set_text(entry, "");
+ sendingmsg=0;
return;
}
pm=strdup(user->nick);
@@ -791,6 +797,7 @@ void sendmessage(GtkEntry* entry, void* data)
!strncmp(msg, "/topic ", 7))
{
gtk_entry_set_text(entry, "");
+ sendingmsg=0;
return;
}
if(!strncmp(msg, "/msg ", 5))
@@ -807,6 +814,7 @@ void sendmessage(GtkEntry* entry, void* data)
gtk_entry_set_text(entry, "");
printchat("No such user", 0);
free(pm);
+ sendingmsg=0;
return;
}
}
@@ -825,6 +833,7 @@ void sendmessage(GtkEntry* entry, void* data)
printchat_color(text, mycolor, 8, pm);
gtk_entry_set_text(entry, "");
free(pm);
+ sendingmsg=0;
}
void startsession(GtkButton* button, void* x)