| 108 static gboolean flash_window_cb(gpointer data) { |
108 static gboolean flash_window_cb(gpointer data) { |
| 109 FlashWindow((HWND)data, TRUE); |
109 FlashWindow((HWND)data, TRUE); |
| 110 return TRUE; |
110 return TRUE; |
| 111 } |
111 } |
| 112 |
112 |
| 113 static void halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, gpointer data) { |
113 static int halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, gpointer data) { |
| 114 if(MyFlashWindowEx) { |
114 if(MyFlashWindowEx) { |
| 115 HWND hWnd = data; |
115 HWND hWnd = data; |
| 116 FLASHWINFO info; |
116 FLASHWINFO info; |
| 117 |
117 |
| 118 if(!IsWindow(hWnd)) |
118 if(!IsWindow(hWnd)) |
| 119 return; |
119 return 0; |
| 120 memset(&info, 0, sizeof(FLASHWINFO)); |
120 memset(&info, 0, sizeof(FLASHWINFO)); |
| 121 info.cbSize = sizeof(FLASHWINFO); |
121 info.cbSize = sizeof(FLASHWINFO); |
| 122 info.hwnd = hWnd; |
122 info.hwnd = hWnd; |
| 123 info.dwFlags = FLASHW_STOP; |
123 info.dwFlags = FLASHW_STOP; |
| 124 info.dwTimeout = 0; |
124 info.dwTimeout = 0; |
| 132 gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Disconnecting signal handler\n"); |
132 gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Disconnecting signal handler\n"); |
| 133 g_signal_handler_disconnect(G_OBJECT(widget),finfo->sig_handler); |
133 g_signal_handler_disconnect(G_OBJECT(widget),finfo->sig_handler); |
| 134 gaim_debug(GAIM_DEBUG_INFO, "wgaim", "done\n"); |
134 gaim_debug(GAIM_DEBUG_INFO, "wgaim", "done\n"); |
| 135 g_free(finfo); |
135 g_free(finfo); |
| 136 } |
136 } |
| |
137 return 0; |
| 137 } |
138 } |
| 138 |
139 |
| 139 static void load_winver_specific_procs(void) { |
140 static void load_winver_specific_procs(void) { |
| 140 /* Used for Win98+ and WinNT5+ */ |
141 /* Used for Win98+ and WinNT5+ */ |
| 141 MyFlashWindowEx = (LPFNFLASHWINDOWEX)wgaim_find_and_loadproc("user32.dll", "FlashWindowEx" ); |
142 MyFlashWindowEx = (LPFNFLASHWINDOWEX)wgaim_find_and_loadproc("user32.dll", "FlashWindowEx" ); |