Fri, 09 Nov 2018 20:39:37 -0600
pidgin: Use gtk_window_present() to present buddy list
This patch replaces usage of purple_blist_set_visible() with direct
calls to gtk_window_present() in cases where the buddy list window
should actually take focus.
--- a/pidgin/gtkaccount.c Fri Nov 09 20:30:25 2018 -0600 +++ b/pidgin/gtkaccount.c Fri Nov 09 20:39:37 2018 -0600 @@ -1350,7 +1350,11 @@ if (purple_accounts_get_all() == NULL) { /* We're adding our first account. Be polite and show the buddy list */ - purple_blist_set_visible(TRUE); + PidginBuddyList *blist = + pidgin_blist_get_default_gtk_blist(); + if (blist != NULL && blist->window != NULL) { + gtk_window_present(GTK_WINDOW(blist->window)); + } } account = purple_account_new(username, dialog->protocol_id);
--- a/pidgin/libpidgin.c Fri Nov 09 20:30:25 2018 -0600 +++ b/pidgin/libpidgin.c Fri Nov 09 20:39:37 2018 -0600 @@ -366,7 +366,11 @@ static void pidgin_activate_cb(GApplication *application, gpointer user_data) { - purple_blist_set_visible(TRUE); + PidginBuddyList *blist = pidgin_blist_get_default_gtk_blist(); + + if (blist != NULL && blist->window != NULL) { + gtk_window_present(GTK_WINDOW(blist->window)); + } } static gint
--- a/pidgin/win32/gtkwin32dep.c Fri Nov 09 20:30:25 2018 -0600 +++ b/pidgin/win32/gtkwin32dep.c Fri Nov 09 20:39:37 2018 -0600 @@ -39,6 +39,7 @@ #include "untar.h" #include "gtkwin32dep.h" +#include "gtkblist.h" #include "gtkconv.h" #include "gtkconn.h" #include "util.h" @@ -237,8 +238,12 @@ static LRESULT CALLBACK message_window_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { if (msg == PIDGIN_WM_FOCUS_REQUEST) { + PidginBuddyList *blist; purple_debug_info("winpidgin", "Got external Buddy List focus request."); - purple_blist_set_visible(TRUE); + blist = pidgin_blist_get_default_gtk_blist(); + if (blist != NULL && blist->window != NULL) { + gtk_window_present(GTK_WINDOW(blist->window)); + } return TRUE; } else if (msg == PIDGIN_WM_PROTOCOL_HANDLE) { char *proto_msg = (char *) lparam;