pidgin: Use gtk_window_present() to present buddy list

Fri, 09 Nov 2018 20:39:37 -0600

author
Mike Ruprecht <cmaiku@gmail.com>
date
Fri, 09 Nov 2018 20:39:37 -0600
changeset 39333
2da5959eb42c
parent 39332
1e991df183c2
child 39334
f71132e8ad06

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.

pidgin/gtkaccount.c file | annotate | diff | comparison | revisions
pidgin/libpidgin.c file | annotate | diff | comparison | revisions
pidgin/win32/gtkwin32dep.c file | annotate | diff | comparison | revisions
--- 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;

mercurial