summaryrefslogtreecommitdiff
path: root/src/w32uniscribe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/w32uniscribe.c')
-rw-r--r--src/w32uniscribe.c6
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;
}