From 9c025210aa01989109e8ac2e8ed95c35a432387e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 25 Apr 2012 18:45:15 -0600 Subject: [PATCH] racket/gui win32: font fallback for labels When the requested font isn't available, fall back to the default font at the requested size and style --- collects/mred/private/wx/win32/font.rkt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/collects/mred/private/wx/win32/font.rkt b/collects/mred/private/wx/win32/font.rkt index 45e6ff7cdf..f3c9305652 100644 --- a/collects/mred/private/wx/win32/font.rkt +++ b/collects/mred/private/wx/win32/font.rkt @@ -1,5 +1,6 @@ #lang racket/base (require racket/class + racket/draw racket/draw/private/local racket/draw/unsafe/pango) @@ -15,9 +16,19 @@ (define font-cache (pango_win32_font_cache_new)) (define (font->hfont f) - (let* ([pfont (pango_font_map_load_font display-font-map - display-context - (send f get-pango))] + (let* ([pfont (or (pango_font_map_load_font display-font-map + display-context + (send f get-pango)) + ;; font load failed, so fall back to default + ;; font with the same size and style: + (pango_font_map_load_font display-font-map + display-context + (send (make-font + #:size (send f get-point-size) + #:style (send f get-style) + #:weight (send f get-weight) + #:size-in-pixels? (send f get-size-in-pixels)) + get-pango)))] [logfont (and pfont (pango_win32_font_logfont pfont))]) (and logfont