| 320 GdkWindow * gdkwin; |
320 GdkWindow * gdkwin; |
| 321 FLASHWINFO info; |
321 FLASHWINFO info; |
| 322 |
322 |
| 323 g_return_if_fail(window != NULL); |
323 g_return_if_fail(window != NULL); |
| 324 |
324 |
| 325 gdkwin = GTK_WIDGET(window)->window; |
325 gdkwin = gtk_widget_get_window(GTK_WIDGET(window)); |
| 326 |
326 |
| 327 g_return_if_fail(GDK_IS_WINDOW(gdkwin)); |
327 g_return_if_fail(GDK_IS_WINDOW(gdkwin)); |
| 328 g_return_if_fail(GDK_WINDOW_TYPE(gdkwin) != GDK_WINDOW_CHILD); |
328 g_return_if_fail(gdk_window_get_window_type(gdkwin) != GDK_WINDOW_CHILD); |
| 329 |
329 |
| 330 if(GDK_WINDOW_DESTROYED(gdkwin)) |
330 if (gdk_window_is_destroyed(gdkwin)) |
| 331 return; |
331 return; |
| 332 |
332 |
| 333 memset(&info, 0, sizeof(FLASHWINFO)); |
333 memset(&info, 0, sizeof(FLASHWINFO)); |
| 334 info.cbSize = sizeof(FLASHWINFO); |
334 info.cbSize = sizeof(FLASHWINFO); |
| 335 info.hwnd = GDK_WINDOW_HWND(gdkwin); |
335 info.hwnd = GDK_WINDOW_HWND(gdkwin); |
| 366 return; |
366 return; |
| 367 } |
367 } |
| 368 window = GTK_WINDOW(win->window); |
368 window = GTK_WINDOW(win->window); |
| 369 |
369 |
| 370 /* Don't flash if the window is in the foreground */ |
370 /* Don't flash if the window is in the foreground */ |
| 371 if (GetForegroundWindow() == GDK_WINDOW_HWND(GTK_WIDGET(window)->window)) |
371 if (GetForegroundWindow() == |
| |
372 GDK_WINDOW_HWND(gtk_widget_get_window(GTK_WIDGET(window)))) |
| |
373 { |
| 372 return; |
374 return; |
| |
375 } |
| 373 |
376 |
| 374 winpidgin_window_flash(window, TRUE); |
377 winpidgin_window_flash(window, TRUE); |
| 375 /* Stop flashing when window receives focus */ |
378 /* Stop flashing when window receives focus */ |
| 376 if (g_object_get_data(G_OBJECT(window), "flash_stop_handler_id") == NULL) { |
379 if (g_object_get_data(G_OBJECT(window), "flash_stop_handler_id") == NULL) { |
| 377 gulong handler_id = g_signal_connect(G_OBJECT(window), "focus-in-event", |
380 gulong handler_id = g_signal_connect(G_OBJECT(window), "focus-in-event", |
| 472 return TRUE; |
475 return TRUE; |
| 473 } |
476 } |
| 474 |
477 |
| 475 void winpidgin_ensure_onscreen(GtkWidget *win) { |
478 void winpidgin_ensure_onscreen(GtkWidget *win) { |
| 476 RECT winR, wAR, intR; |
479 RECT winR, wAR, intR; |
| 477 HWND hwnd = GDK_WINDOW_HWND(win->window); |
480 HWND hwnd = GDK_WINDOW_HWND(gtk_widget_get_window(win)); |
| 478 |
481 |
| 479 g_return_if_fail(hwnd != NULL); |
482 g_return_if_fail(hwnd != NULL); |
| 480 GetWindowRect(hwnd, &winR); |
483 GetWindowRect(hwnd, &winR); |
| 481 |
484 |
| 482 purple_debug_info("win32placement", |
485 purple_debug_info("win32placement", |