aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2010-01-18 10:07:25 +0900
committerKenichi Handa2010-01-18 10:07:25 +0900
commitb7235808116742ec0a7aacbe53fb80db13ce5ef7 (patch)
treede1a69bba2232b000b9166c3f9accc3f9672c1fa /src
parentf0d138880a572e2b064d5af2668cd3a54a1d0a1e (diff)
parentf53a65903cdb66a73b919617054a69ce8042e495 (diff)
downloademacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.tar.gz
emacs-b7235808116742ec0a7aacbe53fb80db13ce5ef7.zip
Add bug number.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog21
-rw-r--r--src/Makefile.in16
-rw-r--r--src/atimer.h2
-rw-r--r--src/emacs.c7
-rw-r--r--src/xdisp.c3
-rw-r--r--src/xterm.c49
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 @@
12010-01-16 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * xterm.c (event_handler_gdk): Block input (Bug#5037).
4
52010-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
102010-01-16 Andreas Schwab <schwab@linux-m68k.org>
11
12 * Makefile.in (lisp, shortlisp): Update.
13
142010-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
12010-01-15 Jan Djärv <jan.h.d@swipnet.se> 222010-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
6This file is part of GNU Emacs. 7This 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, &current_finish,
5820 handle_one_xevent (dpyinfo, xev, &current_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
10582x_delete_display (dpyinfo) 10597x_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
10734x_delete_terminal (struct terminal *terminal) 10748x_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. */