mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-31 17:30:54 -08:00
(free_realized_faces): Block/unblock input.
(free_realized_multibyte_face): Ditto.
This commit is contained in:
parent
869a3a147f
commit
84ec3b4b5c
2 changed files with 25 additions and 1 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2000-05-29 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* xfaces.c (free_realized_faces): Block/unblock input.
|
||||
(free_realized_multibyte_face): Ditto.
|
||||
|
||||
2000-05-29 Dave Love <fx@gnu.org>
|
||||
|
||||
* textprop.c (Qkeymap): New variable.
|
||||
|
|
@ -20,7 +25,7 @@
|
|||
(get_local_map): Extra arg using it.
|
||||
(Qkeymap): Declare.
|
||||
|
||||
* lisp.h: (get_local_map: Don't declare here.
|
||||
* lisp.h (get_local_map): Don't declare here.
|
||||
|
||||
2000-05-29 Kenichi Handa <handa@etl.go.jp>
|
||||
|
||||
|
|
|
|||
19
src/xfaces.c
19
src/xfaces.c
|
|
@ -4663,6 +4663,11 @@ free_realized_faces (c)
|
|||
int i, size;
|
||||
struct frame *f = c->f;
|
||||
|
||||
/* We must block input here because we can't process X events
|
||||
safely while only some faces are freed, or when the frame's
|
||||
current matrix still references freed faces. */
|
||||
BLOCK_INPUT;
|
||||
|
||||
for (i = 0; i < c->used; ++i)
|
||||
{
|
||||
free_realized_face (f, c->faces_by_id[i]);
|
||||
|
|
@ -4682,6 +4687,8 @@ free_realized_faces (c)
|
|||
clear_current_matrices (f);
|
||||
++windows_or_buffers_changed;
|
||||
}
|
||||
|
||||
UNBLOCK_INPUT;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4698,6 +4705,11 @@ free_realized_multibyte_face (f, fontset)
|
|||
struct face *face;
|
||||
int i;
|
||||
|
||||
/* We must block input here because we can't process X events safely
|
||||
while only some faces are freed, or when the frame's current
|
||||
matrix still references freed faces. */
|
||||
BLOCK_INPUT;
|
||||
|
||||
for (i = 0; i < cache->used; i++)
|
||||
{
|
||||
face = cache->faces_by_id[i];
|
||||
|
|
@ -4709,11 +4721,18 @@ free_realized_multibyte_face (f, fontset)
|
|||
free_realized_face (f, face);
|
||||
}
|
||||
}
|
||||
|
||||
/* Must do a thorough redisplay the next time. Mark current
|
||||
matrices as invalid because they will reference faces freed
|
||||
above. This function is also called when a frame is destroyed.
|
||||
In this case, the root window of F is nil. */
|
||||
if (WINDOWP (f->root_window))
|
||||
{
|
||||
clear_current_matrices (f);
|
||||
++windows_or_buffers_changed;
|
||||
}
|
||||
|
||||
UNBLOCK_INPUT;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue