diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 9 | ||||
| -rw-r--r-- | src/emacs.c | 7 | ||||
| -rw-r--r-- | src/xterm.c | 21 |
3 files changed, 26 insertions, 11 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 94a1f9604f5..e1d2ba440ab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2010-01-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * xterm.c (event_handler_gdk): Block input (Bug#5037). | ||
| 4 | |||
| 5 | 2010-01-16 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * emacs.c (standard_args): Adjust arg priorities to reflect how | ||
| 8 | they are processed in startup.el. | ||
| 9 | |||
| 1 | 2010-01-16 Andreas Schwab <schwab@linux-m68k.org> | 10 | 2010-01-16 Andreas Schwab <schwab@linux-m68k.org> |
| 2 | 11 | ||
| 3 | * Makefile.in (lisp, shortlisp): Update. | 12 | * Makefile.in (lisp, shortlisp): Update. |
diff --git a/src/emacs.c b/src/emacs.c index 2f73e8b837a..71ffa998bfe 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -1869,7 +1869,7 @@ const struct standard_args standard_args[] = | |||
| 1869 | /* -d must come last before the options handled in startup.el. */ | 1869 | /* -d must come last before the options handled in startup.el. */ |
| 1870 | { "-d", "--display", 60, 1 }, | 1870 | { "-d", "--display", 60, 1 }, |
| 1871 | { "-display", 0, 60, 1 }, | 1871 | { "-display", 0, 60, 1 }, |
| 1872 | /* Now for the options handled in startup.el. */ | 1872 | /* Now for the options handled in `command-line' (startup.el). */ |
| 1873 | { "-Q", "--quick", 55, 0 }, | 1873 | { "-Q", "--quick", 55, 0 }, |
| 1874 | { "-quick", 0, 55, 0 }, | 1874 | { "-quick", 0, 55, 0 }, |
| 1875 | { "-q", "--no-init-file", 50, 0 }, | 1875 | { "-q", "--no-init-file", 50, 0 }, |
| @@ -1878,10 +1878,12 @@ const struct standard_args standard_args[] = | |||
| 1878 | { "-u", "--user", 30, 1 }, | 1878 | { "-u", "--user", 30, 1 }, |
| 1879 | { "-user", 0, 30, 1 }, | 1879 | { "-user", 0, 30, 1 }, |
| 1880 | { "-debug-init", "--debug-init", 20, 0 }, | 1880 | { "-debug-init", "--debug-init", 20, 0 }, |
| 1881 | { "-nbi", "--no-bitmap-icon", 15, 0 }, | ||
| 1882 | { "-iconic", "--iconic", 15, 0 }, | 1881 | { "-iconic", "--iconic", 15, 0 }, |
| 1883 | { "-D", "--basic-display", 12, 0}, | 1882 | { "-D", "--basic-display", 12, 0}, |
| 1884 | { "-basic-display", 0, 12, 0}, | 1883 | { "-basic-display", 0, 12, 0}, |
| 1884 | { "-nbc", "--no-blinking-cursor", 12, 0 }, | ||
| 1885 | /* Now for the options handled in `command-line-1' (startup.el). */ | ||
| 1886 | { "-nbi", "--no-bitmap-icon", 10, 0 }, | ||
| 1885 | { "-bg", "--background-color", 10, 1 }, | 1887 | { "-bg", "--background-color", 10, 1 }, |
| 1886 | { "-background", 0, 10, 1 }, | 1888 | { "-background", 0, 10, 1 }, |
| 1887 | { "-fg", "--foreground-color", 10, 1 }, | 1889 | { "-fg", "--foreground-color", 10, 1 }, |
| @@ -1891,7 +1893,6 @@ const struct standard_args standard_args[] = | |||
| 1891 | { "-ib", "--internal-border", 10, 1 }, | 1893 | { "-ib", "--internal-border", 10, 1 }, |
| 1892 | { "-ms", "--mouse-color", 10, 1 }, | 1894 | { "-ms", "--mouse-color", 10, 1 }, |
| 1893 | { "-cr", "--cursor-color", 10, 1 }, | 1895 | { "-cr", "--cursor-color", 10, 1 }, |
| 1894 | { "-nbc", "--no-blinking-cursor", 10, 0 }, | ||
| 1895 | { "-fn", "--font", 10, 1 }, | 1896 | { "-fn", "--font", 10, 1 }, |
| 1896 | { "-font", 0, 10, 1 }, | 1897 | { "-font", 0, 10, 1 }, |
| 1897 | { "-fs", "--fullscreen", 10, 0 }, | 1898 | { "-fs", "--fullscreen", 10, 0 }, |
diff --git a/src/xterm.c b/src/xterm.c index b541683e5ad..1add3c415e7 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -5797,6 +5797,7 @@ event_handler_gdk (gxev, ev, data) | |||
| 5797 | { | 5797 | { |
| 5798 | XEvent *xev = (XEvent *) gxev; | 5798 | XEvent *xev = (XEvent *) gxev; |
| 5799 | 5799 | ||
| 5800 | BLOCK_INPUT; | ||
| 5800 | if (current_count >= 0) | 5801 | if (current_count >= 0) |
| 5801 | { | 5802 | { |
| 5802 | struct x_display_info *dpyinfo; | 5803 | struct x_display_info *dpyinfo; |
| @@ -5807,23 +5808,27 @@ event_handler_gdk (gxev, ev, data) | |||
| 5807 | /* Filter events for the current X input method. | 5808 | /* Filter events for the current X input method. |
| 5808 | GTK calls XFilterEvent but not for key press and release, | 5809 | GTK calls XFilterEvent but not for key press and release, |
| 5809 | so we do it here. */ | 5810 | so we do it here. */ |
| 5810 | if (xev->type == KeyPress || xev->type == KeyRelease) | 5811 | if ((xev->type == KeyPress || xev->type == KeyRelease) |
| 5811 | if (dpyinfo && x_filter_event (dpyinfo, xev)) | 5812 | && dpyinfo |
| 5812 | return GDK_FILTER_REMOVE; | 5813 | && x_filter_event (dpyinfo, xev)) |
| 5814 | { | ||
| 5815 | UNBLOCK_INPUT; | ||
| 5816 | return GDK_FILTER_REMOVE; | ||
| 5817 | } | ||
| 5813 | #endif | 5818 | #endif |
| 5814 | 5819 | ||
| 5815 | if (! dpyinfo) | 5820 | if (! dpyinfo) |
| 5816 | current_finish = X_EVENT_NORMAL; | 5821 | current_finish = X_EVENT_NORMAL; |
| 5817 | else | 5822 | else |
| 5818 | { | 5823 | current_count += |
| 5819 | current_count += | 5824 | handle_one_xevent (dpyinfo, xev, ¤t_finish, |
| 5820 | handle_one_xevent (dpyinfo, xev, ¤t_finish, | 5825 | current_hold_quit); |
| 5821 | current_hold_quit); | ||
| 5822 | } | ||
| 5823 | } | 5826 | } |
| 5824 | else | 5827 | else |
| 5825 | current_finish = x_dispatch_event (xev, xev->xany.display); | 5828 | current_finish = x_dispatch_event (xev, xev->xany.display); |
| 5826 | 5829 | ||
| 5830 | UNBLOCK_INPUT; | ||
| 5831 | |||
| 5827 | if (current_finish == X_EVENT_GOTO_OUT || current_finish == X_EVENT_DROP) | 5832 | if (current_finish == X_EVENT_GOTO_OUT || current_finish == X_EVENT_DROP) |
| 5828 | return GDK_FILTER_REMOVE; | 5833 | return GDK_FILTER_REMOVE; |
| 5829 | 5834 | ||