From 58e24e18a27fee2b6b487f5163c2eda48e347546 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 23 Sep 2014 13:03:07 -0600 Subject: [PATCH] racket/gui win32: fix measurement of `message%` content Strip away "&" before measuring. --- pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/message.rkt | 2 +- pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/utils.rkt | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/message.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/message.rkt index b887dfafbf..0ed6e15cb6 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/message.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/message.rkt @@ -88,7 +88,7 @@ (if (symbol? label) (set-size #f #f 32 32) - (auto-size font label 0 0 0 0)) + (auto-size font (strip-& label) 0 0 0 0)) (define/public (set-preferred-size) #f) diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/utils.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/utils.rkt index 5443f79dc7..ac7efc08a9 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/utils.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/utils.rkt @@ -47,6 +47,7 @@ SelectObject WideCharToMultiByte GetDeviceCaps + strip-& ->screen ->normal)) @@ -163,6 +164,13 @@ -> _int)) ;; ---------------------------------------- +(define (strip-& s) + (if (string? s) + (regexp-replace* #rx"&(.)" s "\\1") + s)) + +;; ---------------------------------------- + (define-gdi32 GetDeviceCaps (_wfun _HDC _int -> _int)) (define screen-dpi