$ git clone http://tcclient.ion.nu/tc_client.git
commit 8bdd983936479a8417041b145bef7d7f67f4d24c
Author: Alicia <...>
Date: Sat Dec 17 11:30:48 2016 +0100
tc_client-gtk: added an option to show the greenroom menu even when you're not a moderator.
diff --git a/ChangeLog b/ChangeLog
index bc4dad3..d13bc93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,7 @@ tc_client-gtk: disable the input field and the broadcast menu when in "lurker" m
tc_client-gtk: added an option to hide join/quit/nickname notifications.
tc_client-gtk: made the user list sorted.
tc_client-gtk: added support for viewing and approving greenroom cameras.
+tc_client-gtk: added an option to show the greenroom menu even when you're not a moderator.
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/gtkgui.glade b/gtkgui.glade
index 15d9031..4607ce5 100644
--- a/gtkgui.glade
+++ b/gtkgui.glade
@@ -1140,6 +1140,29 @@
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="showgreenroom">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <child>
+ <object class="GtkLabel" id="label42">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Show the greenroom menu as non-moderator</property>
+ <property name="wrap">True</property>
+ <property name="wrap_mode">word-char</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
</child>
</object>
diff --git a/utilities/gtk/greenroom.c b/utilities/gtk/greenroom.c
index 77c6e68..754fa3c 100644
--- a/utilities/gtk/greenroom.c
+++ b/utilities/gtk/greenroom.c
@@ -20,9 +20,6 @@
#include <stdlib.h>
#include <ctype.h>
#include <sys/stat.h>
-#ifndef NO_PRCTL
- #include <sys/prctl.h>
-#endif
#include <glib.h>
#include <gtk/gtk.h>
#include <libswscale/swscale.h>
@@ -31,6 +28,10 @@
#else
#include <libavcore/imgutils.h>
#endif
+#include "../compat.h"
+#ifndef NO_PRCTL
+ #include <sys/prctl.h>
+#endif
#include "compat.h"
#include "gui.h"
#include "main.h"
@@ -294,7 +295,7 @@ char greenroom_gotnick(const char* id, const char* nick)
void greenroom_join(const char* id)
{
// Only add greenroom menu if mod (or optionally see greenroom anyway?)
- if(user_ismod(nickname))
+ if(user_ismod(nickname) || config_get_bool("showgreenroom"))
{
menuitem=gtk_menu_item_new_with_label("Greenroom");
gtk_menu_shell_append(GTK_MENU_SHELL(gtk_builder_get_object(gui, "menubar")), menuitem);
diff --git a/utilities/gtk/gui.c b/utilities/gtk/gui.c
index e2b5256..2c01981 100644
--- a/utilities/gtk/gui.c
+++ b/utilities/gtk/gui.c
@@ -97,6 +97,8 @@ void settings_reset(GtkBuilder* gui)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option), config_get_set("autoopencams")?config_get_bool("autoopencams"):1);
option=GTK_WIDGET(gtk_builder_get_object(gui, "disablesnapshots"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option), config_get_bool("disablesnapshots"));
+ option=GTK_WIDGET(gtk_builder_get_object(gui, "showgreenroom"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option), config_get_bool("showgreenroom"));
// Misc/cookies
option=GTK_WIDGET(gtk_builder_get_object(gui, "storecookiecheckbox"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option), config_get_bool("storecookies"));
@@ -175,6 +177,8 @@ void savesettings(GtkButton* button, GtkBuilder* gui)
write(tc_client_in[1], v?"/disablesnapshots\n":"/enablesnapshots\n", v?18:17);
}
config_set("disablesnapshots", v?"True":"False");
+ option=GTK_WIDGET(gtk_builder_get_object(gui, "showgreenroom"));
+ config_set("showgreenroom", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(option))?"True":"False");
// Misc/cookies
option=GTK_WIDGET(gtk_builder_get_object(gui, "storecookiecheckbox"));
config_set("storecookies", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(option))?"True":"False");