Mercurial > pidgin
comparison finch/libgnt/gntmain.c @ 17047:a19b8d71f868
Do not process clicks on no widget.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 11 May 2007 21:06:47 +0000 |
parents | d2904afe89e2 |
children | 541c5ed54e90 |
comparison
equal
deleted
inserted
replaced
17045:413c957e7c44 | 17047:a19b8d71f868 |
---|---|
142 } else if (strncmp(buffer, "[M#", 3) == 0) { | 142 } else if (strncmp(buffer, "[M#", 3) == 0) { |
143 /* button up */ | 143 /* button up */ |
144 event = GNT_MOUSE_UP; | 144 event = GNT_MOUSE_UP; |
145 } else | 145 } else |
146 return FALSE; | 146 return FALSE; |
147 | 147 |
148 if (!widget) | |
149 return FALSE; | |
150 | |
148 if (gnt_wm_process_click(wm, event, x, y, widget)) | 151 if (gnt_wm_process_click(wm, event, x, y, widget)) |
149 return TRUE; | 152 return TRUE; |
150 | 153 |
151 if (event == GNT_LEFT_MOUSE_DOWN && widget && widget != wm->_list.window && | 154 if (event == GNT_LEFT_MOUSE_DOWN && widget && widget != wm->_list.window && |
152 !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { | 155 !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { |
346 gnt_widget_show(win); | 349 gnt_widget_show(win); |
347 raise: | 350 raise: |
348 gnt_wm_raise_window(wm, win); | 351 gnt_wm_raise_window(wm, win); |
349 } | 352 } |
350 | 353 |
354 #ifdef SIGWINCH | |
355 static void (*org_winch_handler)(int); | |
356 #endif | |
357 | |
351 static void | 358 static void |
352 sighandler(int sig) | 359 sighandler(int sig) |
353 { | 360 { |
354 switch (sig) { | 361 switch (sig) { |
355 #ifdef SIGWINCH | 362 #ifdef SIGWINCH |
356 case SIGWINCH: | 363 case SIGWINCH: |
357 werase(stdscr); | 364 werase(stdscr); |
358 wrefresh(stdscr); | 365 wrefresh(stdscr); |
359 g_idle_add(refresh_screen, NULL); | 366 g_idle_add(refresh_screen, NULL); |
367 org_winch_handler(sig); | |
360 signal(SIGWINCH, sighandler); | 368 signal(SIGWINCH, sighandler); |
361 break; | 369 break; |
362 #endif | 370 #endif |
363 case SIGCHLD: | 371 case SIGCHLD: |
364 clean_pid(); | 372 clean_pid(); |
432 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); | 440 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); |
433 werase(stdscr); | 441 werase(stdscr); |
434 wrefresh(stdscr); | 442 wrefresh(stdscr); |
435 | 443 |
436 #ifdef SIGWINCH | 444 #ifdef SIGWINCH |
437 signal(SIGWINCH, sighandler); | 445 org_winch_handler = signal(SIGWINCH, sighandler); |
438 #endif | 446 #endif |
439 signal(SIGCHLD, sighandler); | 447 signal(SIGCHLD, sighandler); |
440 signal(SIGINT, sighandler); | 448 signal(SIGINT, sighandler); |
441 signal(SIGPIPE, SIG_IGN); | 449 signal(SIGPIPE, SIG_IGN); |
442 | 450 |