From 38a44a97ee30214c450615f07588d5c2b733b5d5 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 27 Nov 2009 12:18:00 +0100 Subject: Fix QFontDialog::getFont on Mac OS X when using an invalid initial font If you passed in a QFont with a family name that did not resolve to QFontDialog::getFont(), it would not select any font in the panel, and it would always return the default font, regardless of what you actually selected in the dialog. This was because it would try to resolve the requested family name, rather than the actual family name of the initial font. That in turn caused the NSFont* returned by the system to be null, which, when set on the font manager, caused the manager to always return 0 for selectedFont. Task-number: QTBUG-6071 Reviewed-by: Trond --- src/gui/dialogs/qfontdialog_mac.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm index 5b0983b..0c467cd 100644 --- a/src/gui/dialogs/qfontdialog_mac.mm +++ b/src/gui/dialogs/qfontdialog_mac.mm @@ -625,10 +625,11 @@ void QFontDialogPrivate::setFont(void *delegate, const QFont &font) } NSFontManager *mgr = [NSFontManager sharedFontManager]; - nsFont = [mgr fontWithFamily:qt_mac_QStringToNSString(font.family()) + QFontInfo fontInfo(font); + nsFont = [mgr fontWithFamily:qt_mac_QStringToNSString(fontInfo.family()) traits:mask weight:weight - size:QFontInfo(font).pointSize()]; + size:fontInfo.pointSize()]; } [mgr setSelectedFont:nsFont isMultiple:NO]; -- cgit v0.12