$ git clone http://tcclient.ion.nu/tc_client.git
commit ac97ab85c7a870f3e3f08ea247666f1eac90db9c
Author: Alicia <...>
Date:   Thu Dec 8 16:04:31 2016 +0100

    tc_client-gtk: disable the input field and the broadcast menu when in "lurker" mode.

diff --git a/ChangeLog b/ChangeLog
index 4fca712..056db41 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -21,6 +21,7 @@ tc_client-gtk: build fixes for windows.
 tc_client-gtk: tweaks for windows compatibility.
 tc_client-gtk: bugfix: hiding your own camera caused a segfault.
 tc_client-gtk: added an icon to mark moderators in the user list.
+tc_client-gtk: disable the input field and the broadcast menu when in "lurker" mode.
 dist/appimage.sh: fix audio in appimages by building ffmpeg with support for nellymoser and speex, and depending on the system's libao and libpulse instead of including it in the appimage.
 libcamera(escapi): handle failure to open camera more gracefully.
 irchack: pass along "<user> cammed up" notifications.
diff --git a/utilities/gtk/camviewer.c b/utilities/gtk/camviewer.c
index b9bdcf7..b17d68f 100644
--- a/utilities/gtk/camviewer.c
+++ b/utilities/gtk/camviewer.c
@@ -568,6 +568,12 @@ gboolean handledata(GIOChannel* iochannel, GIOCondition condition, gpointer x)
     printchat(buf, 0, 0, 0);
     return 1;
   }
+  if(!strncmp(buf, "Captcha not completed,", 22))
+  {
+    printchat(buf, 0, 0, 0);
+    gui_disableinputs();
+    return 1;
+  }
   if(!strcmp(buf, "Server disconnected"))
   {
     printchat(buf, 0, 0, 0);
diff --git a/utilities/gtk/gui.c b/utilities/gtk/gui.c
index ad04b36..c4b12d0 100644
--- a/utilities/gtk/gui.c
+++ b/utilities/gtk/gui.c
@@ -1100,3 +1100,9 @@ void gui_init(char frombuild)
   }
   gtk_widget_show_all(startwindow);
 }
+
+void gui_disableinputs(void)
+{
+  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(gui, "inputfield")), 0);
+  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(gui, "menuitem_broadcast")), 0);
+}
diff --git a/utilities/gtk/gui.h b/utilities/gtk/gui.h
index e75ed65..aab6905 100644
--- a/utilities/gtk/gui.h
+++ b/utilities/gtk/gui.h
@@ -69,6 +69,7 @@ extern void stopbroadcasting(GtkMenuItem* x, void* y);
 extern gboolean handleresize(GtkWidget* widget, GdkEventConfigure* event, void* data);
 extern void handleresizepane(GObject* obj, GParamSpec* spec, void* data);
 extern void gui_init(char frombuild);
+extern void gui_disableinputs(void);
 
 extern GtkBuilder* gui;
 extern GdkCursor* gui_cursor_text;