Huw Davies : riched20: Use row and para ptrs in the ensure visible function.

Alexandre Julliard julliard at winehq.org
Tue Oct 27 16:43:49 CDT 2020


Module: wine
Branch: master
Commit: 1abbb78a0949f238cca4b8e09aa0c7ee085d1389
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1abbb78a0949f238cca4b8e09aa0c7ee085d1389

Author: Huw Davies <huw at codeweavers.com>
Date:   Tue Oct 27 08:23:29 2020 +0000

riched20: Use row and para ptrs in the ensure visible function.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/riched20/caret.c  | 10 ++++------
 dlls/riched20/editor.c |  2 +-
 dlls/riched20/editor.h |  2 +-
 dlls/riched20/paint.c  | 25 ++++++++++++-------------
 4 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 6a8f1e1cd71..47fe77df922 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -1176,13 +1176,11 @@ void ME_MouseMove(ME_TextEditor *editor, int x, int y)
 
   if (editor->nSelectionType != stPosition &&
       memcmp(&editor->pCursors[1], &editor->pCursors[3], sizeof(ME_Cursor)))
-  {
       /* The scroll the cursor towards the other end, since it was the one
        * extended by ME_ExtendAnchorSelection */
-      ME_EnsureVisible(editor, &editor->pCursors[1]);
-  } else {
-      ME_EnsureVisible(editor, &editor->pCursors[0]);
-  }
+      editor_ensure_visible( editor, &editor->pCursors[1] );
+  else
+      editor_ensure_visible( editor, &editor->pCursors[0] );
 
   ME_InvalidateSelection(editor);
   update_caret(editor);
@@ -1520,7 +1518,7 @@ ME_ArrowKey(ME_TextEditor *editor, int nVKey, BOOL extend, BOOL ctrl)
   ME_InvalidateSelection(editor);
   ME_Repaint(editor);
   hide_caret(editor);
-  ME_EnsureVisible(editor, &tmp_curs);
+  editor_ensure_visible( editor, &tmp_curs );
   update_caret(editor);
   ME_SendSelChange(editor);
   return success;
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 6a2e96a3c7c..462245db233 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -4095,7 +4095,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
     return len;
   }
   case EM_SCROLLCARET:
-    ME_EnsureVisible(editor, &editor->pCursors[0]);
+    editor_ensure_visible( editor, &editor->pCursors[0] );
     return 0;
   case WM_SETFONT:
   {
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h
index ba1e5c169ff..1a2346854e7 100644
--- a/dlls/riched20/editor.h
+++ b/dlls/riched20/editor.h
@@ -242,7 +242,7 @@ void ME_PaintContent(ME_TextEditor *editor, HDC hDC, const RECT *rcUpdate) DECLS
 void ME_Repaint(ME_TextEditor *editor) DECLSPEC_HIDDEN;
 void ME_RewrapRepaint(ME_TextEditor *editor) DECLSPEC_HIDDEN;
 void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now) DECLSPEC_HIDDEN;
-void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor) DECLSPEC_HIDDEN;
+void editor_ensure_visible( ME_TextEditor *editor, ME_Cursor *cursor ) DECLSPEC_HIDDEN;
 void ME_InvalidateSelection(ME_TextEditor *editor) DECLSPEC_HIDDEN;
 BOOL ME_SetZoom(ME_TextEditor *editor, int numerator, int denominator) DECLSPEC_HIDDEN;
 int  ME_twips2pointsX(const ME_Context *c, int x) DECLSPEC_HIDDEN;
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index 0c37fc7c707..180307ae01b 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -117,7 +117,7 @@ void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now)
     ME_UpdateScrollBar(editor);
 
   /* Ensure that the cursor is visible */
-  ME_EnsureVisible(editor, &editor->pCursors[0]);
+  editor_ensure_visible( editor, &editor->pCursors[0] );
 
   ITextHost_TxViewChange(editor->texthost, update_now);
 
@@ -1269,19 +1269,17 @@ void ME_UpdateScrollBar(ME_TextEditor *editor)
   }
 }
 
-void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor)
+void editor_ensure_visible( ME_TextEditor *editor, ME_Cursor *cursor )
 {
-  ME_Run *pRun = &pCursor->pRun->member.run;
-  ME_DisplayItem *pRow = ME_FindItemBack(pCursor->pRun, diStartRow);
-  ME_DisplayItem *pPara = pCursor->pPara;
+  ME_Run *run = &cursor->pRun->member.run;
+  ME_Row *row = row_from_cursor( cursor );
+  ME_Paragraph *para = &cursor->pPara->member.para;
   int x, y, yheight;
 
-  assert(pRow);
-  assert(pPara);
 
   if (editor->styleFlags & ES_AUTOHSCROLL)
   {
-    x = pRun->pt.x + ME_PointFromChar(editor, pRun, pCursor->nOffset, TRUE);
+    x = run->pt.x + ME_PointFromChar( editor, run, cursor->nOffset, TRUE );
     if (x > editor->horz_si.nPos + editor->sizeWindow.cx)
       x = x + 1 - editor->sizeWindow.cx;
     else if (x > editor->horz_si.nPos)
@@ -1292,14 +1290,15 @@ void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor)
       ME_HScrollAbs(editor, x);
       return;
     }
-  } else {
-    if (~editor->styleFlags & ES_AUTOVSCROLL)
-      return;
+  }
+  else
+  {
+    if (~editor->styleFlags & ES_AUTOVSCROLL) return;
     x = editor->horz_si.nPos;
   }
 
-  y = pPara->member.para.pt.y + pRow->member.row.pt.y;
-  yheight = pRow->member.row.nHeight;
+  y = para->pt.y + row->pt.y;
+  yheight = row->nHeight;
 
   if (y < editor->vert_si.nPos)
     ME_ScrollAbs(editor, x, y);




More information about the wine-cvs mailing list