--- a/ChangeLog.API Sun Oct 10 05:01:55 2021 -0500
+++ b/ChangeLog.API Mon Oct 11 21:17:53 2021 -0500
@@ -710,6 +710,7 @@
* PALETTE_NUM_COLORS renamed to PIDGIN_PALETTE_NUM_COLORS
* pidgin_account_option_menu_* renamed to
+ * pidgin_conversations_get_unseen_all removed hidden_only parameter. * pidgin_make_mini_dialog renamed to
pidgin_mini_dialog_new_with_buttons; note the argument order
has changed to match pidgin_mini_dialog_new
@@ -721,6 +722,7 @@
* conversation-timestamp (gtkconv signal)
+ * conversation-hiding (gtkconv signal) * GtkIMHtml.clipboard_html_string
* GtkIMHtml.clipboard_text_string
@@ -777,6 +779,7 @@
* PidginConvPlacementFunc
* pidgin_conv_get_tab_icon, use PidginPresenceIcon instead.
+ * pidgin_conv_is_hidden * pidgin_conv_placement_get_name
* pidgin_conv_placement_add_fnc
* pidgin_conv_placement_remove_fnc
--- a/pidgin/gtkblist.c Sun Oct 10 05:01:55 2021 -0500
+++ b/pidgin/gtkblist.c Mon Oct 11 21:17:53 2021 -0500
@@ -178,20 +178,12 @@
static void pidgin_blist_expand_contact_cb(GtkWidget *w, PurpleBlistNode *node);
static void set_urgent(void);
- PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE = 1 << 0, /* Whether there's pending message in a conversation */
- PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK = 1 << 1, /* Whether there's a pending message in a chat that mentions our nick */
GtkTreeRowReference *row;
gboolean contact_expanded;
gboolean recent_signonoff;
gint recent_signonoff_timer;
- PurpleConversation *conv;
- PidginBlistNodeFlags flags;
+ PurpleConversation *conv; /***************************************************
@@ -349,22 +341,6 @@
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w)));
-static PurpleConversation *
-find_conversation_with_buddy(PurpleBuddy *buddy)
- PurpleConversationManager *manager;
- PidginBlistNode *ui = g_object_get_data(G_OBJECT(buddy), UI_DATA);
- manager = purple_conversation_manager_get_default();
- return purple_conversation_manager_find_im(manager,
- purple_buddy_get_account(buddy),
- purple_buddy_get_name(buddy));
static void gtk_blist_join_chat(PurpleChat *chat)
@@ -3111,8 +3087,8 @@
- if (bnode && bnode->conv.conv) {
- conv = PURPLE_CHAT_CONVERSATION(bnode->conv.conv);
+ if (bnode && bnode->conv) { + conv = PURPLE_CHAT_CONVERSATION(bnode->conv); PurpleConversation *chat_conv;
PurpleConversationManager *manager;
@@ -3559,39 +3535,25 @@
- PurpleConversation *conv = find_conversation_with_buddy(buddy);
- PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
- if (gtkconv == NULL && size == PIDGIN_STATUS_ICON_SMALL) {
- PidginBlistNode *ui = g_object_get_data(G_OBJECT(buddy), UI_DATA);
- if (ui == NULL || (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE)) {
- if (icon == NULL) { /* The conversation didn't have a new message. */
- PurplePresence *p = purple_buddy_get_presence(buddy);
- trans = purple_presence_is_idle(p);
- if (PURPLE_BUDDY_IS_ONLINE(buddy) && gtkbuddynode && gtkbuddynode->recent_signonoff) {
- } else if (gtkbuddynode && gtkbuddynode->recent_signonoff) {
- } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_UNAVAILABLE)) {
- icon = "pidgin-user-busy";
- } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY)) {
- icon = "pidgin-user-away";
- } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY)) {
- icon = "pidgin-user-extended-away";
- } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE)) {
- icon = "pidgin-user-offline";
- } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_INVISIBLE)) {
- icon = "pidgin-user-invisible";
- icon = "pidgin-user-available";
+ PurplePresence *p = purple_buddy_get_presence(buddy); + trans = purple_presence_is_idle(p); + if (PURPLE_BUDDY_IS_ONLINE(buddy) && gtkbuddynode && gtkbuddynode->recent_signonoff) { + } else if (gtkbuddynode && gtkbuddynode->recent_signonoff) { + } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_UNAVAILABLE)) { + icon = "pidgin-user-busy"; + } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_AWAY)) { + icon = "pidgin-user-away"; + } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_EXTENDED_AWAY)) { + icon = "pidgin-user-extended-away"; + } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_OFFLINE)) { + icon = "pidgin-user-offline"; + } else if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_INVISIBLE)) { + icon = "pidgin-user-invisible"; + icon = "pidgin-user-available"; @@ -3620,22 +3582,9 @@
PurplePresence *presence;
PidginBlistNode *gtkcontactnode = NULL;
char *idletime = NULL, *statustext = NULL, *nametext = NULL;
- PurpleConversation *conv = find_conversation_with_buddy(b);
- gboolean hidden_conv = FALSE;
gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
- PidginBlistNode *ui = g_object_get_data(G_OBJECT(b), UI_DATA);
- if (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE)
- if (PIDGIN_CONVERSATION(conv) == NULL)
/* XXX Good luck cleaning up this crap */
contact = PURPLE_CONTACT(PURPLE_BLIST_NODE(b)->parent);
@@ -3731,12 +3680,6 @@
- nametext = g_strdup_printf("<b>%s</b>", tmp);
/* Put it all together */
if ((!aliased || biglist) && (statustext || idletime)) {
/* using <span size='smaller'> breaks the status, so it must be separated into <small><span>*/
@@ -3773,12 +3716,6 @@
- text = g_strdup_printf("<b>%s</b>", tmp);
@@ -3876,42 +3813,9 @@
conversation_deleted_update_ui_cb(PurpleConversation *conv, PidginBlistNode *ui)
- if (ui->conv.conv != conv)
-written_msg_update_ui_cb(PurpleConversation *conv, PurpleMessage *msg, PurpleBlistNode *node)
- PidginBlistNode *ui = g_object_get_data(G_OBJECT(node), UI_DATA);
- if (ui->conv.conv != conv)
- if (!pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv)))
- if (!(purple_message_get_flags(msg) & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)))
- ui->conv.flags |= PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE;
- if (PURPLE_IS_CHAT_CONVERSATION(conv) && (purple_message_get_flags(msg) & PURPLE_MESSAGE_NICK))
- ui->conv.flags |= PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK;
- pidgin_blist_update(purple_blist_get_default(), node);
-displayed_msg_update_ui_cb(PidginConversation *gtkconv, PurpleBlistNode *node)
- PidginBlistNode *ui = g_object_get_data(G_OBJECT(node), UI_DATA);
- if (ui->conv.conv != gtkconv->active_conv)
- ui->conv.flags &= ~(PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE |
- PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK);
- pidgin_blist_update(purple_blist_get_default(), node);
@@ -3927,14 +3831,10 @@
buddies = g_slist_delete_link(buddies, buddies);
purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation",
ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui);
- purple_signal_connect(purple_conversations_get_handle(), "wrote-im-msg",
- ui, PURPLE_CALLBACK(written_msg_update_ui_cb), buddy);
- purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed",
- ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), buddy);
} else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
PurpleChat *chat = purple_blist_find_chat(account, purple_conversation_get_name(conv));
@@ -3944,14 +3844,10 @@
ui = g_object_get_data(G_OBJECT(chat), UI_DATA);
purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation",
ui, PURPLE_CALLBACK(conversation_deleted_update_ui_cb), ui);
- purple_signal_connect(purple_conversations_get_handle(), "wrote-chat-msg",
- ui, PURPLE_CALLBACK(written_msg_update_ui_cb), chat);
- purple_signal_connect(pidgin_conversations_get_handle(), "conversation-displayed",
- ui, PURPLE_CALLBACK(displayed_msg_update_ui_cb), chat);
@@ -5662,22 +5558,12 @@
gboolean showicons = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
gboolean biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
- PurpleConversation *conv;
- gboolean hidden = FALSE;
gboolean selected = (gtkblist->selected_node == node);
gboolean nick_said = FALSE;
if (!insert_node(list, node, &iter))
- ui = g_object_get_data(G_OBJECT(node), UI_DATA);
- if (conv && pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv))) {
- hidden = (ui->conv.flags & PIDGIN_BLIST_NODE_HAS_PENDING_MESSAGE);
- nick_said = (ui->conv.flags & PIDGIN_BLIST_CHAT_HAS_PENDING_MESSAGE_WITH_NICK);
status = pidgin_blist_get_status_icon(node,
biglist ? PIDGIN_STATUS_ICON_LARGE : PIDGIN_STATUS_ICON_SMALL);
emblem = pidgin_blist_get_emblem(node);
@@ -5696,14 +5582,10 @@
- tmp = g_strdup_printf("<span color='%s' weight='%s'>%s</span>",
- color, hidden ? "bold" : "normal", mark);
- tmp = g_strdup_printf("<span weight='%s'>%s</span>",
- hidden ? "bold" : "normal", mark);
+ tmp = g_strdup_printf("<span color='%s'>%s</span>", color, mark);
protocol_icon = pidgin_create_protocol_icon(purple_chat_get_account(chat), PIDGIN_PROTOCOL_ICON_SMALL);
--- a/pidgin/gtkconv.c Sun Oct 10 05:01:55 2021 -0500
+++ b/pidgin/gtkconv.c Mon Oct 11 21:17:53 2021 -0500
@@ -132,7 +132,6 @@
static GtkWidget *invite_dialog = NULL;
static GtkWidget *warn_close_dialog = NULL;
-static PidginConvWindow *hidden_convwin = NULL;
static GList *window_list = NULL;
/* Lists of status icons at all available sizes for use as window icons */
@@ -158,7 +157,6 @@
static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields);
static void focus_out_from_menubar(GtkWidget *wid, PidginConvWindow *win);
static void pidgin_conv_tab_pack(PidginConvWindow *win, PidginConversation *gtkconv);
-static void hide_conv(PidginConversation *gtkconv, gboolean closetimer);
static void pidgin_conv_set_position_size(PidginConvWindow *win, int x, int y,
@@ -202,21 +200,9 @@
* For chats, close immediately if the chat is not in the buddylist, or if the chat is
* not marked 'Persistent' */
PurpleConversation *conv = gtkconv->active_conv;
- PurpleAccount *account = purple_conversation_get_account(conv);
- const char *name = purple_conversation_get_name(conv);
- if (PURPLE_IS_IM_CONVERSATION(conv)) {
- if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/im/close_immediately"))
- close_this_sucker(gtkconv);
- hide_conv(gtkconv, TRUE);
- } else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
- PurpleChat *chat = purple_blist_find_chat(account, name);
- !purple_blist_node_get_bool(&chat->node, "gtk-persistent"))
- close_this_sucker(gtkconv);
- hide_conv(gtkconv, FALSE);
+ if(PURPLE_IS_IM_CONVERSATION(conv) || PURPLE_IS_CHAT_CONVERSATION(conv)) { + close_this_sucker(gtkconv); @@ -797,35 +783,6 @@
add_remove_cb(NULL, PIDGIN_CONVERSATION(conv));
-close_already(gpointer data)
-hide_conv(PidginConversation *gtkconv, gboolean closetimer)
- purple_signal_emit(pidgin_conversations_get_handle(),
- "conversation-hiding", gtkconv);
- for (list = g_list_copy(gtkconv->convs); list; list = g_list_delete_link(list, list)) {
- PurpleConversation *conv = list->data;
- guint timer = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "close-timer"));
- g_source_remove(timer);
- timer = g_timeout_add_seconds(CLOSE_CONV_TIMEOUT_SECS, close_already, conv);
- g_object_set_data(G_OBJECT(conv), "close-timer", GINT_TO_POINTER(timer));
- pidgin_conv_window_remove_gtkconv(gtkconv->win, gtkconv);
- pidgin_conv_window_add_gtkconv(hidden_convwin, gtkconv);
menu_close_conv_cb(GtkAction *action, gpointer data)
@@ -1582,7 +1539,6 @@
pidgin_conversations_get_unseen(GList *l,
PidginUnseenState min_state,
@@ -1592,12 +1548,11 @@
PurpleConversation *conv = (PurpleConversation*)l->data;
PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
- if(gtkconv == NULL || gtkconv->active_conv != conv)
+ if(gtkconv == NULL || gtkconv->active_conv != conv) {
- if (gtkconv->unseen_state >= min_state &&
- (!hidden_only || gtkconv->win == hidden_convwin)) {
+ if (gtkconv->unseen_state >= min_state) { r = g_list_prepend(r, conv);
@@ -1608,8 +1563,7 @@
pidgin_conversations_get_unseen_all(PidginUnseenState min_state,
PurpleConversationManager *manager;
GList *list, *ret = NULL;
@@ -1617,8 +1571,7 @@
manager = purple_conversation_manager_get_default();
list = purple_conversation_manager_get_all(manager);
- ret = pidgin_conversations_get_unseen(list, min_state, hidden_only,
+ ret = pidgin_conversations_get_unseen(list, min_state, max_count); @@ -2003,8 +1956,9 @@
PurpleConversation *conv;
- if (win->window == NULL || win == hidden_convwin)
+ if (win->window == NULL) { gtkconv = pidgin_conv_window_get_active_gtkconv(win);
@@ -3239,16 +3193,7 @@
G_CALLBACK(gtk_widget_grab_focus),
- pidgin_conv_window_add_gtkconv(hidden_convwin, gtkconv);
- pidgin_conv_placement_place(gtkconv);
-pidgin_conv_new_hidden(PurpleConversation *conv)
- private_gtkconv_new(conv, TRUE);
+ pidgin_conv_placement_place(gtkconv); @@ -3264,33 +3209,8 @@
received_im_msg_cb(PurpleAccount *account, char *sender, char *message,
PurpleConversation *conv, PurpleMessageFlags flags)
- PurpleConversationUiOps *ui_ops = pidgin_conversations_get_conv_ui_ops();
- /* create hidden conv if hide_new pref is always */
- if (purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "always"))
- /* create hidden conv if hide_new pref is away and account is away */
- if (purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "away") &&
- !purple_status_is_available(purple_account_get_active_status(account)))
- if (conv && PIDGIN_IS_PIDGIN_CONVERSATION(conv) && !hide) {
- PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
- if (gtkconv->win == hidden_convwin) {
- pidgin_conv_attach_to_conversation(gtkconv->active_conv);
- ui_ops->create_conversation = pidgin_conv_new_hidden;
- purple_im_conversation_new(account, sender);
- ui_ops->create_conversation = pidgin_conv_new;
/* Somebody wants to keep this conversation around, so don't time it out */
timer = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "close-timer"));
@@ -4034,7 +3954,7 @@
PidginConversation *gtkconv = conv ? PIDGIN_CONVERSATION(conv) : NULL;
PurpleMessageFlags flags;
- if (conv == NULL || (gtkconv && gtkconv->win != hidden_convwin))
flags = purple_message_get_flags(msg);
if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) {
@@ -4265,74 +4185,6 @@
-account_status_changed_cb(PurpleAccount *account, PurpleStatus *oldstatus,
- PurpleStatus *newstatus)
- PurpleConversation *conv = NULL;
- PidginConversation *gtkconv;
- if(!purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "away"))
- if(purple_status_is_available(oldstatus) || !purple_status_is_available(newstatus))
- for (l = hidden_convwin->gtkconvs; l; ) {
- conv = gtkconv->active_conv;
- if (PURPLE_IS_CHAT_CONVERSATION(conv) ||
- account != purple_conversation_get_account(conv))
- pidgin_conv_attach_to_conversation(conv);
- /* TODO: do we need to do anything for any other conversations that are in the same gtkconv here?
- * I'm a little concerned that not doing so will cause the "pending" indicator in the gtkblist not to be cleared. -DAA*/
- purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_UNSEEN);
-hide_new_pref_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
- PurpleConversation *conv = NULL;
- PidginConversation *gtkconv;
- gboolean when_away = FALSE;
- if(purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "always"))
- if(purple_strequal(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new"), "away"))
- for (l = hidden_convwin->gtkconvs; l; )
- conv = gtkconv->active_conv;
- if (PURPLE_IS_CHAT_CONVERSATION(conv) ||
- gtkconv->unseen_count == 0 ||
- (when_away && !purple_status_is_available(
- purple_account_get_active_status(
- purple_conversation_get_account(conv)))))
- pidgin_conv_attach_to_conversation(conv);
static PidginConversation *
get_gtkconv_with_contact(PurpleContact *contact)
@@ -4652,23 +4504,6 @@
PidginConversation *gtkconv;
- if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) {
- /* This is pretty much always the case now. */
- gtkconv = PIDGIN_CONVERSATION(conv);
- if (gtkconv->win != hidden_convwin)
- pidgin_conv_window_remove_gtkconv(hidden_convwin, gtkconv);
- pidgin_conv_placement_place(gtkconv);
- purple_signal_emit(pidgin_conversations_get_handle(),
- "conversation-displayed", gtkconv);
- pidgin_conv_attach(list->data);
pidgin_conv_attach(conv);
gtkconv = PIDGIN_CONVERSATION(conv);
@@ -4784,9 +4619,6 @@
purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/im/entry_height", 54);
- purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new", "never");
- purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/im/close_immediately", TRUE);
purple_prefs_add_none(PIDGIN_PREFS_ROOT "/win32");
purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/win32/minimize_new_convs", FALSE);
@@ -4800,10 +4632,6 @@
purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/tab_side",
- purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/im/hide_new",
- hide_new_pref_cb, NULL);
/**********************************************************************
**********************************************************************/
@@ -4832,10 +4660,6 @@
purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
PURPLE_TYPE_CONVERSATION);
- purple_signal_register(handle, "conversation-hiding",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- G_TYPE_POINTER); /* (PidginConversation *) */
purple_signal_register(handle, "conversation-displayed",
purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
G_TYPE_POINTER); /* (PidginConversation *) */
@@ -4878,12 +4702,6 @@
purple_conversations_set_ui_ops(&conversation_ui_ops);
- hidden_convwin = pidgin_conv_window_new();
- window_list = g_list_remove(window_list, hidden_convwin);
- purple_signal_connect(purple_accounts_get_handle(), "account-status-changed",
- handle, PURPLE_CALLBACK(account_status_changed_cb), NULL);
/* Callbacks to update a conversation */
purple_signal_connect(blist_handle, "blist-node-added", handle,
G_CALLBACK(buddy_update_cb), NULL);
@@ -5531,10 +5349,7 @@
g_return_if_fail(conv != NULL);
- /* clear unseen flag if conversation is not hidden */
- if(!pidgin_conv_is_hidden(gtkconv)) {
- gtkconv_set_unseen(gtkconv, PIDGIN_UNSEEN_NONE);
+ gtkconv_set_unseen(gtkconv, PIDGIN_UNSEEN_NONE); @@ -6058,11 +5873,13 @@
g_signal_handlers_disconnect_matched(win->window, G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, gtkconv);
- if (win->gtkconvs && win->gtkconvs->next == NULL)
+ if (win->gtkconvs && win->gtkconvs->next == NULL) { pidgin_conv_tab_pack(win, win->gtkconvs->data);
- if (!win->gtkconvs && win != hidden_convwin)
pidgin_conv_window_destroy(win);
@@ -6153,14 +5970,6 @@
return g_list_length(win->gtkconvs);
-pidgin_conv_is_hidden(PidginConversation *gtkconv)
- g_return_val_if_fail(gtkconv != NULL, FALSE);
- return (gtkconv->win == hidden_convwin);
pidgin_conv_placement_place(PidginConversation *conv) {
--- a/pidgin/gtkconv.h Sun Oct 10 05:01:55 2021 -0500
+++ b/pidgin/gtkconv.h Mon Oct 11 21:17:53 2021 -0500
@@ -166,7 +166,6 @@
* pidgin_conversations_get_unseen_all:
* @min_state: The minimum unseen state.
- * @hidden_only: If %TRUE, only consider hidden conversations.
* @max_count: Maximum number of conversations to return, or 0 for
@@ -180,9 +179,7 @@
* Returns: (transfer container) (element-type PurpleConversation): List of PurpleConversation matching criteria, or %NULL.
-pidgin_conversations_get_unseen_all(PidginUnseenState min_state,
+pidgin_conversations_get_unseen_all(PidginUnseenState min_state, guint max_count); * pidgin_conversations_fill_menu:
@@ -244,14 +241,6 @@
int pidgin_conv_get_tab_at_xy(PidginConvWindow *win, int x, int y, gboolean *to_right);
- * pidgin_conv_is_hidden:
- * @gtkconv: The GTK conversation.
- * Returns: %TRUE if the conversation is hidden, %FALSE otherwise.
-gboolean pidgin_conv_is_hidden(PidginConversation *gtkconv);
/**************************************************************************/
/* GTK Conversations Subsystem */
/**************************************************************************/
--- a/pidgin/prefs/pidginprefs.c Sun Oct 10 05:01:55 2021 -0500
+++ b/pidgin/prefs/pidginprefs.c Mon Oct 11 21:17:53 2021 -0500
@@ -97,9 +97,6 @@
- PidginPrefCombo hide_new;
GtkWidget *minimize_new_convs;
@@ -115,7 +112,6 @@
PidginPrefCombo notification_chat;
GtkWidget *show_incoming_formatting;
- GtkWidget *close_immediately;
GtkWidget *use_smooth_scrolling;
@@ -1329,11 +1325,6 @@
bind_interface_page(PidginPrefsWindow *win)
- win->iface.im.hide_new.type = PURPLE_PREF_STRING;
- win->iface.im.hide_new.key = PIDGIN_PREFS_ROOT "/conversations/im/hide_new";
- pidgin_prefs_bind_dropdown(&win->iface.im.hide_new);
pidgin_prefs_bind_checkbox(PIDGIN_PREFS_ROOT "/win32/minimize_new_convs",
win->iface.win32.minimize_new_convs);
@@ -1399,8 +1390,6 @@
pidgin_prefs_bind_checkbox(PIDGIN_PREFS_ROOT "/conversations/show_incoming_formatting",
win->conversations.show_incoming_formatting);
- pidgin_prefs_bind_checkbox(PIDGIN_PREFS_ROOT "/conversations/im/close_immediately",
- win->conversations.im.close_immediately);
pidgin_prefs_bind_checkbox("/purple/conversations/im/send_typing",
win->conversations.im.send_typing);
@@ -2336,9 +2325,6 @@
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
- iface.im.hide_new.combo);
- gtk_widget_class_bind_template_child(
- widget_class, PidginPrefsWindow,
iface.win32.minimize_new_convs);
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
@@ -2362,9 +2348,6 @@
conversations.show_incoming_formatting);
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
- conversations.im.close_immediately);
- gtk_widget_class_bind_template_child(
- widget_class, PidginPrefsWindow,
conversations.im.send_typing);
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
@@ -2670,17 +2653,6 @@
purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound/theme");
purple_prefs_remove(PIDGIN_PREFS_ROOT "/sound");
- /* Convert old queuing prefs to hide_new 3-way pref. */
- if (purple_prefs_exists("/plugins/gtk/docklet/queue_messages") &&
- purple_prefs_get_bool("/plugins/gtk/docklet/queue_messages"))
- purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new", "always");
- else if (purple_prefs_exists(PIDGIN_PREFS_ROOT "/away/queue_messages") &&
- purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/away/queue_messages"))
- purple_prefs_set_string(PIDGIN_PREFS_ROOT "/conversations/im/hide_new", "away");
purple_prefs_remove(PIDGIN_PREFS_ROOT "/away/queue_messages");
purple_prefs_remove(PIDGIN_PREFS_ROOT "/away");
purple_prefs_remove("/plugins/gtk/docklet/queue_messages");
--- a/pidgin/resources/Prefs/prefs.ui Sun Oct 10 05:01:55 2021 -0500
+++ b/pidgin/resources/Prefs/prefs.ui Mon Oct 11 21:17:53 2021 -0500
@@ -348,50 +348,6 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="spacing">6</property>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">_Hide new IM conversations:</property>
- <property name="use-underline">True</property>
- <property name="xalign">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- <object class="GtkComboBox" id="iface.im.hide_new.combo">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="model">iface.im.hide_new.store</property>
- <object class="GtkCellRendererText"/>
- <attribute name="text">0</attribute>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
<object class="GtkCheckButton" id="iface.win32.minimize_new_convs">
<property name="label" translatable="yes">Minimi_ze new conversation windows</property>
<property name="visible">True</property>
@@ -403,7 +359,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property> @@ -642,20 +598,6 @@
- <object class="GtkCheckButton" id="conversations.im.close_immediately">
- <property name="label" translatable="yes">Close IMs immediately when the tab is closed</property>
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">False</property>
- <property name="draw-indicator">True</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
<object class="GtkCheckButton" id="conversations.im.send_typing">
<property name="label" translatable="yes">_Notify buddies that you are typing to them</property>
<property name="visible">True</property>
@@ -667,7 +609,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">2</property> @@ -681,7 +623,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">4</property>
+ <property name="position">3</property> @@ -696,7 +638,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">5</property>
+ <property name="position">4</property> @@ -734,7 +676,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">6</property>
+ <property name="position">5</property>