diff options
| author | Kenichi Handa | 2010-01-18 10:07:25 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2010-01-18 10:07:25 +0900 |
| commit | b7235808116742ec0a7aacbe53fb80db13ce5ef7 (patch) | |
| tree | de1a69bba2232b000b9166c3f9accc3f9672c1fa /src | |
| parent | f0d138880a572e2b064d5af2668cd3a54a1d0a1e (diff) | |
| parent | f53a65903cdb66a73b919617054a69ce8042e495 (diff) | |
| download | emacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.tar.gz emacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.zip | |
Add bug number.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 21 | ||||
| -rw-r--r-- | src/Makefile.in | 16 | ||||
| -rw-r--r-- | src/atimer.h | 2 | ||||
| -rw-r--r-- | src/emacs.c | 7 | ||||
| -rw-r--r-- | src/xdisp.c | 3 | ||||
| -rw-r--r-- | src/xterm.c | 49 |
6 files changed, 67 insertions, 31 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 98489e1d71d..e1d2ba440ab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,24 @@ | |||
| 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 | |||
| 10 | 2010-01-16 Andreas Schwab <schwab@linux-m68k.org> | ||
| 11 | |||
| 12 | * Makefile.in (lisp, shortlisp): Update. | ||
| 13 | |||
| 14 | 2010-01-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 15 | |||
| 16 | * xterm.c (x_term_init): Instead of inhibiting GC while running Lisp | ||
| 17 | code, link the new kboard into all_kboard before running Lisp code, | ||
| 18 | and protect the new terminal with GCPRO (Bug#5365). | ||
| 19 | (x_term_init): Remove unused var `atom'. | ||
| 20 | (x_delete_display, x_delete_terminal): Remove unused var `i'. | ||
| 21 | |||
| 1 | 2010-01-15 Jan Djärv <jan.h.d@swipnet.se> | 22 | 2010-01-15 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 23 | ||
| 3 | * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions. | 24 | * xfns.c (x_get_current_desktop, x_get_desktop_workarea): New functions. |
diff --git a/src/Makefile.in b/src/Makefile.in index 1fd3a3ffe85..11facec6023 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -736,13 +736,13 @@ lisp= \ | |||
| 736 | ${lispsource}emacs-lisp/map-ynp.elc \ | 736 | ${lispsource}emacs-lisp/map-ynp.elc \ |
| 737 | ${lispsource}menu-bar.elc \ | 737 | ${lispsource}menu-bar.elc \ |
| 738 | ${lispsource}international/mule.elc \ | 738 | ${lispsource}international/mule.elc \ |
| 739 | ${lispsource}international/mule-conf.el \ | 739 | ${lispsource}international/mule-conf.elc \ |
| 740 | ${lispsource}international/mule-cmds.elc \ | 740 | ${lispsource}international/mule-cmds.elc \ |
| 741 | ${lispsource}international/characters.elc \ | 741 | ${lispsource}international/characters.elc \ |
| 742 | ${lispsource}international/charprop.el \ | 742 | ${lispsource}international/charprop.el \ |
| 743 | ${lispsource}case-table.elc \ | 743 | ${lispsource}case-table.elc \ |
| 744 | ${lispsource}language/chinese.el \ | 744 | ${lispsource}language/chinese.elc \ |
| 745 | ${lispsource}language/cyrillic.el \ | 745 | ${lispsource}language/cyrillic.elc \ |
| 746 | ${lispsource}language/indian.elc \ | 746 | ${lispsource}language/indian.elc \ |
| 747 | ${lispsource}language/sinhala.el \ | 747 | ${lispsource}language/sinhala.el \ |
| 748 | ${lispsource}language/english.el \ | 748 | ${lispsource}language/english.el \ |
| @@ -760,7 +760,7 @@ lisp= \ | |||
| 760 | ${lispsource}language/tai-viet.el \ | 760 | ${lispsource}language/tai-viet.el \ |
| 761 | ${lispsource}language/thai.el \ | 761 | ${lispsource}language/thai.el \ |
| 762 | ${lispsource}language/tibetan.elc \ | 762 | ${lispsource}language/tibetan.elc \ |
| 763 | ${lispsource}language/vietnamese.el \ | 763 | ${lispsource}language/vietnamese.elc \ |
| 764 | ${lispsource}language/misc-lang.el \ | 764 | ${lispsource}language/misc-lang.el \ |
| 765 | ${lispsource}language/utf-8-lang.el \ | 765 | ${lispsource}language/utf-8-lang.el \ |
| 766 | ${lispsource}language/georgian.el \ | 766 | ${lispsource}language/georgian.el \ |
| @@ -829,12 +829,12 @@ shortlisp= \ | |||
| 829 | ../lisp/emacs-lisp/map-ynp.elc \ | 829 | ../lisp/emacs-lisp/map-ynp.elc \ |
| 830 | ../lisp/env.elc \ | 830 | ../lisp/env.elc \ |
| 831 | ../lisp/international/mule.elc \ | 831 | ../lisp/international/mule.elc \ |
| 832 | ../lisp/international/mule-conf.el \ | 832 | ../lisp/international/mule-conf.elc \ |
| 833 | ../lisp/international/mule-cmds.elc \ | 833 | ../lisp/international/mule-cmds.elc \ |
| 834 | ../lisp/international/characters.elc \ | 834 | ../lisp/international/characters.elc \ |
| 835 | ../lisp/case-table.elc \ | 835 | ../lisp/case-table.elc \ |
| 836 | ../lisp/language/chinese.el \ | 836 | ../lisp/language/chinese.elc \ |
| 837 | ../lisp/language/cyrillic.el \ | 837 | ../lisp/language/cyrillic.elc \ |
| 838 | ../lisp/language/indian.elc \ | 838 | ../lisp/language/indian.elc \ |
| 839 | ../lisp/language/sinhala.el \ | 839 | ../lisp/language/sinhala.el \ |
| 840 | ../lisp/language/english.el \ | 840 | ../lisp/language/english.el \ |
| @@ -852,7 +852,7 @@ shortlisp= \ | |||
| 852 | ../lisp/language/tai-viet.el \ | 852 | ../lisp/language/tai-viet.el \ |
| 853 | ../lisp/language/thai.el \ | 853 | ../lisp/language/thai.el \ |
| 854 | ../lisp/language/tibetan.elc \ | 854 | ../lisp/language/tibetan.elc \ |
| 855 | ../lisp/language/vietnamese.el \ | 855 | ../lisp/language/vietnamese.elc \ |
| 856 | ../lisp/language/misc-lang.el \ | 856 | ../lisp/language/misc-lang.el \ |
| 857 | ../lisp/language/utf-8-lang.el \ | 857 | ../lisp/language/utf-8-lang.el \ |
| 858 | ../lisp/language/georgian.el \ | 858 | ../lisp/language/georgian.el \ |
diff --git a/src/atimer.h b/src/atimer.h index 5ea1197e66d..fd354caf54d 100644 --- a/src/atimer.h +++ b/src/atimer.h | |||
| @@ -43,7 +43,7 @@ enum atimer_type | |||
| 43 | /* Timer is ripe at now plus an offset. */ | 43 | /* Timer is ripe at now plus an offset. */ |
| 44 | ATIMER_RELATIVE, | 44 | ATIMER_RELATIVE, |
| 45 | 45 | ||
| 46 | /* Timer runs continously. */ | 46 | /* Timer runs continuously. */ |
| 47 | ATIMER_CONTINUOUS | 47 | ATIMER_CONTINUOUS |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
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/xdisp.c b/src/xdisp.c index ef9c7453d75..7d43f2d8bef 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | /* Display generation from window structure and buffer text. | 1 | /* Display generation from window structure and buffer text. |
| 2 | Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, | 2 | Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, |
| 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, | 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
| 4 | 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | 4 | 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
| 5 | Free Software Foundation, Inc. | ||
| 5 | 6 | ||
| 6 | This file is part of GNU Emacs. | 7 | This file is part of GNU Emacs. |
| 7 | 8 | ||
diff --git a/src/xterm.c b/src/xterm.c index 72dff200d82..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 | ||
| @@ -9821,7 +9826,7 @@ x_wm_set_icon_pixmap (f, pixmap_id) | |||
| 9821 | { | 9826 | { |
| 9822 | Pixmap icon_pixmap, icon_mask; | 9827 | Pixmap icon_pixmap, icon_mask; |
| 9823 | 9828 | ||
| 9824 | #ifndef USE_X_TOOLKIT | 9829 | #if !defined USE_X_TOOLKIT && !defined USE_GTK |
| 9825 | Window window = FRAME_OUTER_WINDOW (f); | 9830 | Window window = FRAME_OUTER_WINDOW (f); |
| 9826 | #endif | 9831 | #endif |
| 9827 | 9832 | ||
| @@ -10076,7 +10081,6 @@ x_term_init (display_name, xrm_option, resource_name) | |||
| 10076 | int argc; | 10081 | int argc; |
| 10077 | char *argv[NUM_ARGV]; | 10082 | char *argv[NUM_ARGV]; |
| 10078 | char **argv2 = argv; | 10083 | char **argv2 = argv; |
| 10079 | GdkAtom atom; | ||
| 10080 | guint id; | 10084 | guint id; |
| 10081 | #ifndef HAVE_GTK_MULTIDISPLAY | 10085 | #ifndef HAVE_GTK_MULTIDISPLAY |
| 10082 | if (!EQ (Vinitial_window_system, Qx)) | 10086 | if (!EQ (Vinitial_window_system, Qx)) |
| @@ -10215,25 +10219,36 @@ x_term_init (display_name, xrm_option, resource_name) | |||
| 10215 | terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); | 10219 | terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); |
| 10216 | init_kboard (terminal->kboard); | 10220 | init_kboard (terminal->kboard); |
| 10217 | terminal->kboard->Vwindow_system = Qx; | 10221 | terminal->kboard->Vwindow_system = Qx; |
| 10222 | |||
| 10223 | /* Add the keyboard to the list before running Lisp code (via | ||
| 10224 | Qvendor_specific_keysyms below), since these are not traced | ||
| 10225 | via terminals but only through all_kboards. */ | ||
| 10226 | terminal->kboard->next_kboard = all_kboards; | ||
| 10227 | all_kboards = terminal->kboard; | ||
| 10228 | |||
| 10218 | if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound)) | 10229 | if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound)) |
| 10219 | { | 10230 | { |
| 10220 | char *vendor = ServerVendor (dpy); | 10231 | char *vendor = ServerVendor (dpy); |
| 10221 | /* Temporarily hide the partially initialized terminal, | 10232 | |
| 10222 | but make sure it doesn't get garbage collected. */ | 10233 | /* Protect terminal from GC before removing it from the |
| 10223 | int count = inhibit_garbage_collection (); | 10234 | list of terminals. */ |
| 10235 | struct gcpro gcpro1; | ||
| 10236 | Lisp_Object gcpro_term; | ||
| 10237 | XSETTERMINAL (gcpro_term, terminal); | ||
| 10238 | GCPRO1 (gcpro_term); | ||
| 10239 | |||
| 10240 | /* Temporarily hide the partially initialized terminal. */ | ||
| 10224 | terminal_list = terminal->next_terminal; | 10241 | terminal_list = terminal->next_terminal; |
| 10225 | UNBLOCK_INPUT; | 10242 | UNBLOCK_INPUT; |
| 10226 | terminal->kboard->Vsystem_key_alist | 10243 | terminal->kboard->Vsystem_key_alist |
| 10227 | = call1 (Qvendor_specific_keysyms, | 10244 | = call1 (Qvendor_specific_keysyms, |
| 10228 | vendor ? build_string (vendor) : empty_unibyte_string); | 10245 | vendor ? build_string (vendor) : empty_unibyte_string); |
| 10229 | BLOCK_INPUT; | 10246 | BLOCK_INPUT; |
| 10230 | unbind_to (count, Qnil); | ||
| 10231 | terminal->next_terminal = terminal_list; | 10247 | terminal->next_terminal = terminal_list; |
| 10232 | terminal_list = terminal; | 10248 | terminal_list = terminal; |
| 10249 | UNGCPRO; | ||
| 10233 | } | 10250 | } |
| 10234 | 10251 | ||
| 10235 | terminal->kboard->next_kboard = all_kboards; | ||
| 10236 | all_kboards = terminal->kboard; | ||
| 10237 | /* Don't let the initial kboard remain current longer than necessary. | 10252 | /* Don't let the initial kboard remain current longer than necessary. |
| 10238 | That would cause problems if a file loaded on startup tries to | 10253 | That would cause problems if a file loaded on startup tries to |
| 10239 | prompt in the mini-buffer. */ | 10254 | prompt in the mini-buffer. */ |
| @@ -10582,7 +10597,6 @@ void | |||
| 10582 | x_delete_display (dpyinfo) | 10597 | x_delete_display (dpyinfo) |
| 10583 | struct x_display_info *dpyinfo; | 10598 | struct x_display_info *dpyinfo; |
| 10584 | { | 10599 | { |
| 10585 | int i; | ||
| 10586 | struct terminal *t; | 10600 | struct terminal *t; |
| 10587 | 10601 | ||
| 10588 | /* Close all frames and delete the generic struct terminal for this | 10602 | /* Close all frames and delete the generic struct terminal for this |
| @@ -10734,7 +10748,6 @@ void | |||
| 10734 | x_delete_terminal (struct terminal *terminal) | 10748 | x_delete_terminal (struct terminal *terminal) |
| 10735 | { | 10749 | { |
| 10736 | struct x_display_info *dpyinfo = terminal->display_info.x; | 10750 | struct x_display_info *dpyinfo = terminal->display_info.x; |
| 10737 | int i; | ||
| 10738 | 10751 | ||
| 10739 | /* Protect against recursive calls. delete_frame in | 10752 | /* Protect against recursive calls. delete_frame in |
| 10740 | delete_terminal calls us back when it deletes our last frame. */ | 10753 | delete_terminal calls us back when it deletes our last frame. */ |