annotate pidgin/win32/gtkwin32dep.c @ 32310:142429bcb4c8

propagate from branch 'im.pidgin.pidgin' (head bb53d1e9201138b79a1eef0d4a7cda1fc852c59f) to branch 'im.pidgin.pidgin.next.major' (head 85a38af15472bf17064bbe597f94f32ad167c4e6)
author Mark Doliner <mark@kingant.net>
date Sun, 07 Aug 2011 05:19:54 +0000
parents 7f79ac13965c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
1 /**
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
2 * @file gtkwin32dep.c UI Win32 Specific Functionality
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
3 * @ingroup win32
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 *
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
7 * source distribution.
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
19680
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18448
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 #define _WIN32_IE 0x500
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 #ifndef WINVER
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 #define WINVER 0x0500 /* W2K */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 #include <windows.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 #include <io.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 #include <stdlib.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 #include <stdio.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 #include <winuser.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34 #include <glib.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 #include <glib/gstdio.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 #include <gtk/gtk.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 #include <gdk/gdkwin32.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38
18448
4b1e2aefeb9d Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 17078
diff changeset
39 #include "internal.h"
4b1e2aefeb9d Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 17078
diff changeset
40
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 #include "debug.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42 #include "notify.h"
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
43 #include "network.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 #include "resource.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46 #include "zlib.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 #include "untar.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 #include "gtkwin32dep.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 #include "win32dep.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51 #include "gtkconv.h"
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
52 #include "gtkconn.h"
15613
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
53 #include "util.h"
30984
7f79ac13965c Make the win32 build possible to compile without GtkSpell if HAVE_GTKSPELL isn't defined.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30900
diff changeset
54 #ifdef USE_GTKSPELL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 #include "wspell.h"
30984
7f79ac13965c Make the win32 build possible to compile without GtkSpell if HAVE_GTKSPELL isn't defined.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30900
diff changeset
56 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59 * GLOBALS
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 */
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
61 HINSTANCE exe_hInstance = 0;
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
62 HINSTANCE dll_hInstance = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 HWND messagewin_hwnd;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64 static int gtkwin32_handle;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
66 static gboolean pwm_handles_connections = TRUE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 * PUBLIC CODE
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72
15997
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
73 HINSTANCE winpidgin_exe_hinstance(void) {
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
74 return exe_hInstance;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76
15997
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
77 HINSTANCE winpidgin_dll_hinstance(void) {
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
78 return dll_hInstance;
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
79 }
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
80
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
81 int winpidgin_gz_decompress(const char* in, const char* out) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82 gzFile fin;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 FILE *fout;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84 char buf[1024];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 int ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
87 if((fin = gzopen(in, "rb"))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
88 if(!(fout = g_fopen(out, "wb"))) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
89 purple_debug_error("winpidgin_gz_decompress", "Error opening file: %s\n", out);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 gzclose(fin);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
95 purple_debug_error("winpidgin_gz_decompress", "gzopen failed to open: %s\n", in);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
97 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
98
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
99 while((ret = gzread(fin, buf, 1024))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
100 if(fwrite(buf, 1, ret, fout) < ret) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
101 purple_debug_error("wpurple_gz_decompress", "Error writing %d bytes to file\n", ret);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 gzclose(fin);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103 fclose(fout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 fclose(fout);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 gzclose(fin);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 if(ret < 0) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
111 purple_debug_error("winpidgin_gz_decompress", "gzread failed while reading: %s\n", in);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 return 1;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
118 int winpidgin_gz_untar(const char* filename, const char* destdir) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
119 char tmpfile[_MAX_PATH];
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
120 char template[]="wpidginXXXXXX";
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
121
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
122 sprintf(tmpfile, "%s%s%s", g_get_tmp_dir(), G_DIR_SEPARATOR_S, _mktemp(template));
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
123 if(winpidgin_gz_decompress(filename, tmpfile)) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
124 int ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126 ret = 1;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
128 purple_debug_error("winpidgin_gz_untar", "Failure untarring %s\n", tmpfile);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
129 ret = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
130 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131 g_unlink(tmpfile);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132 return ret;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134 else {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
135 purple_debug_error("winpidgin_gz_untar", "Failed to gz decompress %s\n", filename);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
136 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
137 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
140 void winpidgin_shell_execute(const char *target, const char *verb, const char *clazz) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
142 SHELLEXECUTEINFOW wsinfo;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
143 wchar_t *w_uri, *w_verb, *w_clazz = NULL;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
144
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 g_return_if_fail(target != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 g_return_if_fail(verb != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
148 w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL);
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
149 w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
150
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
151 memset(&wsinfo, 0, sizeof(wsinfo));
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
152 wsinfo.cbSize = sizeof(wsinfo);
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
153 wsinfo.lpVerb = w_verb;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
154 wsinfo.lpFile = w_uri;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
155 wsinfo.nShow = SW_SHOWNORMAL;
29757
2ad2e3490b23 propagate from branch 'im.pidgin.pidgin' (head 1d831e835bac31debd4d67cc75397c378c00bc7e)
Paul Aurich <paul@darkrain42.org>
parents: 29431 29620
diff changeset
156 wsinfo.fMask |= SEE_MASK_FLAG_NO_UI;
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
157 if (clazz != NULL) {
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
158 w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL);
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
159 wsinfo.fMask |= SEE_MASK_CLASSNAME;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
160 wsinfo.lpClass = w_clazz;
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
161 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
163 if(!ShellExecuteExW(&wsinfo))
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
164 purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n",
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
165 target, (int) wsinfo.hInstApp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166
29493
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
167 g_free(w_uri);
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
168 g_free(w_verb);
224f9674a57e Remove some win9x specific code.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23784
diff changeset
169 g_free(w_clazz);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
172
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
173 void winpidgin_notify_uri(const char *uri) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174 /* We'll allow whatever URI schemes are supported by the
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
175 * default http browser.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176 */
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
177 winpidgin_shell_execute(uri, "open", "http");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179
15613
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
180 #define PIDGIN_WM_FOCUS_REQUEST (WM_APP + 13)
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
181 #define PIDGIN_WM_PROTOCOL_HANDLE (WM_APP + 14)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
182
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
183 static void*
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
184 winpidgin_netconfig_changed_cb(void *data)
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
185 {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
186 pwm_handles_connections = FALSE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
187
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
188 return NULL;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
189 }
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
190
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
191 static void*
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
192 winpidgin_get_handle(void)
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
193 {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
194 static int handle;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
195
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
196 return &handle;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
197 }
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
198
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
199 static gboolean
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
200 winpidgin_pwm_reconnect()
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
201 {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
202 purple_signal_disconnect(purple_network_get_handle(), "network-configuration-changed",
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
203 winpidgin_get_handle(), PURPLE_CALLBACK(winpidgin_netconfig_changed_cb));
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
204
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
205 if (pwm_handles_connections == TRUE) {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
206 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops();
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
207
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
208 purple_debug_info("winpidgin", "Resumed from standby, reconnecting accounts.\n");
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
209
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
210 if (ui_ops != NULL && ui_ops->network_connected != NULL)
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
211 ui_ops->network_connected();
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
212 } else {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
213 purple_debug_info("winpidgin", "Resumed from standby, gtkconn will handle reconnecting.\n");
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
214 pwm_handles_connections = TRUE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
215 }
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
216
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
217 return FALSE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
218 }
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
219
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 static LRESULT CALLBACK message_window_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221
15613
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
222 if (msg == PIDGIN_WM_FOCUS_REQUEST) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
223 purple_debug_info("winpidgin", "Got external Buddy List focus request.");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
224 purple_blist_set_visible(TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 return TRUE;
15613
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
226 } else if (msg == PIDGIN_WM_PROTOCOL_HANDLE) {
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
227 char *proto_msg = (char *) lparam;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
228 purple_debug_info("winpidgin", "Got protocol handler request: %s\n", proto_msg ? proto_msg : "");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
229 purple_got_protocol_handler_uri(proto_msg);
15613
b0471b2a1de9 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 <daniel.atallah@gmail.com>
parents: 15516
diff changeset
230 return TRUE;
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
231 } else if (msg == WM_POWERBROADCAST) {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
232 if (wparam == PBT_APMQUERYSUSPEND) {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
233 purple_debug_info("winpidgin", "Windows requesting permission to suspend.\n");
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
234 return TRUE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
235 } else if (wparam == PBT_APMSUSPEND) {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
236 PurpleConnectionUiOps *ui_ops = pidgin_connections_get_ui_ops();
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
237
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
238 purple_debug_info("winpidgin", "Entering system standby, disconnecting accounts.\n");
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
239
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
240 if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
241 ui_ops->network_disconnected();
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
242
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
243 purple_signal_connect(purple_network_get_handle(), "network-configuration-changed", winpidgin_get_handle(),
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
244 PURPLE_CALLBACK(winpidgin_netconfig_changed_cb), NULL);
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
245
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
246 return TRUE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
247 } else if (wparam == PBT_APMRESUMESUSPEND) {
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
248 purple_debug_info("winpidgin", "Resuming from system standby.\n");
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
249 /* TODO: It seems like it'd be wise to use the NLA message, if possible, instead of this. */
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
250 purple_timeout_add_seconds(1, winpidgin_pwm_reconnect, NULL);
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
251 return TRUE;
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
252 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 return DefWindowProc(hwnd, msg, wparam, lparam);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
257
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
258 static HWND winpidgin_message_window_init(void) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 HWND win_hwnd;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 WNDCLASSEX wcx;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 LPCTSTR wname;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
263 wname = TEXT("WinpidginMsgWinCls");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 wcx.cbSize = sizeof(wcx);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 wcx.style = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 wcx.lpfnWndProc = message_window_handler;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268 wcx.cbClsExtra = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 wcx.cbWndExtra = 0;
15997
495800004c0a 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 <daniel.atallah@gmail.com>
parents: 15823
diff changeset
270 wcx.hInstance = winpidgin_exe_hinstance();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 wcx.hIcon = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272 wcx.hCursor = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273 wcx.hbrBackground = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
274 wcx.lpszMenuName = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 wcx.lpszClassName = wname;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
276 wcx.hIconSm = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 RegisterClassEx(&wcx);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
279
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
280 /* Create the window */
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
281 if(!(win_hwnd = CreateWindow(wname, TEXT("WinpidginMsgWin"), 0, 0, 0, 0, 0,
21828
85fcbd3b9d32 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 <daniel.atallah@gmail.com>
parents: 21528
diff changeset
282 NULL, NULL, winpidgin_exe_hinstance(), 0))) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
283 purple_debug_error("winpidgin",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 "Unable to create message window.\n");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 return win_hwnd;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
291 static gboolean stop_flashing(GtkWidget *widget, GdkEventFocus *event, gpointer data) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
292 GtkWindow *window = data;
17077
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
293 gpointer handler_id;
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
294
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
295 winpidgin_window_flash(window, FALSE);
17077
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
296
23784
d9d388a27d01 Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21828
diff changeset
297 if ((handler_id = g_object_get_data(G_OBJECT(window), "flash_stop_handler_id"))) {
17077
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
298 g_signal_handler_disconnect(G_OBJECT(window), (gulong) GPOINTER_TO_UINT(handler_id));
23784
d9d388a27d01 Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21828
diff changeset
299 g_object_steal_data(G_OBJECT(window), "flash_stop_handler_id");
d9d388a27d01 Use the "Flash taskbar button X times" value from the win32 Tweak UI "Prevent
Daniel Atallah <daniel.atallah@gmail.com>
parents: 21828
diff changeset
300 }
17077
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
301
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305 void
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
306 winpidgin_window_flash(GtkWindow *window, gboolean flash) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307 GdkWindow * gdkwin;
29803
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
308 FLASHWINFO info;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
310 g_return_if_fail(window != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 gdkwin = GTK_WIDGET(window)->window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
313
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 g_return_if_fail(GDK_IS_WINDOW(gdkwin));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315 g_return_if_fail(GDK_WINDOW_TYPE(gdkwin) != GDK_WINDOW_CHILD);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
317 if(GDK_WINDOW_DESTROYED(gdkwin))
16264
47907d031291 Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16062
diff changeset
318 return;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319
29803
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
320 memset(&info, 0, sizeof(FLASHWINFO));
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
321 info.cbSize = sizeof(FLASHWINFO);
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
322 info.hwnd = GDK_WINDOW_HWND(gdkwin);
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
323 if (flash) {
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
324 DWORD flashCount;
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
325 info.uCount = 3;
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
326 if (SystemParametersInfo(SPI_GETFOREGROUNDFLASHCOUNT, 0, &flashCount, 0))
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
327 info.uCount = flashCount;
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
328 info.dwFlags = FLASHW_ALL | FLASHW_TIMER;
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
329 } else
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
330 info.dwFlags = FLASHW_STOP;
30359
129f973c38b5 Fix a regression in 2.7.0 that caused window flashing not to work on Windows.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29885
diff changeset
331 FlashWindowEx(&info);
29803
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
332 info.dwTimeout = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
333
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
334 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336 void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
337 winpidgin_conv_blink(PurpleConversation *conv, PurpleMessageFlags flags) {
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
338 PidginWindow *win;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
339 GtkWindow *window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
340
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
341 /* Don't flash for our own messages or system messages */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
342 if(flags & PURPLE_MESSAGE_SEND || flags & PURPLE_MESSAGE_SYSTEM)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
344
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345 if(conv == NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
346 purple_debug_info("winpidgin", "No conversation found to blink.\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
347 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
348 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
349
15502
6fde15c1dcfc pidginconv to pidgin_conv
Sean Egan <seanegan@gmail.com>
parents: 15501
diff changeset
350 win = pidgin_conv_get_window(PIDGIN_CONVERSATION(conv));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
351 if(win == NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
352 purple_debug_info("winpidgin", "No conversation windows found to blink.\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
353 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
354 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 window = GTK_WINDOW(win->window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356
16264
47907d031291 Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16062
diff changeset
357 /* Don't flash if the window is in the foreground */
47907d031291 Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16062
diff changeset
358 if (GetForegroundWindow() == GDK_WINDOW_HWND(GTK_WIDGET(window)->window))
47907d031291 Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16062
diff changeset
359 return;
47907d031291 Don't flash the conv. window if it is in the foreground.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16062
diff changeset
360
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
361 winpidgin_window_flash(window, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
362 /* Stop flashing when window receives focus */
17077
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
363 if (g_object_get_data(G_OBJECT(window), "flash_stop_handler_id") == NULL) {
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
364 gulong handler_id = g_signal_connect(G_OBJECT(window), "focus-in-event",
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
365 G_CALLBACK(stop_flashing), window);
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
366 g_object_set_data(G_OBJECT(window), "flash_stop_handler_id", GUINT_TO_POINTER(handler_id));
c3add818a46c Don't stop all windows from flashing when any Windows Pidgin window is focused. I also noticed that we were registering a callback for the focus-in-event for each flash start and never unregistering it, so this fixes that too. Fixes #554.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16264
diff changeset
367 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
368 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
369
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
370 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
371 winpidgin_conv_im_blink(PurpleAccount *account, const char *who, char **message,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
372 PurpleConversation *conv, PurpleMessageFlags flags, void *data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
373 {
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15997
diff changeset
374 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/win32/blink_im"))
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
375 winpidgin_conv_blink(conv, flags);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
376 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
377 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
378
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
379 void winpidgin_init(HINSTANCE hint) {
29885
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
380 FARPROC proc;
30900
3d045343e04d Use some fully qualified dll locations.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30893
diff changeset
381 gchar *exchndl_dll_path;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
382
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
383 purple_debug_info("winpidgin", "winpidgin_init start\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
384
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
385 exe_hInstance = hint;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
386
30900
3d045343e04d Use some fully qualified dll locations.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30893
diff changeset
387 exchndl_dll_path = g_build_filename(wpurple_install_dir(), "exchndl.dll", NULL);
3d045343e04d Use some fully qualified dll locations.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30893
diff changeset
388 proc = wpurple_find_and_loadproc(exchndl_dll_path, "SetLogFile");
3d045343e04d Use some fully qualified dll locations.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30893
diff changeset
389 g_free(exchndl_dll_path);
3d045343e04d Use some fully qualified dll locations.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30893
diff changeset
390 exchndl_dll_path = NULL;
29885
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
391 if (proc) {
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
392 gchar *debug_dir, *locale_debug_dir;
30893
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
393
29885
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
394 debug_dir = g_build_filename(purple_user_dir(), "pidgin.RPT", NULL);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
395 locale_debug_dir = g_locale_from_utf8(debug_dir, -1, NULL, NULL, NULL);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
396
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
397 purple_debug_info("winpidgin", "Setting exchndl.dll LogFile to %s\n", debug_dir);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
398
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
399 (proc)(locale_debug_dir);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
400
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
401 g_free(debug_dir);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
402 g_free(locale_debug_dir);
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
403 }
80e05718db82 Make Pidgin set the exchndl.dll log file to ~/.purple/pidgin.RPT
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29803
diff changeset
404
30984
7f79ac13965c Make the win32 build possible to compile without GtkSpell if HAVE_GTKSPELL isn't defined.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30900
diff changeset
405 #ifdef USE_GTKSPELL
15638
026f9c6cc942 winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15613
diff changeset
406 winpidgin_spell_init();
30984
7f79ac13965c Make the win32 build possible to compile without GtkSpell if HAVE_GTKSPELL isn't defined.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30900
diff changeset
407 #endif
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
408 purple_debug_info("winpidgin", "GTK+ :%u.%u.%u\n",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
409 gtk_major_version, gtk_minor_version, gtk_micro_version);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
410
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
411 messagewin_hwnd = winpidgin_message_window_init();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
412
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
413 purple_debug_info("winpidgin", "winpidgin_init end\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
416 void winpidgin_post_init(void) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417
16062
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15997
diff changeset
418 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/win32");
07554cc5d090 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <stu@nosnilmot.com>
parents: 15997
diff changeset
419 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/win32/blink_im", TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
421 purple_signal_connect(pidgin_conversations_get_handle(),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
422 "displaying-im-msg", &gtkwin32_handle, PURPLE_CALLBACK(winpidgin_conv_im_blink),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
423 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
424
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
425 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
426
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
427 /* Windows Cleanup */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
428
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
429 void winpidgin_cleanup(void) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
430 purple_debug_info("winpidgin", "winpidgin_cleanup\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
431
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
432 if(messagewin_hwnd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
433 DestroyWindow(messagewin_hwnd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
434
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
435 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
436
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
437 /* DLL initializer */
15638
026f9c6cc942 winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15613
diff changeset
438 /* suppress gcc "no previous prototype" warning */
026f9c6cc942 winpidgin warning fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15613
diff changeset
439 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
440 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
441 dll_hInstance = hinstDLL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
442 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
443 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
444
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
445 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
446 get_WorkingAreaRectForWindow(HWND hwnd, RECT *workingAreaRc) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
448 HMONITOR monitor;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
449 MONITORINFO info;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
450
29803
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
451 monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
452
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
453 info.cbSize = sizeof(info);
29803
c3cd8f9fe4b1 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 29757
diff changeset
454 if(!GetMonitorInfo(monitor, &info))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
455 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
456
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
457 CopyRect(workingAreaRc, &(info.rcWork));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
458 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
459 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
460
15515
75ffc646647f Win32 de-gaimification of pidgin
Daniel Atallah <daniel.atallah@gmail.com>
parents: 15502
diff changeset
461 void winpidgin_ensure_onscreen(GtkWidget *win) {
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
462 RECT winR, wAR, intR;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
463 HWND hwnd = GDK_WINDOW_HWND(win->window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
464
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
465 g_return_if_fail(hwnd != NULL);
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
466 GetWindowRect(hwnd, &winR);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
467
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
468 purple_debug_info("win32placement",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
469 "Window RECT: L:%ld R:%ld T:%ld B:%ld\n",
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
470 winR.left, winR.right,
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
471 winR.top, winR.bottom);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
472
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
473 if(!get_WorkingAreaRectForWindow(hwnd, &wAR)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
474 purple_debug_info("win32placement",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
475 "Couldn't get multimonitor working area\n");
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
476 if(!SystemParametersInfo(SPI_GETWORKAREA, 0, &wAR, FALSE)) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
477 /* I don't think this will ever happen */
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
478 wAR.left = 0;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
479 wAR.top = 0;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
480 wAR.bottom = GetSystemMetrics(SM_CYSCREEN);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
481 wAR.right = GetSystemMetrics(SM_CXSCREEN);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
482 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
483 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
484
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
485 purple_debug_info("win32placement",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
486 "Working Area RECT: L:%ld R:%ld T:%ld B:%ld\n",
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
487 wAR.left, wAR.right,
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
488 wAR.top, wAR.bottom);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
489
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
490 /** If the conversation window doesn't intersect perfectly, move it to do so */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
491 if(!(IntersectRect(&intR, &winR, &wAR)
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
492 && EqualRect(&intR, &winR))) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15638
diff changeset
493 purple_debug_info("win32placement",
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
494 "conversation window out of working area, relocating\n");
20242
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
495
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
496 /* Make sure the working area is big enough. */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
497 if ((winR.right - winR.left) <= (wAR.right - wAR.left)
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
498 && (winR.bottom - winR.top) <= (wAR.bottom - wAR.top)) {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
499 /* Is it off the bottom? */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
500 if (winR.bottom > wAR.bottom) {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
501 winR.top = wAR.bottom - (winR.bottom - winR.top);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
502 winR.bottom = wAR.bottom;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
503 }
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
504 /* Is it off the top? */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
505 else if (winR.top < wAR.top) {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
506 winR.bottom = wAR.top + (winR.bottom - winR.top);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
507 winR.top = wAR.top;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
508 }
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
509
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
510 /* Is it off the left? */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
511 if (winR.left < wAR.left) {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
512 winR.right = wAR.left + (winR.right - winR.left);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
513 winR.left = wAR.left;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
514 }
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
515 /* Is it off the right? */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
516 else if (winR.right > wAR.right) {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
517 winR.left = wAR.right - (winR.right - winR.left);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
518 winR.right = wAR.right;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
519 }
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
520
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
521 } else {
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
522 /* We couldn't salvage it; move it to the top left corner of the working area */
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
523 winR.right = wAR.left + (winR.right - winR.left);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
524 winR.bottom = wAR.top + (winR.bottom - winR.top);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
525 winR.left = wAR.left;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
526 winR.top = wAR.top;
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
527 }
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
528
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
529 purple_debug_info("win32placement",
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
530 "Relocation RECT: L:%ld R:%ld T:%ld B:%ld\n",
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
531 winR.left, winR.right,
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
532 winR.top, winR.bottom);
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
533
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
534 MoveWindow(hwnd, winR.left, winR.top,
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
535 (winR.right - winR.left),
c320bc7b1383 applied changes from 1036f20a46ec1ba10dd2519fd09b44a607cdf202
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
536 (winR.bottom - winR.top), TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
537 }
30893
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
538
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
539 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
540
30893
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
541 DWORD winpidgin_get_lastactive() {
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
542 DWORD result = 0;
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
543
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
544 LASTINPUTINFO lii;
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
545 memset(&lii, 0, sizeof(lii));
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
546 lii.cbSize = sizeof(lii);
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
547 if (GetLastInputInfo(&lii))
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
548 result = lii.dwTime;
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
549
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
550 return result;
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
551 }
80affba7ea0d Kill the win32 idle tracking code that works on old windows versions and move
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30359
diff changeset
552