pidgin/win32/gtkwin32dep.c

Thu, 17 Dec 2020 23:48:47 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 17 Dec 2020 23:48:47 -0600
changeset 40651
8737840a09b7
parent 40555
0bf5825aab0a
child 40669
48dfed6f4f1f
permissions
-rw-r--r--

Fix some file headers for the credential provider api

Testing Done:
None needed.

Reviewed at https://reviews.imfreedom.org/r/281/

38553
36e30c91cd15 gtkwin32dep: Fix section documentation headings
Mike Ruprecht <cmaiku@gmail.com>
parents: 38433
diff changeset
1 /*
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
2 * Pidgin is the legal property of its developers, whose names are too numerous
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
3 * to list here. Please refer to the COPYRIGHT file distributed with this
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
4 * source distribution.
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
5 *
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
9 * (at your option) any later version.
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
10 *
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
14 * GNU General Public License for more details.
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
15 *
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18633
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
19 *
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
20 */
33898
0f4b2e3ac978 win32: fix all warnings about improper winsock2.h include point
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33647
diff changeset
21 #include "internal.h"
0f4b2e3ac978 win32: fix all warnings about improper winsock2.h include point
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33647
diff changeset
22
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
23 #include <io.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
24 #include <stdlib.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
25 #include <stdio.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
26 #include <winuser.h>
35892
02bf3200b9cb cross-win32: make use of WIN32_LEAN_AND_MEAN define
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35891
diff changeset
27 #include <shellapi.h>
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
28
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
29 #include <glib.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
30 #include <glib/gstdio.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
31 #include <gtk/gtk.h>
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
32 #include <gdk/gdkwin32.h>
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
33
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40001
diff changeset
34 #include <purple.h>
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
35
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
36 #include "resource.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
37 #include "untar.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
38
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
39 #include "gtkwin32dep.h"
39333
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
40 #include "gtkblist.h"
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14636
diff changeset
41 #include "gtkconv.h"
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
42 #include "gtkconn.h"
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
43
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
44 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
45 * GLOBALS
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
46 */
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
47 HINSTANCE exe_hInstance = 0;
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
48 HINSTANCE dll_hInstance = 0;
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
49 HWND messagewin_hwnd;
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14636
diff changeset
50 static int gtkwin32_handle;
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14636
diff changeset
51
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
52 static gboolean pwm_handles_connections = TRUE;
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14636
diff changeset
53
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
54
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
55 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
56 * PUBLIC CODE
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
57 */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
58
16058
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
59 HINSTANCE winpidgin_exe_hinstance(void) {
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
60 return exe_hInstance;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
61 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
62
35605
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
63 void winpidgin_set_exe_hinstance(HINSTANCE hint)
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
64 {
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
65 exe_hInstance = hint;
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
66 }
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
67
16058
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
68 HINSTANCE winpidgin_dll_hinstance(void) {
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
69 return dll_hInstance;
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
70 }
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
71
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
72 int winpidgin_gz_decompress(const char* in, const char* out) {
38628
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
73 GFile *fin;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
74 GFile *fout;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
75 GInputStream *input;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
76 GOutputStream *output;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
77 GOutputStream *conv_out;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
78 GZlibDecompressor *decompressor;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
79 gssize size;
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
80 GError *error = NULL;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
81
38628
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
82 fin = g_file_new_for_path(in);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
83 input = G_INPUT_STREAM(g_file_read(fin, NULL, &error));
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
84 g_object_unref(fin);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
85
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
86 if (input == NULL) {
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
87 purple_debug_error("winpidgin_gz_decompress",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
88 "Failed to open: %s: %s\n",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
89 in, error->message);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
90 g_clear_error(&error);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
91 return 0;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
92 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
93
38628
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
94 fout = g_file_new_for_path(out);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
95 output = G_OUTPUT_STREAM(g_file_replace(fout, NULL, FALSE,
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
96 G_FILE_CREATE_NONE, NULL, &error));
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
97 g_object_unref(fout);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
98
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
99 if (output == NULL) {
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
100 purple_debug_error("winpidgin_gz_decompress",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
101 "Error opening file: %s: %s\n",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
102 out, error->message);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
103 g_clear_error(&error);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
104 g_object_unref(input);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
105 return 0;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
106 }
38628
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
107
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
108 decompressor = g_zlib_decompressor_new(G_ZLIB_COMPRESSOR_FORMAT_GZIP);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
109 conv_out = g_converter_output_stream_new(output,
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
110 G_CONVERTER(decompressor));
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
111 g_object_unref(decompressor);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
112 g_object_unref(output);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
113
38628
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
114 size = g_output_stream_splice(conv_out, input,
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
115 G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE |
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
116 G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, NULL, &error);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
117
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
118 g_object_unref(input);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
119 g_object_unref(conv_out);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
120
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
121 if (size < 0) {
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
122 purple_debug_error("wpurple_gz_decompress",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
123 "Error writing to file: %s\n",
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
124 error->message);
ea61e3b679a7 gtkwin32dep: Port gz decompression to GZlibDecompressor
Mike Ruprecht <cmaiku@gmail.com>
parents: 38553
diff changeset
125 g_clear_error(&error);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
126 return 0;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
127 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
128
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
129 return 1;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
130 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
131
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
132 int winpidgin_gz_untar(const char* filename, const char* destdir) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
133 char tmpfile[_MAX_PATH];
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
134 char template[]="wpidginXXXXXX";
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
135
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
136 sprintf(tmpfile, "%s%s%s", g_get_tmp_dir(), G_DIR_SEPARATOR_S, _mktemp(template));
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
137 if(winpidgin_gz_decompress(filename, tmpfile)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
138 int ret;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
139 if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET))
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
140 ret = 1;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
141 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
142 purple_debug_error("winpidgin_gz_untar", "Failure untarring %s\n", tmpfile);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
143 ret = 0;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
144 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
145 g_unlink(tmpfile);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
146 return ret;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
147 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
148 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
149 purple_debug_error("winpidgin_gz_untar", "Failed to gz decompress %s\n", filename);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
150 return 0;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
151 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
152 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
153
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
154 void winpidgin_shell_execute(const char *target, const char *verb, const char *clazz) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
155
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
156 SHELLEXECUTEINFOW wsinfo;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
157 wchar_t *w_uri, *w_verb, *w_clazz = NULL;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
158
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15027
diff changeset
159 g_return_if_fail(target != NULL);
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15027
diff changeset
160 g_return_if_fail(verb != NULL);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
161
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
162 w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL);
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
163 w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
164
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
165 memset(&wsinfo, 0, sizeof(wsinfo));
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
166 wsinfo.cbSize = sizeof(wsinfo);
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
167 wsinfo.lpVerb = w_verb;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
168 wsinfo.lpFile = w_uri;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
169 wsinfo.nShow = SW_SHOWNORMAL;
29701
6c95c4bd2241 propagate from branch 'im.pidgin.pidgin' (head 9ff8f3bdd0f5c0101988628f7bf8dad4f7cb8f40)
Paul Aurich <darkrain42@pidgin.im>
parents: 29362 29635
diff changeset
170 wsinfo.fMask |= SEE_MASK_FLAG_NO_UI;
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
171 if (clazz != NULL) {
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
172 w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL);
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
173 wsinfo.fMask |= SEE_MASK_CLASSNAME;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
174 wsinfo.lpClass = w_clazz;
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
175 }
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
176
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
177 if(!ShellExecuteExW(&wsinfo))
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
178 purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n",
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
179 target, (int) wsinfo.hInstApp);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
180
29508
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
181 g_free(w_uri);
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
182 g_free(w_verb);
26abf4ffa828 Remove some win9x specific code.
Daniel Atallah <datallah@pidgin.im>
parents: 24053
diff changeset
183 g_free(w_clazz);
15298
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15027
diff changeset
184
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15027
diff changeset
185 }
e192226f7804 [gaim-migrate @ 18026]
Daniel Atallah <datallah@pidgin.im>
parents: 15027
diff changeset
186
15678
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
187 #define PIDGIN_WM_FOCUS_REQUEST (WM_APP + 13)
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
188 #define PIDGIN_WM_PROTOCOL_HANDLE (WM_APP + 14)
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
189
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
190 static void*
37489
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
191 winpidgin_netconfig_changed_cb(GNetworkMonitor *monitor, gboolean available, gpointer data)
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
192 {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
193 pwm_handles_connections = FALSE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
194
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
195 return NULL;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
196 }
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
197
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
198 static gboolean
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
199 winpidgin_pwm_reconnect()
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
200 {
37489
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
201 g_signal_handlers_disconnect_by_func(g_network_monitor_get_default,
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
202 G_CALLBACK(winpidgin_netconfig_changed_cb),
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
203 NULL);
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
204 if (pwm_handles_connections == TRUE) {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
205 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops();
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
206
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
207 purple_debug_info("winpidgin", "Resumed from standby, reconnecting accounts.\n");
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
208
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
209 if (ui_ops != NULL && ui_ops->network_connected != NULL)
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
210 ui_ops->network_connected();
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
211 } else {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
212 purple_debug_info("winpidgin", "Resumed from standby, gtkconn will handle reconnecting.\n");
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
213 pwm_handles_connections = TRUE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
214 }
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
215
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
216 return FALSE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
217 }
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
218
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
219 static LRESULT CALLBACK message_window_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
220
15678
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
221 if (msg == PIDGIN_WM_FOCUS_REQUEST) {
39333
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
222 PidginBuddyList *blist;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
223 purple_debug_info("winpidgin", "Got external Buddy List focus request.");
39333
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
224 blist = pidgin_blist_get_default_gtk_blist();
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
225 if (blist != NULL && blist->window != NULL) {
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
226 gtk_window_present(GTK_WINDOW(blist->window));
2da5959eb42c pidgin: Use gtk_window_present() to present buddy list
Mike Ruprecht <cmaiku@gmail.com>
parents: 38628
diff changeset
227 }
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
228 return TRUE;
15678
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
229 } else if (msg == PIDGIN_WM_PROTOCOL_HANDLE) {
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
230 char *proto_msg = (char *) lparam;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
231 purple_debug_info("winpidgin", "Got protocol handler request: %s\n", proto_msg ? proto_msg : "");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
232 purple_got_protocol_handler_uri(proto_msg);
15678
7434ef155a3a Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
233 return TRUE;
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
234 } else if (msg == WM_POWERBROADCAST) {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
235 if (wparam == PBT_APMQUERYSUSPEND) {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
236 purple_debug_info("winpidgin", "Windows requesting permission to suspend.\n");
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
237 return TRUE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
238 } else if (wparam == PBT_APMSUSPEND) {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
239 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops();
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
240
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
241 purple_debug_info("winpidgin", "Entering system standby, disconnecting accounts.\n");
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
242
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
243 if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
244 ui_ops->network_disconnected();
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
245
37489
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
246 g_signal_connect(g_network_monitor_get_default(),
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
247 "network-changed",
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
248 G_CALLBACK(winpidgin_netconfig_changed_cb),
cbf9ccc715ab Move everything in libpurple that was using the network-changed signal to use the gio one
Gary Kramlich <grim@reaperworld.com>
parents: 36114
diff changeset
249 NULL);
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
250
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
251 return TRUE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
252 } else if (wparam == PBT_APMRESUMESUSPEND) {
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
253 purple_debug_info("winpidgin", "Resuming from system standby.\n");
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
254 /* TODO: It seems like it'd be wise to use the NLA message, if possible, instead of this. */
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 37901
diff changeset
255 g_timeout_add_seconds(1, winpidgin_pwm_reconnect, NULL);
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
256 return TRUE;
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
257 }
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
258 }
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
259
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
260 return DefWindowProc(hwnd, msg, wparam, lparam);
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
261 }
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
262
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
263 static HWND winpidgin_message_window_init(void) {
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
264 HWND win_hwnd;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
265 WNDCLASSEX wcx;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
266 LPCTSTR wname;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
267
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
268 wname = TEXT("WinpidginMsgWinCls");
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
269
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
270 wcx.cbSize = sizeof(wcx);
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
271 wcx.style = 0;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
272 wcx.lpfnWndProc = message_window_handler;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
273 wcx.cbClsExtra = 0;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
274 wcx.cbWndExtra = 0;
16058
dc1c7b09a058 4bit icons for windows < XP. These are certainly not as pretty as the originals, but look a lot better than scaled down versions.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
275 wcx.hInstance = winpidgin_exe_hinstance();
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
276 wcx.hIcon = NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
277 wcx.hCursor = NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
278 wcx.hbrBackground = NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
279 wcx.lpszMenuName = NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
280 wcx.lpszClassName = wname;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
281 wcx.hIconSm = NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
282
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
283 RegisterClassEx(&wcx);
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
284
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
285 /* Create the window */
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
286 if(!(win_hwnd = CreateWindow(wname, TEXT("WinpidginMsgWin"), 0, 0, 0, 0, 0,
21943
8a938e6ea033 This is a great patch from Lee Roach to make Pidgin on win32 deal with system suspend / resume. It seems to work really well, hopefully this'll make some folks happy. If something doesn't work right, it is probably my fault. Fixes #480.
Daniel Atallah <datallah@pidgin.im>
parents: 21613
diff changeset
287 NULL, NULL, winpidgin_exe_hinstance(), 0))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
288 purple_debug_error("winpidgin",
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
289 "Unable to create message window.\n");
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
290 return NULL;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
291 }
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
292
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
293 return win_hwnd;
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
294 }
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
295
35605
8a0ae6cc73fc Fix win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33960
diff changeset
296 void winpidgin_init(void) {
33371
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 30793
diff changeset
297 typedef void (__cdecl* LPFNSETLOGFILE)(const LPCSTR);
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 30793
diff changeset
298 LPFNSETLOGFILE MySetLogFile;
30739
72613eff8b0e Use some fully qualified dll locations.
Daniel Atallah <datallah@pidgin.im>
parents: 30734
diff changeset
299 gchar *exchndl_dll_path;
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14636
diff changeset
300
33960
ce450446c56a Win32: strengthen DLL loading; VV: fix farstream plugins loading on win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
301 if (purple_debug_is_verbose())
ce450446c56a Win32: strengthen DLL loading; VV: fix farstream plugins loading on win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
302 purple_debug_misc("winpidgin", "winpidgin_init start\n");
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
303
35901
5bcb306a4edf cross-win32: FHS support for win32
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35892
diff changeset
304 exchndl_dll_path = g_build_filename(wpurple_bin_dir(), "exchndl.dll", NULL);
33371
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 30793
diff changeset
305 MySetLogFile = (LPFNSETLOGFILE) wpurple_find_and_loadproc(exchndl_dll_path, "SetLogFile");
30739
72613eff8b0e Use some fully qualified dll locations.
Daniel Atallah <datallah@pidgin.im>
parents: 30734
diff changeset
306 g_free(exchndl_dll_path);
72613eff8b0e Use some fully qualified dll locations.
Daniel Atallah <datallah@pidgin.im>
parents: 30734
diff changeset
307 exchndl_dll_path = NULL;
33371
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 30793
diff changeset
308 if (MySetLogFile) {
29767
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
309 gchar *debug_dir, *locale_debug_dir;
30734
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
310
39957
be2eb199e368 Move Windows crash reports to cache directory.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
311 debug_dir = g_build_filename(purple_cache_dir(), "pidgin.RPT", NULL);
29767
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
312 locale_debug_dir = g_locale_from_utf8(debug_dir, -1, NULL, NULL, NULL);
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
313
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
314 purple_debug_info("winpidgin", "Setting exchndl.dll LogFile to %s\n", debug_dir);
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
315
33371
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 30793
diff changeset
316 MySetLogFile(locale_debug_dir);
29767
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
317
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
318 g_free(debug_dir);
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
319 g_free(locale_debug_dir);
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
320 }
6b53ccad9d4a Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <datallah@pidgin.im>
parents: 29740
diff changeset
321
33960
ce450446c56a Win32: strengthen DLL loading; VV: fix farstream plugins loading on win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
322 purple_debug_info("winpidgin", "GTK+: %u.%u.%u\n",
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
323 gtk_major_version, gtk_minor_version, gtk_micro_version);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
324
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
325 messagewin_hwnd = winpidgin_message_window_init();
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
326
33960
ce450446c56a Win32: strengthen DLL loading; VV: fix farstream plugins loading on win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
327 if (purple_debug_is_verbose())
ce450446c56a Win32: strengthen DLL loading; VV: fix farstream plugins loading on win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
328 purple_debug_misc("winpidgin", "winpidgin_init end\n");
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
329 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
330
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
331 /* Windows Cleanup */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
332
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
333 void winpidgin_cleanup(void) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
334 purple_debug_info("winpidgin", "winpidgin_cleanup\n");
14319
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
335
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
336 if(messagewin_hwnd)
b9a35c4948dc [gaim-migrate @ 16939]
Daniel Atallah <datallah@pidgin.im>
parents: 14286
diff changeset
337 DestroyWindow(messagewin_hwnd);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
338
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
339 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
340
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
341 /* DLL initializer */
15697
78ddac185d80 winpidgin warning fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15678
diff changeset
342 /* suppress gcc "no previous prototype" warning */
78ddac185d80 winpidgin warning fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15678
diff changeset
343 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
344 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15563
diff changeset
345 dll_hInstance = hinstDLL;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
346 return TRUE;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
347 }
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
348
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
349 static gboolean
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
350 get_WorkingAreaRectForWindow(HWND hwnd, RECT *workingAreaRc) {
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
351
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
352 HMONITOR monitor;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
353 MONITORINFO info;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
354
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 29701
diff changeset
355 monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
356
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
357 info.cbSize = sizeof(info);
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 29701
diff changeset
358 if(!GetMonitorInfo(monitor, &info))
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
359 return FALSE;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
360
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
361 CopyRect(workingAreaRc, &(info.rcWork));
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
362 return TRUE;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
363 }
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
364
37565
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
365 typedef HRESULT (WINAPI* DwmIsCompositionEnabledFunction)(BOOL*);
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
366 typedef HRESULT (WINAPI* DwmGetWindowAttributeFunction)(HWND, DWORD, PVOID, DWORD);
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
367 static HMODULE dwmapi_module = NULL;
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
368 static DwmIsCompositionEnabledFunction DwmIsCompositionEnabled = NULL;
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
369 static DwmGetWindowAttributeFunction DwmGetWindowAttribute = NULL;
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
370 #ifndef DWMWA_EXTENDED_FRAME_BOUNDS
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
371 # define DWMWA_EXTENDED_FRAME_BOUNDS 9
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
372 #endif
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
373
39999
2f878969929d Stop returning structs directly from Windows functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
374 static void
2f878969929d Stop returning structs directly from Windows functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
375 get_actualWindowRect(HWND hwnd, RECT *winR)
37565
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
376 {
39999
2f878969929d Stop returning structs directly from Windows functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
377 GetWindowRect(hwnd, winR);
37778
694ec370d84a Fix what looks like a buggered merge that got introduced in fa3c41b69e47.
Daniel Atallah <datallah@pidgin.im>
parents: 37565
diff changeset
378
37565
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
379 if (dwmapi_module == NULL) {
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
380 dwmapi_module = GetModuleHandleW(L"dwmapi.dll");
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
381 if (dwmapi_module != NULL) {
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
382 DwmIsCompositionEnabled = (DwmIsCompositionEnabledFunction) GetProcAddress(dwmapi_module, "DwmIsCompositionEnabled");
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
383 DwmGetWindowAttribute = (DwmGetWindowAttributeFunction) GetProcAddress(dwmapi_module, "DwmGetWindowAttribute");
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
384 }
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
385 }
37778
694ec370d84a Fix what looks like a buggered merge that got introduced in fa3c41b69e47.
Daniel Atallah <datallah@pidgin.im>
parents: 37565
diff changeset
386
37565
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
387 if (DwmIsCompositionEnabled != NULL && DwmGetWindowAttribute != NULL) {
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
388 BOOL pfEnabled;
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
389 if (SUCCEEDED(DwmIsCompositionEnabled(&pfEnabled))) {
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
390 RECT tempR;
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
391 if (SUCCEEDED(DwmGetWindowAttribute(hwnd, DWMWA_EXTENDED_FRAME_BOUNDS, &tempR, sizeof(tempR)))) {
39999
2f878969929d Stop returning structs directly from Windows functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
392 *winR = tempR;
37565
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
393 }
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
394 }
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
395 }
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
396 }
fa3c41b69e47 win32: Fix window placement on Windows >= Vista. Fixes #16830
Eion Robb <eion@robbmob.com>
parents: 37507
diff changeset
397
37778
694ec370d84a Fix what looks like a buggered merge that got introduced in fa3c41b69e47.
Daniel Atallah <datallah@pidgin.im>
parents: 37565
diff changeset
398 void winpidgin_ensure_onscreen(GtkWidget *win) {
694ec370d84a Fix what looks like a buggered merge that got introduced in fa3c41b69e47.
Daniel Atallah <datallah@pidgin.im>
parents: 37565
diff changeset
399 RECT winR, wAR, intR;
35869
184849af4d62 cross-win32: fix gtk3 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35858
diff changeset
400 HWND hwnd = GDK_WINDOW_HWND(gtk_widget_get_window(win));
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
401
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
402 g_return_if_fail(hwnd != NULL);
39999
2f878969929d Stop returning structs directly from Windows functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39333
diff changeset
403 get_actualWindowRect(hwnd, &winR);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
404
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
405 purple_debug_info("win32placement",
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
406 "Window RECT: L:%ld R:%ld T:%ld B:%ld\n",
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
407 winR.left, winR.right,
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
408 winR.top, winR.bottom);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
409
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
410 if(!get_WorkingAreaRectForWindow(hwnd, &wAR)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
411 purple_debug_info("win32placement",
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
412 "Couldn't get multimonitor working area\n");
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
413 if(!SystemParametersInfo(SPI_GETWORKAREA, 0, &wAR, FALSE)) {
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
414 /* I don't think this will ever happen */
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
415 wAR.left = 0;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
416 wAR.top = 0;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
417 wAR.bottom = GetSystemMetrics(SM_CYSCREEN);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
418 wAR.right = GetSystemMetrics(SM_CXSCREEN);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
419 }
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
420 }
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
421
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
422 purple_debug_info("win32placement",
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
423 "Working Area RECT: L:%ld R:%ld T:%ld B:%ld\n",
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
424 wAR.left, wAR.right,
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
425 wAR.top, wAR.bottom);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
426
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
427 /** If the conversation window doesn't intersect perfectly, move it to do so */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
428 if(!(IntersectRect(&intR, &winR, &wAR)
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
429 && EqualRect(&intR, &winR))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15697
diff changeset
430 purple_debug_info("win32placement",
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
431 "conversation window out of working area, relocating\n");
20138
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
432
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
433 /* Make sure the working area is big enough. */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
434 if ((winR.right - winR.left) <= (wAR.right - wAR.left)
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
435 && (winR.bottom - winR.top) <= (wAR.bottom - wAR.top)) {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
436 /* Is it off the bottom? */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
437 if (winR.bottom > wAR.bottom) {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
438 winR.top = wAR.bottom - (winR.bottom - winR.top);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
439 winR.bottom = wAR.bottom;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
440 }
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
441 /* Is it off the top? */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
442 else if (winR.top < wAR.top) {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
443 winR.bottom = wAR.top + (winR.bottom - winR.top);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
444 winR.top = wAR.top;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
445 }
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
446
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
447 /* Is it off the left? */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
448 if (winR.left < wAR.left) {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
449 winR.right = wAR.left + (winR.right - winR.left);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
450 winR.left = wAR.left;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
451 }
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
452 /* Is it off the right? */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
453 else if (winR.right > wAR.right) {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
454 winR.left = wAR.right - (winR.right - winR.left);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
455 winR.right = wAR.right;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
456 }
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
457
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
458 } else {
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
459 /* We couldn't salvage it; move it to the top left corner of the working area */
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
460 winR.right = wAR.left + (winR.right - winR.left);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
461 winR.bottom = wAR.top + (winR.bottom - winR.top);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
462 winR.left = wAR.left;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
463 winR.top = wAR.top;
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
464 }
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
465
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
466 purple_debug_info("win32placement",
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
467 "Relocation RECT: L:%ld R:%ld T:%ld B:%ld\n",
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
468 winR.left, winR.right,
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
469 winR.top, winR.bottom);
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
470
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
471 MoveWindow(hwnd, winR.left, winR.top,
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
472 (winR.right - winR.left),
9d157e9beff9 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
473 (winR.bottom - winR.top), TRUE);
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
474 }
30734
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
475
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
476 }
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14319
diff changeset
477
30734
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
478 DWORD winpidgin_get_lastactive() {
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
479 DWORD result = 0;
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
480
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
481 LASTINPUTINFO lii;
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
482 memset(&lii, 0, sizeof(lii));
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
483 lii.cbSize = sizeof(lii);
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
484 if (GetLastInputInfo(&lii))
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
485 result = lii.dwTime;
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
486
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
487 return result;
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
488 }
caafb5a4e95b Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <datallah@pidgin.im>
parents: 30251
diff changeset
489

mercurial