| 223 } |
223 } |
| 224 |
224 |
| 225 return win_hwnd; |
225 return win_hwnd; |
| 226 } |
226 } |
| 227 |
227 |
| 228 static int |
|
| 229 halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, gpointer data) { |
|
| 230 if(MyFlashWindowEx) { |
|
| 231 HWND hWnd = data; |
|
| 232 FLASHWINFO info; |
|
| 233 |
|
| 234 if(!IsWindow(hWnd)) |
|
| 235 return 0; |
|
| 236 |
|
| 237 memset(&info, 0, sizeof(FLASHWINFO)); |
|
| 238 info.cbSize = sizeof(FLASHWINFO); |
|
| 239 info.hwnd = hWnd; |
|
| 240 info.dwFlags = FLASHW_STOP; |
|
| 241 info.dwTimeout = 0; |
|
| 242 MyFlashWindowEx(&info); |
|
| 243 } |
|
| 244 return 0; |
|
| 245 } |
|
| 246 |
|
| 247 void |
228 void |
| 248 gtkwgaim_conv_blink(GaimConversation *conv, GaimMessageFlags flags) { |
229 gtkwgaim_conv_blink(GaimConversation *conv, GaimMessageFlags flags) { |
| 249 GaimGtkWindow *win; |
230 GaimGtkWindow *win; |
| 250 GtkWidget *window; |
231 GtkWidget *window; |
| 251 |
232 |
| 264 return; |
245 return; |
| 265 } |
246 } |
| 266 |
247 |
| 267 window = win->window; |
248 window = win->window; |
| 268 |
249 |
| |
250 /* Don't flash if we have the window focused */ |
| |
251 if(GetForegroundWindow() == GDK_WINDOW_HWND(window->window)) |
| |
252 return; |
| |
253 |
| 269 if(MyFlashWindowEx) { |
254 if(MyFlashWindowEx) { |
| 270 FLASHWINFO info; |
255 FLASHWINFO info; |
| 271 /* Don't flash if we have the window focused */ |
|
| 272 if(GetForegroundWindow() == GDK_WINDOW_HWND(window->window)) |
|
| 273 return; |
|
| 274 |
256 |
| 275 memset(&info, 0, sizeof(FLASHWINFO)); |
257 memset(&info, 0, sizeof(FLASHWINFO)); |
| 276 info.cbSize = sizeof(FLASHWINFO); |
258 info.cbSize = sizeof(FLASHWINFO); |
| 277 info.hwnd = GDK_WINDOW_HWND(window->window); |
259 info.hwnd = GDK_WINDOW_HWND(window->window); |
| 278 info.dwFlags = FLASHW_ALL | FLASHW_TIMER; |
260 info.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; |
| 279 info.dwTimeout = 0; |
261 info.dwTimeout = 0; |
| 280 MyFlashWindowEx(&info); |
262 MyFlashWindowEx(&info); |
| 281 /* Stop flashing when window receives focus */ |
|
| 282 g_signal_connect(G_OBJECT(window), "focus-in-event", |
|
| 283 G_CALLBACK(halt_flash_filter), info.hwnd); |
|
| 284 } |
263 } |
| 285 } |
264 } |
| 286 |
265 |
| 287 static gboolean |
266 static gboolean |
| 288 gtkwgaim_conv_im_blink(GaimAccount *account, const char *who, char **message, |
267 gtkwgaim_conv_im_blink(GaimAccount *account, const char *who, char **message, |