aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiles Bader2006-05-17 07:46:49 +0000
committerMiles Bader2006-05-17 07:46:49 +0000
commit4ed925c6687e25373e8d75e68b9072f1170d571a (patch)
tree257bac5e35e00b7f5a23768e04121bb29534dfe2 /src
parent89acbd040797742d97dbbe562a495574da88326c (diff)
parent8d1bec8de1c570475c1332d1305bea21ffda44f1 (diff)
downloademacs-4ed925c6687e25373e8d75e68b9072f1170d571a.tar.gz
emacs-4ed925c6687e25373e8d75e68b9072f1170d571a.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 274-284) - Update from CVS - Update etc/MORE.STUFF. - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 101) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-62
Diffstat (limited to 'src')
-rw-r--r--src/.arch-inventory2
-rw-r--r--src/ChangeLog51
-rw-r--r--src/Makefile.in4
-rw-r--r--src/editfns.c4
-rw-r--r--src/fileio.c9
-rw-r--r--src/frame.c2
-rw-r--r--src/intervals.c40
-rw-r--r--src/lread.c8
-rw-r--r--src/textprop.c68
-rw-r--r--src/xdisp.c2
-rw-r--r--src/xterm.c12
11 files changed, 142 insertions, 60 deletions
diff --git a/src/.arch-inventory b/src/.arch-inventory
index a98d4c9932f..fe99529135f 100644
--- a/src/.arch-inventory
+++ b/src/.arch-inventory
@@ -2,7 +2,7 @@
2source ^\.(gdbinit|dbxinit)$ 2source ^\.(gdbinit|dbxinit)$
3 3
4# Auto-generated files, which ignore 4# Auto-generated files, which ignore
5precious ^(config\.stamp|config\.h|epaths\.h)$ 5precious ^(config\.stamp|config\.h|epaths\.h|buildobj\.lst)$
6 6
7backup ^(stamp-oldxmenu|prefix-args|temacs|emacs|emacs-[0-9.]*)$ 7backup ^(stamp-oldxmenu|prefix-args|temacs|emacs|emacs-[0-9.]*)$
8 8
diff --git a/src/ChangeLog b/src/ChangeLog
index d7e8293ad27..61fca56c357 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,54 @@
12006-05-16 Kim F. Storm <storm@cua.dk>
2
3 * xterm.c (handle_one_xevent): Check that f is not NULL before
4 calling x_kill_gs_process.
5
62006-05-14 Richard Stallman <rms@gnu.org>
7
8 * textprop.c (Fnext_single_char_property_change)
9 (Fprevious_single_char_property_change): Don't allow returning
10 value beyond LIMIT in any cases.
11 (Fnext_char_property_change, Fprevious_char_property_change): Doc fix.
12
13 * intervals.c (get_local_map): Abort if POSITION outside BEGV, ZV.
14
152006-05-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
16
17 * xterm.c (handle_one_xevent): Check that f is not NULL before
18 calling _XEditResCheckMessages.
19
202006-05-14 Kim F. Storm <storm@cua.dk>
21
22 * xterm.c (handle_one_xevent): Fix crash in 2006-03-24 change.
23
242006-05-13 Eli Zaretskii <eliz@gnu.org>
25
26 * frame.c (x_set_border_width): Fix error message to say "frame",
27 not "window".
28
29 * Makefile.in (SOME_MACHINE_LISP): Add fringe.elc.
30
312006-05-12 Chong Yidong <cyd@stupidchicken.com>
32
33 * intervals.c (set_point_both): Fix mixup before before and after
34 in variable names.
35
36 * editfns.c (Fline_beginning_position): Inhibit point-motion hooks
37 while setting point temporarily.
38
392006-05-11 Richard Stallman <rms@gnu.org>
40
41 * lread.c (readevalloop): Abort if START non-nil for non-buffer input.
42
432006-05-11 Kim F. Storm <storm@cua.dk>
44
45 * xdisp.c (redisplay_tool_bar): Handle large tool-bar-border values.
46
472006-05-11 Kenichi Handa <handa@m17n.org>
48
49 * fileio.c (Finsert_file_contents): Fix for the case of IO error
50 while handling replace operation.
51
12006-05-10 Kenichi Handa <handa@m17n.org> 522006-05-10 Kenichi Handa <handa@m17n.org>
2 53
3 * xfaces.c (realize_default_face) [HAVE_X_WINDOWS]: If the font 54 * xfaces.c (realize_default_face) [HAVE_X_WINDOWS]: If the font
diff --git a/src/Makefile.in b/src/Makefile.in
index 16a85dfe191..48debcab31d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -900,8 +900,8 @@ SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
900 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \ 900 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
901 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \ 901 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
902 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \ 902 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
903 ${dotdot}/lisp/dnd.elc ${dotdot}/lisp/mwheel.elc \ 903 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
904 ${dotdot}/lisp/tool-bar.elc \ 904 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
905 ${dotdot}/lisp/x-dnd.elc \ 905 ${dotdot}/lisp/x-dnd.elc \
906 ${dotdot}/lisp/international/ccl.elc \ 906 ${dotdot}/lisp/international/ccl.elc \
907 ${dotdot}/lisp/international/codepage.elc \ 907 ${dotdot}/lisp/international/codepage.elc \
diff --git a/src/editfns.c b/src/editfns.c
index 4f8b349b749..4578af6973c 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -821,6 +821,8 @@ This function does not move point. */)
821 Lisp_Object n; 821 Lisp_Object n;
822{ 822{
823 int orig, orig_byte, end; 823 int orig, orig_byte, end;
824 int count = SPECPDL_INDEX ();
825 specbind (Qinhibit_point_motion_hooks, Qt);
824 826
825 if (NILP (n)) 827 if (NILP (n))
826 XSETFASTINT (n, 1); 828 XSETFASTINT (n, 1);
@@ -834,6 +836,8 @@ This function does not move point. */)
834 836
835 SET_PT_BOTH (orig, orig_byte); 837 SET_PT_BOTH (orig, orig_byte);
836 838
839 unbind_to (count, Qnil);
840
837 /* Return END constrained to the current input field. */ 841 /* Return END constrained to the current input field. */
838 return Fconstrain_to_field (make_number (end), make_number (orig), 842 return Fconstrain_to_field (make_number (end), make_number (orig),
839 XINT (n) != 1 ? Qt : Qnil, 843 XINT (n) != 1 ? Qt : Qnil,
diff --git a/src/fileio.c b/src/fileio.c
index 066668d107f..84b32f8dda9 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4293,13 +4293,8 @@ actually used. */)
4293 if we couldn't read the file. */ 4293 if we couldn't read the file. */
4294 4294
4295 if (how_much < 0) 4295 if (how_much < 0)
4296 { 4296 error ("IO error reading %s: %s",
4297 if (how_much == -1) 4297 SDATA (orig_filename), emacs_strerror (errno));
4298 error ("IO error reading %s: %s",
4299 SDATA (orig_filename), emacs_strerror (errno));
4300 else if (how_much == -2)
4301 error ("maximum buffer size exceeded");
4302 }
4303 4298
4304 if (unprocessed > 0) 4299 if (unprocessed > 0)
4305 { 4300 {
diff --git a/src/frame.c b/src/frame.c
index 3efd04bf110..371441c7cca 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3142,7 +3142,7 @@ x_set_border_width (f, arg, oldval)
3142 3142
3143#ifndef MAC_OS 3143#ifndef MAC_OS
3144 if (FRAME_X_WINDOW (f) != 0) 3144 if (FRAME_X_WINDOW (f) != 0)
3145 error ("Cannot change the border width of a window"); 3145 error ("Cannot change the border width of a frame");
3146#endif /* MAC_TODO */ 3146#endif /* MAC_TODO */
3147 3147
3148 f->border_width = XINT (arg); 3148 f->border_width = XINT (arg);
diff --git a/src/intervals.c b/src/intervals.c
index 77971ace2a7..21e60c96d3f 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -2196,36 +2196,38 @@ set_point_both (buffer, charpos, bytepos)
2196 Lisp_Object leave_after, leave_before, enter_after, enter_before; 2196 Lisp_Object leave_after, leave_before, enter_after, enter_before;
2197 2197
2198 if (fromprev) 2198 if (fromprev)
2199 leave_after = textget (fromprev->plist, Qpoint_left); 2199 leave_before = textget (fromprev->plist, Qpoint_left);
2200 else 2200 else
2201 leave_after = Qnil; 2201 leave_before = Qnil;
2202
2202 if (from) 2203 if (from)
2203 leave_before = textget (from->plist, Qpoint_left); 2204 leave_after = textget (from->plist, Qpoint_left);
2204 else 2205 else
2205 leave_before = Qnil; 2206 leave_after = Qnil;
2206 2207
2207 if (toprev) 2208 if (toprev)
2208 enter_after = textget (toprev->plist, Qpoint_entered); 2209 enter_before = textget (toprev->plist, Qpoint_entered);
2209 else 2210 else
2210 enter_after = Qnil; 2211 enter_before = Qnil;
2212
2211 if (to) 2213 if (to)
2212 enter_before = textget (to->plist, Qpoint_entered); 2214 enter_after = textget (to->plist, Qpoint_entered);
2213 else 2215 else
2214 enter_before = Qnil; 2216 enter_after = Qnil;
2215 2217
2216 if (! EQ (leave_before, enter_before) && !NILP (leave_before)) 2218 if (! EQ (leave_before, enter_before) && !NILP (leave_before))
2217 call2 (leave_before, make_number (old_position), 2219 call2 (leave_before, make_number (old_position),
2218 make_number (charpos)); 2220 make_number (charpos));
2219 if (! EQ (leave_after, enter_after) && !NILP (leave_after)) 2221 if (! EQ (leave_after, enter_after) && !NILP (leave_after))
2220 call2 (leave_after, make_number (old_position), 2222 call2 (leave_after, make_number (old_position),
2221 make_number (charpos)); 2223 make_number (charpos));
2222 2224
2223 if (! EQ (enter_before, leave_before) && !NILP (enter_before)) 2225 if (! EQ (enter_before, leave_before) && !NILP (enter_before))
2224 call2 (enter_before, make_number (old_position), 2226 call2 (enter_before, make_number (old_position),
2225 make_number (charpos)); 2227 make_number (charpos));
2226 if (! EQ (enter_after, leave_after) && !NILP (enter_after)) 2228 if (! EQ (enter_after, leave_after) && !NILP (enter_after))
2227 call2 (enter_after, make_number (old_position), 2229 call2 (enter_after, make_number (old_position),
2228 make_number (charpos)); 2230 make_number (charpos));
2229 } 2231 }
2230} 2232}
2231 2233
@@ -2339,7 +2341,9 @@ get_property_and_range (pos, prop, val, start, end, object)
2339/* Return the proper local keymap TYPE for position POSITION in 2341/* Return the proper local keymap TYPE for position POSITION in
2340 BUFFER; TYPE should be one of `keymap' or `local-map'. Use the map 2342 BUFFER; TYPE should be one of `keymap' or `local-map'. Use the map
2341 specified by the PROP property, if any. Otherwise, if TYPE is 2343 specified by the PROP property, if any. Otherwise, if TYPE is
2342 `local-map' use BUFFER's local map. */ 2344 `local-map' use BUFFER's local map.
2345
2346 POSITION must be in the accessible part of BUFFER. */
2343 2347
2344Lisp_Object 2348Lisp_Object
2345get_local_map (position, buffer, type) 2349get_local_map (position, buffer, type)
@@ -2351,7 +2355,7 @@ get_local_map (position, buffer, type)
2351 int old_begv, old_zv, old_begv_byte, old_zv_byte; 2355 int old_begv, old_zv, old_begv_byte, old_zv_byte;
2352 2356
2353 /* Perhaps we should just change `position' to the limit. */ 2357 /* Perhaps we should just change `position' to the limit. */
2354 if (position > BUF_Z (buffer) || position < BUF_BEG (buffer)) 2358 if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer))
2355 abort (); 2359 abort ();
2356 2360
2357 /* Ignore narrowing, so that a local map continues to be valid even if 2361 /* Ignore narrowing, so that a local map continues to be valid even if
diff --git a/src/lread.c b/src/lread.c
index e2f9d81d059..b6161ebedaa 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1534,7 +1534,9 @@ end_of_file_error ()
1534/* UNIBYTE specifies how to set load_convert_to_unibyte 1534/* UNIBYTE specifies how to set load_convert_to_unibyte
1535 for this invocation. 1535 for this invocation.
1536 READFUN, if non-nil, is used instead of `read'. 1536 READFUN, if non-nil, is used instead of `read'.
1537 START, END is region in current buffer (from eval-region). */ 1537
1538 START, END specify region to read in current buffer (from eval-region).
1539 If the input is not from a buffer, they must be nil. */
1538 1540
1539static void 1541static void
1540readevalloop (readcharfun, stream, sourcename, evalfun, 1542readevalloop (readcharfun, stream, sourcename, evalfun,
@@ -1570,6 +1572,10 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
1570 else if (MARKERP (readcharfun)) 1572 else if (MARKERP (readcharfun))
1571 b = XMARKER (readcharfun)->buffer; 1573 b = XMARKER (readcharfun)->buffer;
1572 1574
1575 /* We assume START is nil when input is not from a buffer. */
1576 if (! NILP (start) && !b)
1577 abort ();
1578
1573 specbind (Qstandard_input, readcharfun); /* GCPROs readcharfun. */ 1579 specbind (Qstandard_input, readcharfun); /* GCPROs readcharfun. */
1574 specbind (Qcurrent_load_list, Qnil); 1580 specbind (Qcurrent_load_list, Qnil);
1575 record_unwind_protect (readevalloop_1, load_convert_to_unibyte ? Qt : Qnil); 1581 record_unwind_protect (readevalloop_1, load_convert_to_unibyte ? Qt : Qnil);
diff --git a/src/textprop.c b/src/textprop.c
index e2f9c531735..87fa6742919 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -717,10 +717,11 @@ DEFUN ("next-char-property-change", Fnext_char_property_change,
717This scans characters forward in the current buffer from POSITION till 717This scans characters forward in the current buffer from POSITION till
718it finds a change in some text property, or the beginning or end of an 718it finds a change in some text property, or the beginning or end of an
719overlay, and returns the position of that. 719overlay, and returns the position of that.
720If none is found, the function returns (point-max). 720If none is found up to (point-max), the function returns (point-max).
721 721
722If the optional second argument LIMIT is non-nil, don't search 722If the optional second argument LIMIT is non-nil, don't search
723past position LIMIT; return LIMIT if nothing is found before LIMIT. */) 723past position LIMIT; return LIMIT if nothing is found before LIMIT.
724LIMIT is a no-op if it is greater than (point-max). */)
724 (position, limit) 725 (position, limit)
725 Lisp_Object position, limit; 726 Lisp_Object position, limit;
726{ 727{
@@ -742,10 +743,11 @@ DEFUN ("previous-char-property-change", Fprevious_char_property_change,
742Scans characters backward in the current buffer from POSITION till it 743Scans characters backward in the current buffer from POSITION till it
743finds a change in some text property, or the beginning or end of an 744finds a change in some text property, or the beginning or end of an
744overlay, and returns the position of that. 745overlay, and returns the position of that.
745If none is found, the function returns (point-max). 746If none is found since (point-min), the function returns (point-min).
746 747
747If the optional second argument LIMIT is non-nil, don't search 748If the optional second argument LIMIT is non-nil, don't search
748past position LIMIT; return LIMIT if nothing is found before LIMIT. */) 749past position LIMIT; return LIMIT if nothing is found before LIMIT.
750LIMIT is a no-op if it is less than (point-min). */)
749 (position, limit) 751 (position, limit)
750 Lisp_Object position, limit; 752 Lisp_Object position, limit;
751{ 753{
@@ -771,6 +773,9 @@ If the optional third argument OBJECT is a buffer (or nil, which means
771the current buffer), POSITION is a buffer position (integer or marker). 773the current buffer), POSITION is a buffer position (integer or marker).
772If OBJECT is a string, POSITION is a 0-based index into it. 774If OBJECT is a string, POSITION is a 0-based index into it.
773 775
776In a string, scan runs to the end of the string.
777In a buffer, it runs to (point-max), and the value cannot exceed that.
778
774The property values are compared with `eq'. 779The property values are compared with `eq'.
775If the property is constant all the way to the end of OBJECT, return the 780If the property is constant all the way to the end of OBJECT, return the
776last valid position in OBJECT. 781last valid position in OBJECT.
@@ -812,22 +817,30 @@ past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
812 initial_value = Fget_char_property (position, prop, object); 817 initial_value = Fget_char_property (position, prop, object);
813 818
814 if (NILP (limit)) 819 if (NILP (limit))
815 XSETFASTINT (limit, BUF_ZV (current_buffer)); 820 XSETFASTINT (limit, ZV);
816 else 821 else
817 CHECK_NUMBER_COERCE_MARKER (limit); 822 CHECK_NUMBER_COERCE_MARKER (limit);
818 823
819 for (;;) 824 if (XFASTINT (position) >= XFASTINT (limit))
820 { 825 {
821 position = Fnext_char_property_change (position, limit); 826 position = limit;
822 if (XFASTINT (position) >= XFASTINT (limit)) { 827 if (XFASTINT (position) > ZV)
823 position = limit; 828 XSETFASTINT (position, ZV);
824 break;
825 }
826
827 value = Fget_char_property (position, prop, object);
828 if (!EQ (value, initial_value))
829 break;
830 } 829 }
830 else
831 while (1)
832 {
833 position = Fnext_char_property_change (position, limit);
834 if (XFASTINT (position) >= XFASTINT (limit))
835 {
836 position = limit;
837 break;
838 }
839
840 value = Fget_char_property (position, prop, object);
841 if (!EQ (value, initial_value))
842 break;
843 }
831 844
832 unbind_to (count, Qnil); 845 unbind_to (count, Qnil);
833 } 846 }
@@ -845,6 +858,9 @@ If the optional third argument OBJECT is a buffer (or nil, which means
845the current buffer), POSITION is a buffer position (integer or marker). 858the current buffer), POSITION is a buffer position (integer or marker).
846If OBJECT is a string, POSITION is a 0-based index into it. 859If OBJECT is a string, POSITION is a 0-based index into it.
847 860
861In a string, scan runs to the start of the string.
862In a buffer, it runs to (point-min), and the value cannot be less than that.
863
848The property values are compared with `eq'. 864The property values are compared with `eq'.
849If the property is constant all the way to the start of OBJECT, return the 865If the property is constant all the way to the start of OBJECT, return the
850first valid position in OBJECT. 866first valid position in OBJECT.
@@ -883,19 +899,23 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
883 CHECK_NUMBER_COERCE_MARKER (position); 899 CHECK_NUMBER_COERCE_MARKER (position);
884 900
885 if (NILP (limit)) 901 if (NILP (limit))
886 XSETFASTINT (limit, BUF_BEGV (current_buffer)); 902 XSETFASTINT (limit, BEGV);
887 else 903 else
888 CHECK_NUMBER_COERCE_MARKER (limit); 904 CHECK_NUMBER_COERCE_MARKER (limit);
889 905
890 if (XFASTINT (position) <= XFASTINT (limit)) 906 if (XFASTINT (position) <= XFASTINT (limit))
891 position = limit; 907 {
908 position = limit;
909 if (XFASTINT (position) < BEGV)
910 XSETFASTINT (position, BEGV);
911 }
892 else 912 else
893 { 913 {
894 Lisp_Object initial_value = 914 Lisp_Object initial_value
895 Fget_char_property (make_number (XFASTINT (position) - 1), 915 = Fget_char_property (make_number (XFASTINT (position) - 1),
896 prop, object); 916 prop, object);
897 917
898 for (;;) 918 while (1)
899 { 919 {
900 position = Fprevious_char_property_change (position, limit); 920 position = Fprevious_char_property_change (position, limit);
901 921
@@ -906,9 +926,9 @@ back past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
906 } 926 }
907 else 927 else
908 { 928 {
909 Lisp_Object value = 929 Lisp_Object value
910 Fget_char_property (make_number (XFASTINT (position) - 1), 930 = Fget_char_property (make_number (XFASTINT (position) - 1),
911 prop, object); 931 prop, object);
912 932
913 if (!EQ (value, initial_value)) 933 if (!EQ (value, initial_value))
914 break; 934 break;
diff --git a/src/xdisp.c b/src/xdisp.c
index b1404d9c593..0ee3b19d638 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9829,7 +9829,7 @@ redisplay_tool_bar (f)
9829 border = 0; 9829 border = 0;
9830 9830
9831 rows = f->n_tool_bar_rows; 9831 rows = f->n_tool_bar_rows;
9832 height = (it.last_visible_y - border) / rows; 9832 height = max (1, (it.last_visible_y - border) / rows);
9833 extra = it.last_visible_y - border - height * rows; 9833 extra = it.last_visible_y - border - height * rows;
9834 9834
9835 while (it.current_y < it.last_visible_y) 9835 while (it.current_y < it.last_visible_y)
diff --git a/src/xterm.c b/src/xterm.c
index b1f9e76080f..d58839db09f 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5885,8 +5885,9 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
5885 == dpyinfo->Xatom_editres) 5885 == dpyinfo->Xatom_editres)
5886 { 5886 {
5887 f = x_any_window_to_frame (dpyinfo, event.xclient.window); 5887 f = x_any_window_to_frame (dpyinfo, event.xclient.window);
5888 _XEditResCheckMessages (f->output_data.x->widget, NULL, 5888 if (f)
5889 &event, NULL); 5889 _XEditResCheckMessages (f->output_data.x->widget, NULL,
5890 &event, NULL);
5890 goto done; 5891 goto done;
5891 } 5892 }
5892#endif /* HACK_EDITRES */ 5893#endif /* HACK_EDITRES */
@@ -5902,6 +5903,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
5902 images, only, which should have 1 page. */ 5903 images, only, which should have 1 page. */
5903 Pixmap pixmap = (Pixmap) event.xclient.data.l[1]; 5904 Pixmap pixmap = (Pixmap) event.xclient.data.l[1];
5904 f = x_window_to_frame (dpyinfo, event.xclient.window); 5905 f = x_window_to_frame (dpyinfo, event.xclient.window);
5906 if (!f)
5907 goto OTHER;
5905 x_kill_gs_process (pixmap, f); 5908 x_kill_gs_process (pixmap, f);
5906 expose_frame (f, 0, 0, 0, 0); 5909 expose_frame (f, 0, 0, 0, 0);
5907 goto done; 5910 goto done;
@@ -5920,10 +5923,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
5920#endif /* USE_TOOLKIT_SCROLL_BARS */ 5923#endif /* USE_TOOLKIT_SCROLL_BARS */
5921 5924
5922 f = x_any_window_to_frame (dpyinfo, event.xclient.window); 5925 f = x_any_window_to_frame (dpyinfo, event.xclient.window);
5923
5924 if (!f) 5926 if (!f)
5925 goto OTHER; 5927 goto OTHER;
5926
5927 if (x_handle_dnd_message (f, &event.xclient, dpyinfo, &inev.ie)) 5928 if (x_handle_dnd_message (f, &event.xclient, dpyinfo, &inev.ie))
5928 *finish = X_EVENT_DROP; 5929 *finish = X_EVENT_DROP;
5929 } 5930 }
@@ -6166,7 +6167,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6166 f = x_any_window_to_frame (dpyinfo, event.xkey.window); 6167 f = x_any_window_to_frame (dpyinfo, event.xkey.window);
6167 6168
6168 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight) 6169 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
6169 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window)) 6170 && (f == 0
6171 || !EQ (f->tool_bar_window, dpyinfo->mouse_face_window)))
6170 { 6172 {
6171 clear_mouse_face (dpyinfo); 6173 clear_mouse_face (dpyinfo);
6172 dpyinfo->mouse_face_hidden = 1; 6174 dpyinfo->mouse_face_hidden = 1;