# HG changeset patch # User Mike Ruprecht # Date 1541817577 21600 # Node ID 2da5959eb42c48de3c2efaf3ad6fca68b238d60e # Parent 1e991df183c2138fb3bd1ca8df5fea6ae8603a4c 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. diff -r 1e991df183c2 -r 2da5959eb42c pidgin/gtkaccount.c --- 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); diff -r 1e991df183c2 -r 2da5959eb42c pidgin/libpidgin.c --- 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 diff -r 1e991df183c2 -r 2da5959eb42c pidgin/win32/gtkwin32dep.c --- 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;