Fix hiding unsupported channel modes in topicbar

This commit is contained in:
TingPing 2014-02-07 03:53:02 -05:00
parent 02275dff51
commit 2f847428aa

View File

@ -925,8 +925,17 @@ mg_populate (session *sess)
/* restore all the channel mode buttons */ /* restore all the channel mode buttons */
ignore_chanmode = TRUE; ignore_chanmode = TRUE;
for (i = 0; i < NUM_FLAG_WIDS - 1; i++) for (i = 0; i < NUM_FLAG_WIDS - 1; i++)
{
/* Hide if mode not supported */
if (sess->server && strchr (sess->server->chanmodes, chan_flags[i]) == NULL)
gtk_widget_hide (sess->gui->flag_wid[i]);
else
gtk_widget_show (sess->gui->flag_wid[i]);
/* Update state */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui->flag_wid[i]), gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui->flag_wid[i]),
res->flag_wid_state[i]); res->flag_wid_state[i]);
}
ignore_chanmode = FALSE; ignore_chanmode = FALSE;
if (gui->lagometer) if (gui->lagometer)
@ -3428,20 +3437,10 @@ fe_update_mode_buttons (session *sess, char mode, char sign)
{ {
if (!sess->gui->is_tab || sess == current_tab) if (!sess->gui->is_tab || sess == current_tab)
{ {
/* Mode not supported */ ignore_chanmode = TRUE;
if (sess->server && strchr (sess->server->chanmodes, mode) == NULL) if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i])) != state)
{ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i]), state);
gtk_widget_hide (sess->gui->flag_wid[i]); ignore_chanmode = FALSE;
}
else
{
gtk_widget_show (sess->gui->flag_wid[i]);
ignore_chanmode = TRUE;
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i])) != state)
gtk_toggle_button_set_active (
GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i]), state);
ignore_chanmode = FALSE;
}
} else } else
{ {
sess->res->flag_wid_state[i] = state; sess->res->flag_wid_state[i] = state;