pidgin: 690e0c46: Check for media caps when the conversati...
maiku at soc.pidgin.im
maiku at soc.pidgin.im
Thu Aug 6 20:10:40 EDT 2009
-----------------------------------------------------------------
Revision: 690e0c46a823bc8a86dd97edef1482d8ba30d3a6
Ancestor: 854990d63dfa2b6aae75ea348c378b795738e68c
Author: maiku at soc.pidgin.im
Date: 2009-08-07T00:06:12
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/690e0c46a823bc8a86dd97edef1482d8ba30d3a6
Modified files:
pidgin/gtkconv.c
ChangeLog:
Check for media caps when the conversation menu is activated.
-------------- next part --------------
============================================================
--- pidgin/gtkconv.c f42bb456c67102ab14b7061a91b6728a06f28a3c
+++ pidgin/gtkconv.c 62f0495a236c973881f8a5263926abae1dc1dc90
@@ -3326,6 +3326,62 @@ static void
}
static void
+regenerate_media_items(PidginWindow *win)
+{
+#ifdef USE_VV
+ PurpleAccount *account;
+ PurpleConversation *conv;
+
+ conv = pidgin_conv_window_get_active_conversation(win);
+
+ if (conv == NULL) {
+ purple_debug_error("gtkconv", "couldn't get active conversation"
+ " when regenerating media items\n");
+ return;
+ }
+
+ account = purple_conversation_get_account(conv);
+
+ if (account == NULL) {
+ purple_debug_error("gtkconv", "couldn't get account when"
+ " regenerating media items\n");
+ return;
+ }
+
+ /*
+ * Check if account support voice and/or calls, and
+ * if the current buddy supports it.
+ */
+ if (account != NULL && purple_conversation_get_type(conv)
+ == PURPLE_CONV_TYPE_IM) {
+ PurpleMediaCaps caps =
+ purple_prpl_get_media_caps(account,
+ purple_conversation_get_name(conv));
+
+ gtk_widget_set_sensitive(win->audio_call,
+ caps & PURPLE_MEDIA_CAPS_AUDIO
+ ? TRUE : FALSE);
+ gtk_widget_set_sensitive(win->video_call,
+ caps & PURPLE_MEDIA_CAPS_VIDEO
+ ? TRUE : FALSE);
+ gtk_widget_set_sensitive(win->audio_video_call,
+ caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO
+ ? TRUE : FALSE);
+ } else if (purple_conversation_get_type(conv)
+ == PURPLE_CONV_TYPE_CHAT) {
+ /* for now, don't care about chats... */
+ gtk_widget_set_sensitive(win->audio_call, FALSE);
+ gtk_widget_set_sensitive(win->video_call, FALSE);
+ gtk_widget_set_sensitive(win->audio_video_call, FALSE);
+ } else {
+ gtk_widget_set_sensitive(win->audio_call, FALSE);
+ gtk_widget_set_sensitive(win->video_call, FALSE);
+ gtk_widget_set_sensitive(win->audio_video_call, FALSE);
+ }
+#endif
+}
+
+static void
regenerate_options_items(PidginWindow *win)
{
GtkWidget *menu;
@@ -3410,6 +3466,7 @@ static void menubar_activated(GtkWidget
static void menubar_activated(GtkWidget *item, gpointer data)
{
PidginWindow *win = data;
+ regenerate_media_items(win);
regenerate_options_items(win);
regenerate_plugins_items(win);
@@ -6484,36 +6541,6 @@ gray_stuff_out(PidginConversation *gtkco
buttons |= GTK_IMHTML_CUSTOM_SMILEY;
else
buttons &= ~GTK_IMHTML_CUSTOM_SMILEY;
-
-#ifdef USE_VV
- /* check if account support voice calls, and if the current buddy
- supports it */
- if (account != NULL && purple_conversation_get_type(conv)
- == PURPLE_CONV_TYPE_IM) {
- PurpleMediaCaps caps =
- purple_prpl_get_media_caps(account,
- purple_conversation_get_name(conv));
-
- gtk_widget_set_sensitive(win->audio_call,
- caps & PURPLE_MEDIA_CAPS_AUDIO
- ? TRUE : FALSE);
- gtk_widget_set_sensitive(win->video_call,
- caps & PURPLE_MEDIA_CAPS_VIDEO
- ? TRUE : FALSE);
- gtk_widget_set_sensitive(win->audio_video_call,
- caps & PURPLE_MEDIA_CAPS_AUDIO_VIDEO
- ? TRUE : FALSE);
- } else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) {
- /* for now, don't care about chats... */
- gtk_widget_set_sensitive(win->audio_call, FALSE);
- gtk_widget_set_sensitive(win->video_call, FALSE);
- gtk_widget_set_sensitive(win->audio_video_call, FALSE);
- } else {
- gtk_widget_set_sensitive(win->audio_call, FALSE);
- gtk_widget_set_sensitive(win->video_call, FALSE);
- gtk_widget_set_sensitive(win->audio_video_call, FALSE);
- }
-#endif
gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons);
if (account != NULL)
More information about the Commits
mailing list