From 1a0aecf079998f5857314cf298715e1fba1fec82 Mon Sep 17 00:00:00 2001 From: Hiro Date: Sat, 28 Jan 2006 14:47:50 +0000 Subject: win32: fixed popup with remote command. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@940 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 5 +++++ src/main.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 40cc5f18..71e0831a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-28 + + * src/main.c: win32: properly popup main window on remote command mode + using SetForegroundWindow(). + 2006-01-27 * src/summaryview.c: summary_selection_changed(): only execute idle diff --git a/src/main.c b/src/main.c index b558f8fb..49fffdff 100644 --- a/src/main.c +++ b/src/main.c @@ -908,8 +908,17 @@ static gint prohibit_duplicate_launch(void) } } else if (cmd.exit) { fd_write_all(sock, "exit\n", 5); - } else + } else { +#ifdef G_OS_WIN32 + HWND hwnd; + fd_write_all(sock, "popup\n", 6); + if (fd_read(sock, (gchar *)&hwnd, sizeof(hwnd)) == sizeof(hwnd)) + SetForegroundWindow(hwnd); +#else + fd_write_all(sock, "popup\n", 6); +#endif + } fd_close(sock); return -1; @@ -972,7 +981,17 @@ static gboolean lock_socket_input_cb(GIOChannel *source, GIOCondition condition, fd_gets(sock, buf, sizeof(buf)); if (!strncmp(buf, "popup", 5)) { +#ifdef G_OS_WIN32 + HWND hwnd; + + hwnd = (HWND)gdk_win32_drawable_get_handle + (GDK_DRAWABLE(mainwin->window->window)); + fd_write(sock, (gchar *)&hwnd, sizeof(hwnd)); + if (mainwin->window_hidden) + main_window_popup(mainwin); +#else main_window_popup(mainwin); +#endif } else if (!strncmp(buf, "receive_all", 11)) { main_window_popup(mainwin); inc_all_account_mail(mainwin, FALSE); -- cgit v1.2.3