gtk/win32/gtkwin32dep.c

changeset 14857
835b4926932f
parent 14762
f494a5f12981
child 14867
03271f43f081
equal deleted inserted replaced
14856:230c196a19f2 14857:835b4926932f
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,

mercurial