diff options
Diffstat (limited to 'src/w32uniscribe.c')
-rw-r--r-- | src/w32uniscribe.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c index c214784fc83..72b524f2eab 100644 --- a/src/w32uniscribe.c +++ b/src/w32uniscribe.c @@ -178,6 +178,11 @@ uniscribe_otf_capability (struct font *font) Lisp_Object features; f = XFRAME (selected_frame); + /* Prevent quitting while we cons the lists in otf_features. + That's because get_frame_dc acquires the critical section, so we + cannot quit before we release it in release_frame_dc. */ + Lisp_Object prev_quit = Vinhibit_quit; + Vinhibit_quit = Qt; context = get_frame_dc (f); old_font = SelectObject (context, FONT_HANDLE (font)); @@ -188,6 +193,7 @@ uniscribe_otf_capability (struct font *font) SelectObject (context, old_font); release_frame_dc (f, context); + Vinhibit_quit = prev_quit; return capability; } |