[haiku-commits] haiku: hrev44979 - src/apps/stylededit

  • From: zharik@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 8 Dec 2012 08:37:51 +0100 (CET)

hrev44979 adds 1 changeset to branch 'master'
old head: 5cbd6771cd858abe057744728d69e03a983b1255
new head: 5eb2d70fa786defcfd712bcf9d596af01288a08f
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=5eb2d70+%5E5cbd677

----------------------------------------------------------------------------

5eb2d70: Preserve font size on changing font family of selection.
  
  This task was completed during GCI 2012
  Fixes #6453
  
  Signed-off-by: Siarzhuk Zharski <zharik@xxxxxx>

                                      [ Vlad Slepukhin <slp.vld@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44979
Commit:      5eb2d70fa786defcfd712bcf9d596af01288a08f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5eb2d70
Author:      Vlad Slepukhin <slp.vld@xxxxxxxxx>
Date:        Sat Dec  8 07:07:32 2012 UTC
Committer:   Siarzhuk Zharski <zharik@xxxxxx>
Commit-Date: Sat Dec  8 07:20:42 2012 UTC

Ticket:      https://dev.haiku-os.org/ticket/6453

----------------------------------------------------------------------------

1 file changed, 14 insertions(+), 1 deletion(-)
src/apps/stylededit/StyledEditWindow.cpp | 15 ++++++++++++++-

----------------------------------------------------------------------------

diff --git a/src/apps/stylededit/StyledEditWindow.cpp 
b/src/apps/stylededit/StyledEditWindow.cpp
index 3ba782c..7b8ddd7 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);


Other related posts: