From 5eb2d70fa786defcfd712bcf9d596af01288a08f Mon Sep 17 00:00:00 2001 From: Vlad Slepukhin Date: Sat, 8 Dec 2012 08:07:32 +0100 Subject: [PATCH] Preserve font size on changing font family of selection. This task was completed during GCI 2012 Fixes #6453 Signed-off-by: Siarzhuk Zharski --- src/apps/stylededit/StyledEditWindow.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index 3ba782cd57f..7b8ddd7fdfc 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -1599,7 +1599,20 @@ StyledEditWindow::_SetFontStyle(const char* fontFamily, const char* fontStyle) font.SetFace(face); - fTextView->SetFontAndColor(&font); + int32 start = 0, finish = 0; + fTextView->GetSelection(&start, &finish); + + if (start != finish) { + text_run_array* runArray = fTextView->RunArray(start, finish);; + + for (int i = 0; i < runArray->count; i++) { + runArray->runs[i].font.SetFamilyAndStyle(fontFamily, fontStyle); + runArray->runs[i].font.SetFace(face); + } + + fTextView->SetRunArray(start, finish, runArray); + } else + fTextView->SetFontAndColor(&font); BMenuItem* superItem; superItem = fFontMenu->FindItem(fontFamily);