pidgin/pidgin

Merged in default (pull request #577)

2019-10-04, Gary Kramlich
1788230a5ef3
Merged in default (pull request #577)

Switch to native file chooser dialog

Approved-by: Gary Kramlich
--- a/meson.build Fri Oct 04 03:36:29 2019 +0000
+++ b/meson.build Fri Oct 04 03:46:50 2019 +0000
@@ -301,7 +301,7 @@
# Check Pidgin dependencies
# #######################################################################
if get_option('gtkui')
- gtk = dependency('gtk+-3.0', version : '>= 3.18.0')
+ gtk = dependency('gtk+-3.0', version : '>= 3.20.0')
talkatu_dep = dependency('talkatu', version: '>=0.1.0', required : false)
if talkatu_dep.found()
--- a/pidgin/gtkaccount.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkaccount.c Fri Oct 04 03:46:50 2019 +0000
@@ -125,7 +125,7 @@
GtkWidget *icon_hbox;
GtkWidget *icon_check;
GtkWidget *icon_entry;
- GtkWidget *icon_filesel;
+ GtkFileChooserNative *icon_filesel;
GtkWidget *icon_preview;
GtkWidget *icon_text;
PurpleImage *icon_img;
@@ -340,14 +340,14 @@
set_dialog_icon(dialog, data, len, g_strdup(filename));
}
- dialog->icon_filesel = NULL;
+ g_clear_object(&dialog->icon_filesel);
}
static void
icon_select_cb(GtkWidget *button, AccountPrefsDialog *dialog)
{
dialog->icon_filesel = pidgin_buddy_icon_chooser_new(GTK_WINDOW(dialog->window), icon_filesel_choose_cb, dialog);
- gtk_widget_show_all(dialog->icon_filesel);
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(dialog->icon_filesel));
}
static void
@@ -1258,8 +1258,7 @@
if (dialog->icon_img)
g_object_unref(dialog->icon_img);
- if (dialog->icon_filesel)
- gtk_widget_destroy(dialog->icon_filesel);
+ g_clear_object(&dialog->icon_filesel);
purple_signals_disconnect_by_handle(dialog);
--- a/pidgin/gtkblist.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkblist.c Fri Oct 04 03:46:50 2019 +0000
@@ -1680,15 +1680,21 @@
purple_buddy_icons_node_set_custom_icon_from_file(node,
filename);
}
+ g_object_set_data(G_OBJECT(data), "buddy-icon-chooser", NULL);
}
static void
set_node_custom_icon(GtkWidget *w, PurpleBlistNode *node)
{
- /* This doesn't keep track of the returned dialog (so that successive
- * calls could be made to re-display that dialog). Do we want that? */
- GtkWidget *win = pidgin_buddy_icon_chooser_new(NULL, set_node_custom_icon_cb, node);
- gtk_widget_show_all(win);
+ GtkFileChooserNative *win =
+ g_object_get_data(G_OBJECT(node), "buddy-icon-chooser");
+ if (win == NULL) {
+ win = pidgin_buddy_icon_chooser_new(NULL, set_node_custom_icon_cb,
+ node);
+ g_object_set_data_full(G_OBJECT(node), "buddy-icon-chooser", win,
+ g_object_unref);
+ }
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(win));
}
static void
--- a/pidgin/gtkconv.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkconv.c Fri Oct 04 03:46:50 2019 +0000
@@ -2235,31 +2235,32 @@
custom_icon_sel_cb(const char *filename, gpointer data)
{
if (filename) {
- const gchar *name;
- PurpleBuddy *buddy;
- PurpleContact *contact;
- PidginConversation *gtkconv = data;
- PurpleConversation *conv = gtkconv->active_conv;
- PurpleAccount *account = purple_conversation_get_account(conv);
-
- name = purple_conversation_get_name(conv);
- buddy = purple_blist_find_buddy(account, name);
- if (!buddy) {
- purple_debug_info("custom-icon", "You can only set custom icons for people on your buddylist.\n");
- return;
- }
- contact = purple_buddy_get_contact(buddy);
+ PurpleContact *contact = data;
purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, filename);
}
-}
-
-static void
-set_custom_icon_cb(GtkWidget *widget, PidginConversation *gtkconv)
-{
- GtkWidget *win = pidgin_buddy_icon_chooser_new(GTK_WINDOW(gtkconv->win->window),
- custom_icon_sel_cb, gtkconv);
- gtk_widget_show_all(win);
+ g_object_set_data(G_OBJECT(data), "buddy-icon-chooser", NULL);
+}
+
+static void
+set_custom_icon_cb(GtkWidget *widget, PurpleContact *contact)
+{
+ GtkFileChooserNative *win = NULL;
+
+ /* Should not happen as menu item should be disabled. */
+ g_return_if_fail(contact != NULL);
+
+ win = g_object_get_data(G_OBJECT(contact), "buddy-icon-chooser");
+ if (win == NULL) {
+ GtkMenu *menu = GTK_MENU(gtk_widget_get_parent(widget));
+ GtkWidget *toplevel =
+ gtk_widget_get_toplevel(gtk_menu_get_attach_widget(menu));
+ win = pidgin_buddy_icon_chooser_new(GTK_WINDOW(toplevel),
+ custom_icon_sel_cb, contact);
+ g_object_set_data_full(G_OBJECT(contact), "buddy-icon-chooser", win,
+ (GDestroyNotify)g_object_unref);
+ }
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(win));
}
static void
@@ -2354,7 +2355,8 @@
static gboolean
icon_menu(GtkWidget *widget, GdkEventButton *e, PidginConversation *gtkconv)
{
- static GtkWidget *menu = NULL;
+ GtkWidget *menu = NULL;
+ GList *old_menus = NULL;
PurpleConversation *conv;
PurpleBuddy *buddy;
@@ -2371,10 +2373,14 @@
* If a menu already exists, destroy it before creating a new one,
* thus freeing-up the memory it occupied.
*/
- if (menu != NULL)
+ while ((old_menus = gtk_menu_get_for_attach_widget(widget)) != NULL) {
+ menu = old_menus->data;
+ gtk_menu_detach(GTK_MENU(menu));
gtk_widget_destroy(menu);
+ }
menu = gtk_menu_new();
+ gtk_menu_attach_to_widget(GTK_MENU(menu), widget, NULL);
if (gtkconv->u.im->anim &&
!(gdk_pixbuf_animation_is_static_image(gtkconv->u.im->anim)))
@@ -2384,22 +2390,31 @@
gtkconv->u.im->icon_timer);
}
+ conv = gtkconv->active_conv;
+ buddy = purple_blist_find_buddy(purple_conversation_get_account(conv),
+ purple_conversation_get_name(conv));
+
pidgin_new_menu_item(menu, _("Hide Icon"), NULL,
G_CALLBACK(remove_icon), gtkconv);
pidgin_new_menu_item(menu, _("Save Icon As..."), GTK_STOCK_SAVE_AS,
G_CALLBACK(icon_menu_save_cb), gtkconv);
- pidgin_new_menu_item(menu, _("Set Custom Icon..."), NULL,
- G_CALLBACK(set_custom_icon_cb), gtkconv);
+ if (buddy) {
+ PurpleContact *contact = purple_buddy_get_contact(buddy);
+ pidgin_new_menu_item(menu, _("Set Custom Icon..."), NULL,
+ G_CALLBACK(set_custom_icon_cb), contact);
+ } else {
+ GtkWidget *item =
+ pidgin_new_menu_item(menu, _("Set Custom Icon..."), NULL,
+ G_CALLBACK(set_custom_icon_cb), NULL);
+ gtk_widget_set_sensitive(item, FALSE);
+ }
pidgin_new_menu_item(menu, _("Change Size"), NULL,
G_CALLBACK(change_size_cb), gtkconv);
/* Is there a custom icon for this person? */
- conv = gtkconv->active_conv;
- buddy = purple_blist_find_buddy(purple_conversation_get_account(conv),
- purple_conversation_get_name(conv));
if (buddy)
{
PurpleContact *contact = purple_buddy_get_contact(buddy);
--- a/pidgin/gtkrequest.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkrequest.c Fri Oct 04 03:46:50 2019 +0000
@@ -44,7 +44,8 @@
PurpleRequestType type;
void *user_data;
- GtkWidget *dialog;
+ /* May be GtkWidget or GtkNativeDialog */
+ gpointer dialog;
GtkWidget *ok_button;
@@ -2346,27 +2347,10 @@
}
static void
-file_yes_no_cb(PidginRequestData *data, gint id)
-{
- /* Only call the callback if yes was selected, otherwise the request
- * (eg. file transfer) will be cancelled, then when a new filename is chosen
- * things go BOOM */
- if (id == 1) {
- if (data->cbs[1] != NULL)
- ((PurpleRequestFileCb)data->cbs[1])(data->user_data, data->u.file.name);
- purple_request_close(data->type, data);
- } else {
- pidgin_clear_cursor(GTK_WIDGET(data->dialog));
- }
-}
-
-static void
file_ok_check_if_exists_cb(GtkWidget *widget, gint response, PidginRequestData *data)
{
gchar *current_folder;
- generic_response_start(data);
-
if (response != GTK_RESPONSE_ACCEPT) {
if (data->cbs[0] != NULL)
((PurpleRequestFileCb)data->cbs[0])(data->user_data, NULL);
@@ -2384,16 +2368,10 @@
}
g_free(current_folder);
}
- if ((data->u.file.savedialog == TRUE) &&
- (g_file_test(data->u.file.name, G_FILE_TEST_EXISTS))) {
- purple_request_action(data, NULL, _("That file already exists"),
- _("Would you like to overwrite it?"), 0,
- NULL,
- data, 2,
- _("Overwrite"), G_CALLBACK(file_yes_no_cb),
- _("Choose New Name"), G_CALLBACK(file_yes_no_cb));
- } else
- file_yes_no_cb(data, 1);
+ if (data->cbs[1] != NULL) {
+ ((PurpleRequestFileCb)data->cbs[1])(data->user_data, data->u.file.name);
+ }
+ purple_request_close(data->type, data);
}
static void *
@@ -2402,7 +2380,7 @@
PurpleRequestCommonParameters *cpar, void *user_data)
{
PidginRequestData *data;
- GtkWidget *filesel;
+ GtkFileChooserNative *filesel;
#ifdef _WIN32
const gchar *current_folder;
gboolean folder_set = FALSE;
@@ -2417,20 +2395,15 @@
data->cbs[1] = ok_cb;
data->u.file.savedialog = savedialog;
- filesel = gtk_file_chooser_dialog_new(
- title ? title : (savedialog ? _("Save File...")
- : _("Open File...")),
- NULL,
- savedialog ? GTK_FILE_CHOOSER_ACTION_SAVE
- : GTK_FILE_CHOOSER_ACTION_OPEN,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- savedialog ? _("_Save")
- : _("_Open"),
- GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT);
-
- pidgin_request_add_help(GTK_DIALOG(filesel), cpar);
+ filesel = gtk_file_chooser_native_new(
+ title ? title
+ : (savedialog ? _("Save File...") : _("Open File...")),
+ NULL,
+ savedialog ? GTK_FILE_CHOOSER_ACTION_SAVE
+ : GTK_FILE_CHOOSER_ACTION_OPEN,
+ savedialog ? _("_Save") : _("_Open"), _("_Cancel"));
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(filesel),
+ TRUE);
if ((filename != NULL) && (*filename != '\0')) {
if (savedialog)
@@ -2466,10 +2439,13 @@
g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
G_CALLBACK(file_ok_check_if_exists_cb), data);
+#if 0
+ /* FIXME: Not implemented for native dialogs. */
pidgin_auto_parent_window(filesel);
+#endif
data->dialog = filesel;
- gtk_widget_show(filesel);
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(filesel));
return (void *)data;
}
@@ -2480,7 +2456,7 @@
void *user_data)
{
PidginRequestData *data;
- GtkWidget *dirsel;
+ GtkFileChooserNative *dirsel;
data = g_new0(PidginRequestData, 1);
data->type = PURPLE_REQUEST_FOLDER;
@@ -2491,16 +2467,9 @@
data->cbs[1] = ok_cb;
data->u.file.savedialog = FALSE;
- dirsel = gtk_file_chooser_dialog_new(
- title ? title : _("Select Folder..."),
- NULL,
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_OK"), GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dirsel), GTK_RESPONSE_ACCEPT);
-
- pidgin_request_add_help(GTK_DIALOG(dirsel), cpar);
+ dirsel = gtk_file_chooser_native_new(
+ title ? title : _("Select Folder..."), NULL,
+ GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_OK"), _("_Cancel"));
if ((dirname != NULL) && (*dirname != '\0'))
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dirsel), dirname);
@@ -2509,9 +2478,12 @@
G_CALLBACK(file_ok_check_if_exists_cb), data);
data->dialog = dirsel;
+#if 0
+ /* FIXME: Not implemented for native dialogs. */
pidgin_auto_parent_window(dirsel);
-
- gtk_widget_show(dirsel);
+#endif
+
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(dirsel));
return (void *)data;
}
@@ -2551,9 +2523,14 @@
g_free(data->cbs);
- pidgin_window_detach_children(GTK_WINDOW(data->dialog));
-
- gtk_widget_destroy(data->dialog);
+ if (type == PURPLE_REQUEST_FILE || type == PURPLE_REQUEST_FOLDER) {
+ /* Will be a GtkNativeDialog, not GtkDialog. */
+ g_object_unref(data->dialog);
+ } else {
+ pidgin_window_detach_children(GTK_WINDOW(data->dialog));
+
+ gtk_widget_destroy(data->dialog);
+ }
if (type == PURPLE_REQUEST_FIELDS)
purple_request_fields_destroy(data->u.multifield.fields);
@@ -2571,6 +2548,13 @@
g_return_val_if_fail(
purple_request_is_valid_ui_handle(data, NULL), NULL);
+ if (data->type == PURPLE_REQUEST_FILE ||
+ data->type == PURPLE_REQUEST_FOLDER) {
+ /* Not a GtkWidget, but a GtkFileChooserNative. Eventually this function
+ * should not be needed, once we don't need to auto-parent. */
+ return NULL;
+ }
+
return GTK_WINDOW(data->dialog);
}
--- a/pidgin/gtksmiley-manager.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtksmiley-manager.c Fri Oct 04 03:46:50 2019 +0000
@@ -180,14 +180,15 @@
static void
edit_dialog_image_choose(GtkWidget *widget, gpointer _edit_dialog)
{
- GtkWidget *file_chooser;
+ GtkFileChooserNative *file_chooser;
file_chooser = pidgin_buddy_icon_chooser_new(
GTK_WINDOW(gtk_widget_get_toplevel(widget)),
edit_dialog_image_choosen, _edit_dialog);
gtk_window_set_title(GTK_WINDOW(file_chooser), _("Custom Smiley"));
gtk_window_set_role(GTK_WINDOW(file_chooser),
"file-selector-custom-smiley");
- gtk_widget_show_all(file_chooser);
+ gtk_native_dialog_run(GTK_NATIVE_DIALOG(file_chooser));
+ g_object_unref(file_chooser);
}
--- a/pidgin/gtkstatusbox.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkstatusbox.c Fri Oct 04 03:46:50 2019 +0000
@@ -445,7 +445,7 @@
g_clear_object(&statusbox->buddy_icon);
g_clear_object(&statusbox->buddy_icon_hover);
- g_clear_pointer(&statusbox->buddy_icon_sel, gtk_widget_destroy);
+ g_clear_object(&statusbox->buddy_icon_sel);
g_clear_pointer(&statusbox->icon_box_menu, gtk_widget_destroy);
@@ -1410,12 +1410,10 @@
static void
choose_buddy_icon_cb(GtkWidget *w, PidginStatusBox *box)
{
- if (box->buddy_icon_sel) {
- gtk_window_present(GTK_WINDOW(box->buddy_icon_sel));
- } else {
+ if (box->buddy_icon_sel == NULL) {
box->buddy_icon_sel = pidgin_buddy_icon_chooser_new(GTK_WINDOW(gtk_widget_get_toplevel(w)), icon_choose_cb, box);
- gtk_widget_show_all(box->buddy_icon_sel);
}
+ gtk_native_dialog_show(GTK_NATIVE_DIALOG(box->buddy_icon_sel));
}
static void
@@ -1430,7 +1428,7 @@
buddy_icon_set_cb(filename, box);
}
- box->buddy_icon_sel = NULL;
+ g_clear_object(&box->buddy_icon_sel);
}
static void
--- a/pidgin/gtkstatusbox.h Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkstatusbox.h Fri Oct 04 03:46:50 2019 +0000
@@ -98,7 +98,7 @@
PurpleImage *buddy_icon_img;
GdkPixbuf *buddy_icon;
GdkPixbuf *buddy_icon_hover;
- GtkWidget *buddy_icon_sel;
+ GtkFileChooserNative *buddy_icon_sel;
GtkWidget *icon;
GtkWidget *icon_box;
GtkWidget *icon_box_menu;
--- a/pidgin/gtkutils.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkutils.c Fri Oct 04 03:46:50 2019 +0000
@@ -108,7 +108,7 @@
} PidginCompletionData;
struct _icon_chooser {
- GtkWidget *icon_filesel;
+ GtkFileChooserNative *icon_filesel;
GtkWidget *icon_preview;
GtkWidget *icon_text;
@@ -1893,10 +1893,6 @@
char *filename, *current_folder;
if (response != GTK_RESPONSE_ACCEPT) {
- if (response == GTK_RESPONSE_CANCEL) {
- gtk_widget_destroy(dialog->icon_filesel);
- }
- dialog->icon_filesel = NULL;
if (dialog->callback)
dialog->callback(NULL, dialog->data);
g_free(dialog);
@@ -1913,7 +1909,6 @@
if (dialog->callback)
dialog->callback(filename, dialog->data);
- gtk_widget_destroy(dialog->icon_filesel);
g_free(filename);
g_free(dialog);
}
@@ -1957,8 +1952,11 @@
g_free(markup);
}
-
-GtkWidget *pidgin_buddy_icon_chooser_new(GtkWindow *parent, void(*callback)(const char *, gpointer), gpointer data) {
+GtkFileChooserNative *
+pidgin_buddy_icon_chooser_new(GtkWindow *parent,
+ void (*callback)(const char *, gpointer),
+ gpointer data)
+{
struct _icon_chooser *dialog = g_new0(struct _icon_chooser, 1);
GtkWidget *vbox;
@@ -1969,13 +1967,9 @@
current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_icon_folder");
- dialog->icon_filesel = gtk_file_chooser_dialog_new(_("Buddy Icon"),
- parent,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog->icon_filesel), GTK_RESPONSE_ACCEPT);
+ dialog->icon_filesel = gtk_file_chooser_native_new(
+ _("Buddy Icon"), parent, GTK_FILE_CHOOSER_ACTION_OPEN, _("_Open"),
+ _("_Cancel"));
if ((current_folder != NULL) && (*current_folder != '\0'))
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog->icon_filesel),
current_folder);
@@ -1999,11 +1993,6 @@
G_CALLBACK(icon_filesel_choose_cb), dialog);
icon_preview_change_cb(NULL, dialog);
-#ifdef _WIN32
- g_signal_connect(G_OBJECT(dialog->icon_filesel), "show",
- G_CALLBACK(winpidgin_ensure_onscreen), dialog->icon_filesel);
-#endif
-
return dialog->icon_filesel;
}
--- a/pidgin/gtkutils.h Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkutils.h Fri Oct 04 03:46:50 2019 +0000
@@ -538,7 +538,9 @@
*
* Returns: (transfer full): The file dialog
*/
-GtkWidget *pidgin_buddy_icon_chooser_new(GtkWindow *parent, void(*callback)(const char*,gpointer), gpointer data);
+GtkFileChooserNative *pidgin_buddy_icon_chooser_new(
+ GtkWindow *parent, void (*callback)(const char *, gpointer),
+ gpointer data);
/**
* pidgin_convert_buddy_icon:
--- a/pidgin/gtkwhiteboard.c Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/gtkwhiteboard.c Fri Oct 04 03:46:50 2019 +0000
@@ -499,28 +499,23 @@
{
PidginWhiteboard *gtkwb = _gtkwb;
GdkPixbuf *pixbuf;
- GtkWidget *dialog;
+ GtkFileChooserNative *chooser;
int result;
- dialog = gtk_file_chooser_dialog_new(
- _("Save File"), GTK_WINDOW(gtkwb), GTK_FILE_CHOOSER_ACTION_SAVE,
- _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"),
- GTK_RESPONSE_ACCEPT, NULL);
+ chooser = gtk_file_chooser_native_new(_("Save File"), GTK_WINDOW(gtkwb),
+ GTK_FILE_CHOOSER_ACTION_SAVE,
+ _("_Save"), _("_Cancel"));
- gtk_file_chooser_set_do_overwrite_confirmation(
- GTK_FILE_CHOOSER(dialog), TRUE);
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(chooser),
+ TRUE);
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser),
+ "whiteboard.png");
- gtk_file_chooser_set_current_name(
- GTK_FILE_CHOOSER(dialog), "whiteboard.png");
-
- result = gtk_dialog_run(GTK_DIALOG(dialog));
-
+ result = gtk_native_dialog_run(GTK_NATIVE_DIALOG(chooser));
if (result == GTK_RESPONSE_ACCEPT) {
gboolean success;
gchar *filename =
- gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-
- gtk_widget_destroy(dialog);
+ gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
pixbuf = gdk_pixbuf_get_from_surface(
gtkwb->surface, 0, 0, gtkwb->width, gtkwb->height);
@@ -538,8 +533,9 @@
"couldn't be saved to \"%s\"", filename);
}
g_free(filename);
- } else if (result == GTK_RESPONSE_CANCEL)
- gtk_widget_destroy(dialog);
+ }
+
+ g_object_unref(chooser);
}
static void
--- a/pidgin/resources/About/about.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/About/about.ui Fri Oct 04 03:46:50 2019 +0000
@@ -2,7 +2,7 @@
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="Talkatu" version="0.0"/>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="build_info_store">
<columns>
<!-- column-name title -->
--- a/pidgin/resources/Accounts/chooser.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Accounts/chooser.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="model">
<columns>
<!-- column-name icon -->
--- a/pidgin/resources/Conversations/invite_dialog.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Conversations/invite_dialog.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<template class="PidginInviteDialog" parent="GtkDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
--- a/pidgin/resources/Debug/debug.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Debug/debug.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkTextTagTable" id="message-format">
<child type="tag">
<object class="GtkTextTag" id="tags.level[0]">
--- a/pidgin/resources/Debug/plugininfo.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Debug/plugininfo.ui Fri Oct 04 03:46:50 2019 +0000
@@ -2,7 +2,7 @@
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="Talkatu" version="0.0"/>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<!-- interface-local-resource-path ../ -->
<object class="TalkatuHtmlBuffer" id="buffer"/>
<template class="PidginDebugPluginInfo" parent="GtkDialog">
--- a/pidgin/resources/Log/log-viewer.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Log/log-viewer.ui Fri Oct 04 03:46:50 2019 +0000
@@ -2,7 +2,7 @@
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="Talkatu" version="0.0"/>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="TalkatuHtmlBuffer" id="log_buffer"/>
<object class="GtkTreeStore" id="treestore">
<columns>
--- a/pidgin/resources/Prefs/prefs.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Prefs/prefs.ui Fri Oct 04 03:46:50 2019 +0000
@@ -2,7 +2,7 @@
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="Talkatu" version="0.0"/>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="away.auto_reply.store">
<columns>
<!-- column-name text -->
--- a/pidgin/resources/Prefs/vv.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Prefs/vv.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step_increment">1</property>
--- a/pidgin/resources/Whiteboard/whiteboard.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Whiteboard/whiteboard.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.18"/>
+ <requires lib="gtk+" version="3.20"/>
<template class="PidginWhiteboard" parent="GtkWindow">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Pidgin Whiteboard</property>
--- a/pidgin/resources/Xfer/xfer.ui Fri Oct 04 03:36:29 2019 +0000
+++ b/pidgin/resources/Xfer/xfer.ui Fri Oct 04 03:46:50 2019 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
- <requires lib="gtk+" version="3.10"/>
+ <requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="model">
<columns>
<!-- column-name status -->