pidgin/pidgin

Merged in default (pull request #703)

2020-06-29, Gary Kramlich
cfcc32ea06a8
Merged in default (pull request #703)

Remove the conversation placement preferences and code.

Approved-by: Elliott Sales de Andrade
Approved-by: John Bailey
--- a/ChangeLog.API Sat Jun 27 00:13:49 2020 -0500
+++ b/ChangeLog.API Mon Jun 29 21:24:32 2020 +0000
@@ -594,6 +594,13 @@
* PidginBuddyList.connection_errors
* pidgin_check_if_dir
* PidginConversation.sg
+ * PidginConvPlacementFunc
+ * pidgin_conv_placement_get_name
+ * pidgin_conv_placement_add_fnc
+ * pidgin_conv_placement_remove_fnc
+ * pidgin_conv_placement_get_fnc
+ * pidgin_conv_placement_set_current_func
+ * pidgin_conv_placement_get_current_func
* PIDGIN_DIALOG
* pidgin_dialogs_alias_contact
* pidgin_make_pretty_arrows
--- a/pidgin/gtkconv.c Sat Jun 27 00:13:49 2020 -0500
+++ b/pidgin/gtkconv.c Mon Jun 29 21:24:32 2020 +0000
@@ -5829,9 +5829,9 @@
{
GList *cl;
PurpleConversation *conv;
- PidginConversation *gtkconv;
for (cl = purple_conversations_get_all(); cl != NULL; cl = cl->next) {
+ PidginConversation *gtkconv = NULL;
conv = (PurpleConversation *)cl->data;
@@ -5962,13 +5962,6 @@
}
static void
-conv_placement_usetabs_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
-{
- purple_prefs_trigger_callback(PIDGIN_PREFS_ROOT "/conversations/placement");
-}
-
-static void
account_status_changed_cb(PurpleAccount *account, PurpleStatus *oldstatus,
PurpleStatus *newstatus)
{
@@ -6036,23 +6029,6 @@
}
-static void
-conv_placement_pref_cb(const char *name, PurplePrefType type,
- gconstpointer value, gpointer data)
-{
- PidginConvPlacementFunc func;
-
- if (!purple_strequal(name, PIDGIN_PREFS_ROOT "/conversations/placement"))
- return;
-
- func = pidgin_conv_placement_get_fnc(value);
-
- if (func == NULL)
- return;
-
- pidgin_conv_placement_set_current_func(func);
-}
-
static PidginConversation *
get_gtkconv_with_contact(PurpleContact *contact)
{
@@ -6414,8 +6390,6 @@
purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/show_formatting_toolbar", TRUE);
- purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/placement", "last");
- purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/placement_number", 1);
purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/bgcolor", "");
purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/fgcolor", "");
purple_prefs_add_string(PIDGIN_PREFS_ROOT "/conversations/font_face", "");
@@ -6467,13 +6441,6 @@
purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/tab_side",
tab_side_pref_cb, NULL);
- purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/tabs",
- conv_placement_usetabs_cb, NULL);
-
- purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/placement",
- conv_placement_pref_cb, NULL);
- purple_prefs_trigger_callback(PIDGIN_PREFS_ROOT "/conversations/placement");
-
purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/conversations/minimum_entry_lines",
minimum_entry_lines_pref_cb, NULL);
@@ -8528,399 +8495,6 @@
return NULL;
}
-
-/**************************************************************************
- * Conversation placement functions
- **************************************************************************/
-typedef struct
-{
- char *id;
- char *name;
- PidginConvPlacementFunc fnc;
-
-} ConvPlacementData;
-
-static GList *conv_placement_fncs = NULL;
-static PidginConvPlacementFunc place_conv = NULL;
-
-/* This one places conversations in the last made window. */
-static void
-conv_placement_last_created_win(PidginConversation *conv)
-{
- PidginConvWindow *win;
-
- GList *l = g_list_last(pidgin_conv_windows_get_list());
- win = l ? l->data : NULL;;
-
- if (win == NULL) {
- win = pidgin_conv_window_new();
-
- g_signal_connect(G_OBJECT(win->window), "configure_event",
- G_CALLBACK(gtk_conv_configure_cb), NULL);
-
- pidgin_conv_window_add_gtkconv(win, conv);
- pidgin_conv_window_show(win);
- } else {
- pidgin_conv_window_add_gtkconv(win, conv);
- }
-}
-
-/* This one places conversations in the last made window of the same type. */
-static gboolean
-conv_placement_last_created_win_type_configured_cb(GtkWidget *w,
- GdkEventConfigure *event, PidginConversation *conv)
-{
- GdkMonitor *monitor = NULL;
- GdkRectangle geo;
- int x, y;
- GList *all;
-
- if (gtk_widget_get_visible(w))
- gtk_window_get_position(GTK_WINDOW(w), &x, &y);
- else
- return FALSE; /* carry on normally */
-
- /* Workaround for GTK+ bug # 169811 - "configure_event" is fired
- * when the window is being maximized */
- if (gdk_window_get_state(gtk_widget_get_window(w)) & GDK_WINDOW_STATE_MAXIMIZED)
- return FALSE;
-
- monitor = gdk_display_get_monitor_at_window(gdk_display_get_default(),
- event->window);
- gdk_monitor_get_geometry(monitor, &geo);
-
- /* don't save off-screen positioning */
- if (x + event->width < geo.x ||
- y + event->height < geo.y ||
- x > geo.width ||
- y > geo.height) {
- return FALSE; /* carry on normally */
- }
-
- for (all = conv->convs; all != NULL; all = all->next) {
- if (PURPLE_IS_IM_CONVERSATION(conv->active_conv) != PURPLE_IS_IM_CONVERSATION(all->data)) {
- /* this window has different types of conversation, don't save */
- return FALSE;
- }
- }
-
- if (PURPLE_IS_IM_CONVERSATION(conv->active_conv)) {
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/x", x);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/y", y);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/width", event->width);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/im/height", event->height);
- } else if (PURPLE_IS_CHAT_CONVERSATION(conv->active_conv)) {
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/x", x);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/y", y);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/width", event->width);
- purple_prefs_set_int(PIDGIN_PREFS_ROOT "/conversations/chat/height", event->height);
- }
-
- return FALSE;
-}
-
-static void
-conv_placement_last_created_win_type(PidginConversation *conv)
-{
- PidginConvWindow *win;
-
- if (PURPLE_IS_IM_CONVERSATION(conv->active_conv))
- win = pidgin_conv_window_last_im();
- else
- win = pidgin_conv_window_last_chat();
-
- if (win == NULL) {
- win = pidgin_conv_window_new();
-
- if (PURPLE_IS_IM_CONVERSATION(conv->active_conv) ||
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/width") == 0) {
- pidgin_conv_set_position_size(win,
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/x"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/y"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/width"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/im/height"));
- } else if (PURPLE_IS_CHAT_CONVERSATION(conv->active_conv)) {
- pidgin_conv_set_position_size(win,
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/x"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/y"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/width"),
- purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/chat/height"));
- }
-
- pidgin_conv_window_add_gtkconv(win, conv);
- pidgin_conv_window_show(win);
-
- g_signal_connect(G_OBJECT(win->window), "configure_event",
- G_CALLBACK(conv_placement_last_created_win_type_configured_cb), conv);
- } else
- pidgin_conv_window_add_gtkconv(win, conv);
-}
-
-/* This one places each conversation in its own window. */
-static void
-conv_placement_new_window(PidginConversation *conv)
-{
- PidginConvWindow *win;
-
- win = pidgin_conv_window_new();
-
- g_signal_connect(G_OBJECT(win->window), "configure_event",
- G_CALLBACK(gtk_conv_configure_cb), NULL);
-
- pidgin_conv_window_add_gtkconv(win, conv);
-
- pidgin_conv_window_show(win);
-}
-
-static PurpleGroup *
-conv_get_group(PidginConversation *conv)
-{
- PurpleGroup *group = NULL;
-
- if (PURPLE_IS_IM_CONVERSATION(conv->active_conv)) {
- PurpleBuddy *buddy;
-
- buddy = purple_blist_find_buddy(purple_conversation_get_account(conv->active_conv),
- purple_conversation_get_name(conv->active_conv));
-
- if (buddy != NULL)
- group = purple_buddy_get_group(buddy);
-
- } else if (PURPLE_IS_CHAT_CONVERSATION(conv->active_conv)) {
- PurpleChat *chat;
-
- chat = purple_blist_find_chat(purple_conversation_get_account(conv->active_conv),
- purple_conversation_get_name(conv->active_conv));
-
- if (chat != NULL)
- group = purple_chat_get_group(chat);
- }
-
- return group;
-}
-
-/*
- * This groups things by, well, group. Buddies from groups will always be
- * grouped together, and a buddy from a group not belonging to any currently
- * open windows will get a new window.
- */
-static void
-conv_placement_by_group(PidginConversation *conv)
-{
- PurpleGroup *group = NULL;
- GList *wl, *cl;
-
- group = conv_get_group(conv);
-
- /* Go through the list of IMs and find one with this group. */
- for (wl = pidgin_conv_windows_get_list(); wl != NULL; wl = wl->next) {
- PidginConvWindow *win2;
- PidginConversation *conv2;
- PurpleGroup *group2 = NULL;
-
- win2 = wl->data;
-
- for (cl = win2->gtkconvs;
- cl != NULL;
- cl = cl->next) {
- conv2 = cl->data;
-
- group2 = conv_get_group(conv2);
-
- if (group == group2) {
- pidgin_conv_window_add_gtkconv(win2, conv);
-
- return;
- }
- }
- }
-
- /* Make a new window. */
- conv_placement_new_window(conv);
-}
-
-/* This groups things by account. Otherwise, the same semantics as above */
-static void
-conv_placement_by_account(PidginConversation *conv)
-{
- GList *wins, *convs;
- PurpleAccount *account;
-
- account = purple_conversation_get_account(conv->active_conv);
-
- /* Go through the list of IMs and find one with this group. */
- for (wins = pidgin_conv_windows_get_list(); wins != NULL; wins = wins->next) {
- PidginConvWindow *win2;
- PidginConversation *conv2;
-
- win2 = wins->data;
-
- for (convs = win2->gtkconvs;
- convs != NULL;
- convs = convs->next) {
- conv2 = convs->data;
-
- if (account == purple_conversation_get_account(conv2->active_conv)) {
- pidgin_conv_window_add_gtkconv(win2, conv);
- return;
- }
- }
- }
-
- /* Make a new window. */
- conv_placement_new_window(conv);
-}
-
-static ConvPlacementData *
-get_conv_placement_data(const char *id)
-{
- ConvPlacementData *data = NULL;
- GList *n;
-
- for (n = conv_placement_fncs; n; n = n->next) {
- data = n->data;
- if (purple_strequal(data->id, id))
- return data;
- }
-
- return NULL;
-}
-
-static void
-add_conv_placement_fnc(const char *id, const char *name,
- PidginConvPlacementFunc fnc)
-{
- ConvPlacementData *data;
-
- data = g_new(ConvPlacementData, 1);
-
- data->id = g_strdup(id);
- data->name = g_strdup(name);
- data->fnc = fnc;
-
- conv_placement_fncs = g_list_append(conv_placement_fncs, data);
-}
-
-static void
-ensure_default_funcs(void)
-{
- if (conv_placement_fncs == NULL) {
- add_conv_placement_fnc("last", _("Last created window"),
- conv_placement_last_created_win);
- add_conv_placement_fnc("im_chat", _("Separate IM and Chat windows"),
- conv_placement_last_created_win_type);
- add_conv_placement_fnc("new", _("New window"),
- conv_placement_new_window);
- add_conv_placement_fnc("group", _("By group"),
- conv_placement_by_group);
- add_conv_placement_fnc("account", _("By account"),
- conv_placement_by_account);
- }
-}
-
-GList *
-pidgin_conv_placement_get_options(void)
-{
- GList *n, *list = NULL;
- ConvPlacementData *data;
-
- ensure_default_funcs();
-
- for (n = conv_placement_fncs; n; n = n->next) {
- data = n->data;
- list = g_list_append(list, data->name);
- list = g_list_append(list, data->id);
- }
-
- return list;
-}
-
-
-void
-pidgin_conv_placement_add_fnc(const char *id, const char *name,
- PidginConvPlacementFunc fnc)
-{
- g_return_if_fail(id != NULL);
- g_return_if_fail(name != NULL);
- g_return_if_fail(fnc != NULL);
-
- ensure_default_funcs();
-
- add_conv_placement_fnc(id, name, fnc);
-}
-
-void
-pidgin_conv_placement_remove_fnc(const char *id)
-{
- ConvPlacementData *data = get_conv_placement_data(id);
-
- if (data == NULL)
- return;
-
- conv_placement_fncs = g_list_remove(conv_placement_fncs, data);
-
- g_free(data->id);
- g_free(data->name);
- g_free(data);
-}
-
-const char *
-pidgin_conv_placement_get_name(const char *id)
-{
- ConvPlacementData *data;
-
- ensure_default_funcs();
-
- data = get_conv_placement_data(id);
-
- if (data == NULL)
- return NULL;
-
- return data->name;
-}
-
-PidginConvPlacementFunc
-pidgin_conv_placement_get_fnc(const char *id)
-{
- ConvPlacementData *data;
-
- ensure_default_funcs();
-
- data = get_conv_placement_data(id);
-
- if (data == NULL)
- return NULL;
-
- return data->fnc;
-}
-
-void
-pidgin_conv_placement_set_current_func(PidginConvPlacementFunc func)
-{
- g_return_if_fail(func != NULL);
-
- /* If tabs are enabled, set the function, otherwise, NULL it out. */
- if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/tabs"))
- place_conv = func;
- else
- place_conv = NULL;
-}
-
-PidginConvPlacementFunc
-pidgin_conv_placement_get_current_func(void)
-{
- return place_conv;
-}
-
-void
-pidgin_conv_placement_place(PidginConversation *gtkconv)
-{
- if (place_conv)
- place_conv(gtkconv);
- else
- conv_placement_new_window(gtkconv);
-}
-
gboolean
pidgin_conv_is_hidden(PidginConversation *gtkconv)
{
@@ -8974,6 +8548,25 @@
return (luminosity_ratio > min_contrast_ratio);
}
+void
+pidgin_conv_placement_place(PidginConversation *conv) {
+ PidginConvWindow *win;
+
+ GList *l = g_list_last(pidgin_conv_windows_get_list());
+ win = l ? l->data : NULL;;
+
+ if (win == NULL) {
+ win = pidgin_conv_window_new();
+
+ g_signal_connect(G_OBJECT(win->window), "configure_event",
+ G_CALLBACK(gtk_conv_configure_cb), NULL);
+
+ pidgin_conv_window_add_gtkconv(win, conv);
+ pidgin_conv_window_show(win);
+ } else {
+ pidgin_conv_window_add_gtkconv(win, conv);
+ }
+}
static GArray*
generate_nick_colors(guint numcolors, GdkRGBA background)
--- a/pidgin/gtkconvwin.h Sat Jun 27 00:13:49 2020 -0500
+++ b/pidgin/gtkconvwin.h Mon Jun 29 21:24:32 2020 +0000
@@ -278,53 +278,7 @@
*/
PidginConvWindow *pidgin_conv_window_last_chat(void);
-/**************************************************************************
- * GTK+ Conversation Placement API
- **************************************************************************/
-
-/**
- * PidginConvPlacementFunc: (skip)
- */
-typedef void (*PidginConvPlacementFunc)(PidginConversation *conv);
-
-/**
- * pidgin_conv_placement_get_options: (skip)
- */
-GList *pidgin_conv_placement_get_options(void);
-/**
- * pidgin_conv_placement_get_name: (skip)
- */
-const char *pidgin_conv_placement_get_name(const char *id);
-
-/**
- * pidgin_conv_placement_place: (skip)
- */
-void pidgin_conv_placement_place(PidginConversation *gtkconv);
-
-/**
- * pidgin_conv_placement_add_fnc: (skip)
- */
-void pidgin_conv_placement_add_fnc(const char *id, const char *name, PidginConvPlacementFunc fnc);
-
-/**
- * pidgin_conv_placement_remove_fnc: (skip)
- */
-void pidgin_conv_placement_remove_fnc(const char *id);
-
-/**
- * pidgin_conv_placement_get_fnc: (skip)
- */
-PidginConvPlacementFunc pidgin_conv_placement_get_fnc(const char *id);
-
-/**
- * pidgin_conv_placement_set_current_func: (skip)
- */
-void pidgin_conv_placement_set_current_func(PidginConvPlacementFunc func);
-
-/**
- * pidgin_conv_placement_get_current_func: (skip)
- */
-PidginConvPlacementFunc pidgin_conv_placement_get_current_func(void);
+void pidgin_conv_placement_place(PidginConversation *conv);
G_END_DECLS
--- a/pidgin/gtkprefs.c Sat Jun 27 00:13:49 2020 -0500
+++ b/pidgin/gtkprefs.c Mon Jun 29 21:24:32 2020 +0000
@@ -110,7 +110,6 @@
GtkWidget *tabs_vbox;
GtkWidget *close_on_tabs;
PidginPrefCombo tab_side;
- PidginPrefCombo placement;
} conversations;
} iface;
@@ -1708,14 +1707,6 @@
win->iface.conversations.tab_side.type = PURPLE_PREF_INT;
win->iface.conversations.tab_side.key = PIDGIN_PREFS_ROOT "/conversations/tab_side";
pidgin_prefs_bind_dropdown(&win->iface.conversations.tab_side);
-
- win->iface.conversations.placement.type = PURPLE_PREF_STRING;
- win->iface.conversations.placement.key = PIDGIN_PREFS_ROOT "/conversations/placement";
- names = pidgin_conv_placement_get_options();
- pidgin_prefs_bind_dropdown_from_list(
- &win->iface.conversations.placement,
- names);
- g_list_free(names);
}
/* This is also Win32-specific, but must be visible for Glade binding. */
@@ -3487,9 +3478,6 @@
gtk_widget_class_bind_template_child(
widget_class, PidginPrefsWindow,
iface.conversations.tab_side.combo);
- gtk_widget_class_bind_template_child(
- widget_class, PidginPrefsWindow,
- iface.conversations.placement.combo);
/* Browser page */
gtk_widget_class_bind_template_child(
@@ -3851,8 +3839,6 @@
/* Rename some old prefs */
purple_prefs_rename(PIDGIN_PREFS_ROOT "/logging/log_ims", "/purple/logging/log_ims");
purple_prefs_rename(PIDGIN_PREFS_ROOT "/logging/log_chats", "/purple/logging/log_chats");
- purple_prefs_rename("/purple/conversations/placement",
- PIDGIN_PREFS_ROOT "/conversations/placement");
purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/im/raise_on_events", "/plugins/gtk/X11/notify/method_raise");
--- a/pidgin/plugins/extplacement.c Sat Jun 27 00:13:49 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
- * Extra conversation placement options for Purple
- *
- * Pidgin is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
- */
-
-#include <glib/gi18n-lib.h>
-
-#include "pidgin.h"
-#include <purple.h>
-
-#include "pidginplugininfo.h"
-#include "gtkconv.h"
-#include "gtkconvwin.h"
-
-static void
-conv_placement_by_number(PidginConversation *conv)
-{
- PidginConvWindow *win = NULL;
- GList *wins = NULL;
-
- if (purple_prefs_get_bool("/plugins/gtk/extplacement/placement_number_separate"))
- win = PURPLE_IS_IM_CONVERSATION(conv->active_conv) ?
- pidgin_conv_window_last_im() : pidgin_conv_window_last_chat();
- else if ((wins = pidgin_conv_windows_get_list()) != NULL)
- win = g_list_last(wins)->data;
-
- if (win == NULL) {
- win = pidgin_conv_window_new();
-
- pidgin_conv_window_add_gtkconv(win, conv);
- pidgin_conv_window_show(win);
- } else {
- int max_count = purple_prefs_get_int("/plugins/gtk/extplacement/placement_number");
- int count = pidgin_conv_window_get_gtkconv_count(win);
-
- if (count < max_count)
- pidgin_conv_window_add_gtkconv(win, conv);
- else {
- GList *l = NULL;
-
- for (l = pidgin_conv_windows_get_list(); l != NULL; l = l->next) {
- win = l->data;
-
- if (!conv || !conv->active_conv ||
- !G_TYPE_FROM_INSTANCE(conv->active_conv))
- {
- g_warn_if_reached();
- continue;
- }
-
- if (purple_prefs_get_bool("/plugins/gtk/extplacement/placement_number_separate") &&
- G_TYPE_FROM_INSTANCE(pidgin_conv_window_get_active_conversation(win)) != G_TYPE_FROM_INSTANCE(conv->active_conv))
- continue;
-
- count = pidgin_conv_window_get_gtkconv_count(win);
- if (count < max_count) {
- pidgin_conv_window_add_gtkconv(win, conv);
- return;
- }
- }
- win = pidgin_conv_window_new();
-
- pidgin_conv_window_add_gtkconv(win, conv);
- pidgin_conv_window_show(win);
- }
- }
-}
-
-static PurplePluginPrefFrame *
-get_plugin_pref_frame(PurplePlugin *plugin) {
- PurplePluginPrefFrame *frame;
- PurplePluginPref *ppref;
-
- frame = purple_plugin_pref_frame_new();
-
- ppref = purple_plugin_pref_new_with_label(_("Conversation Placement"));
- purple_plugin_pref_frame_add(frame, ppref);
-
- /* Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above */
- ppref = purple_plugin_pref_new_with_label(_("Note: The preference for \"New conversations\" must be set to \"By conversation count\"."));
- purple_plugin_pref_set_pref_type(ppref, PURPLE_PLUGIN_PREF_INFO);
- purple_plugin_pref_frame_add(frame, ppref);
-
- ppref = purple_plugin_pref_new_with_name_and_label(
- "/plugins/gtk/extplacement/placement_number",
- _("Number of conversations per window"));
- purple_plugin_pref_set_bounds(ppref, 1, 50);
- purple_plugin_pref_frame_add(frame, ppref);
-
- ppref = purple_plugin_pref_new_with_name_and_label(
- "/plugins/gtk/extplacement/placement_number_separate",
- _("Separate IM and Chat windows when placing by number"));
- purple_plugin_pref_frame_add(frame, ppref);
-
- return frame;
-}
-
-static PidginPluginInfo *
-plugin_query(GError **error)
-{
- const gchar * const authors[] = {
- "Stu Tomlinson <stu@nosnilmot.com>",
- NULL
- };
-
- return pidgin_plugin_info_new(
- "id", "gtk-extplacement",
- "name", N_("ExtPlacement"),
- "version", DISPLAY_VERSION,
- "category", N_("User interface"),
- "summary", N_("Extra conversation placement options."),
- "description", N_("Restrict the number of conversations per "
- "windows, optionally separating IMs and "
- "Chats"),
- "authors", authors,
- "website", PURPLE_WEBSITE,
- "abi-version", PURPLE_ABI_VERSION,
- "pref-frame-cb", get_plugin_pref_frame,
- NULL
- );
-}
-
-static gboolean
-plugin_load(PurplePlugin *plugin, GError **error)
-{
- purple_prefs_add_none("/plugins/gtk/extplacement");
- purple_prefs_add_int("/plugins/gtk/extplacement/placement_number", 4);
- purple_prefs_add_bool("/plugins/gtk/extplacement/placement_number_separate", FALSE);
-
- pidgin_conv_placement_add_fnc("number", _("By conversation count"),
- &conv_placement_by_number);
- purple_prefs_trigger_callback(PIDGIN_PREFS_ROOT "/conversations/placement");
- return TRUE;
-}
-
-static gboolean
-plugin_unload(PurplePlugin *plugin, GError **error)
-{
- pidgin_conv_placement_remove_fnc("number");
- purple_prefs_trigger_callback(PIDGIN_PREFS_ROOT "/conversations/placement");
- return TRUE;
-}
-
-PURPLE_PLUGIN_INIT(extplacement, plugin_query, plugin_load, plugin_unload);
--- a/pidgin/plugins/meson.build Sat Jun 27 00:13:49 2020 -0500
+++ b/pidgin/plugins/meson.build Mon Jun 29 21:24:32 2020 +0000
@@ -25,11 +25,6 @@
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '')
- extplacement = library('extplacement', 'extplacement.c',
- dependencies : [libpurple_dep, libpidgin_dep, glib],
- name_prefix : '',
- install : true, install_dir : PIDGIN_PLUGINDIR)
-
gtkbuddynote = library('gtkbuddynote', 'gtkbuddynote.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
--- a/pidgin/resources/Prefs/prefs.ui Sat Jun 27 00:13:49 2020 -0500
+++ b/pidgin/resources/Prefs/prefs.ui Mon Jun 29 21:24:32 2020 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1
+<!-- Generated with glade 3.22.2
Pidgin - Internet Messenger
Copyright (C) Pidgin Developers <devel@pidgin.im>
@@ -424,7 +424,7 @@
<property name="title" translatable="yes">Preferences</property>
<property name="type_hint">dialog</property>
<signal name="destroy" handler="delete_prefs" swapped="no"/>
- <child>
+ <child type="titlebar">
<placeholder/>
</child>
<child internal-child="vbox">
@@ -682,51 +682,6 @@
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">N_ew conversations:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">iface.conversations.placement.combo</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="iface.conversations.placement.combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="model">iface.conversations.placement.store</property>
- <child>
- <object class="GtkCellRendererText"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
</object>
<packing>
<property name="expand">False</property>
@@ -3583,7 +3538,6 @@
<widgets>
<widget name="label2"/>
<widget name="label3"/>
- <widget name="label4"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="network.sg">