[PATCH 20/24] [RichEdit]: move init code after some sanity checks to avoid unneeded computations

Eric Pouech eric.pouech at orange.fr
Tue Jan 1 15:05:22 CST 2008




A+
---

 dlls/riched20/paint.c |    3 ++-
 dlls/riched20/run.c   |    3 ++-
 dlls/riched20/wrap.c  |    3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index 3d43496..f9fb4ec 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -267,7 +267,7 @@ static void ME_DrawGraphics(ME_Context *c, int x, int y, ME_Run *run,
 static void ME_DrawRun(ME_Context *c, int x, int y, ME_DisplayItem *rundi, ME_Paragraph *para) 
 {
   ME_Run *run = &rundi->member.run;
-  ME_DisplayItem *start = ME_FindItemBack(rundi, diStartRow);
+  ME_DisplayItem *start;
   int runofs = run->nCharOfs+para->nCharOfs;
   int nSelFrom, nSelTo;
   const WCHAR wszSpace[] = {' ', 0};
@@ -275,6 +275,7 @@ static void ME_DrawRun(ME_Context *c, int x, int y, ME_DisplayItem *rundi, ME_Pa
   if (run->nFlags & MERF_HIDDEN)
     return;
 
+  start = ME_FindItemBack(rundi, diStartRow);
   ME_GetSelection(c->editor, &nSelFrom, &nSelTo);
 
   /* Draw selected end-of-paragraph mark */
diff --git a/dlls/riched20/run.c b/dlls/riched20/run.c
index 71354fe..759ea29 100644
--- a/dlls/riched20/run.c
+++ b/dlls/riched20/run.c
@@ -606,7 +606,7 @@ int ME_CharFromPointCursor(ME_TextEditor *editor, int cx, ME_Run *run)
 int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset)
 {
   SIZE size;
-  HDC hDC = GetDC(editor->hWnd);
+  HDC hDC;
   HGDIOBJ hOldFont;
   ME_String *strRunText;
   /* This could point to either the run's real text, or it's masked form in a password control */
@@ -623,6 +623,7 @@ int ME_PointFromChar(ME_TextEditor *editor, ME_Run *pRun, int nOffset)
   else
     strRunText = pRun->strText;
   
+  hDC = GetDC(editor->hWnd);
   hOldFont = ME_SelectStyleFont(editor, hDC, pRun->style);
   GetTextExtentPoint32W(hDC, strRunText->szData, nOffset, &size);
   ME_UnselectStyleFont(editor, hDC, pRun->style, hOldFont);
diff --git a/dlls/riched20/wrap.c b/dlls/riched20/wrap.c
index e72983e..f49c7ab 100644
--- a/dlls/riched20/wrap.c
+++ b/dlls/riched20/wrap.c
@@ -341,7 +341,7 @@ static void ME_PrepareParagraphForWrapping(ME_Context *c, ME_DisplayItem *tp);
 static void ME_WrapTextParagraph(ME_Context *c, ME_DisplayItem *tp, DWORD beginofs) {
   ME_DisplayItem *p;
   ME_WrapContext wc;
-  int dpi = GetDeviceCaps(c->hDC, LOGPIXELSX);
+  int dpi;
   int border = 0;
   int linespace = 0;
 
@@ -351,6 +351,7 @@ static void ME_WrapTextParagraph(ME_Context *c, ME_DisplayItem *tp, DWORD begino
   }
   ME_PrepareParagraphForWrapping(c, tp);
 
+  dpi = GetDeviceCaps(c->hDC, LOGPIXELSX);
   wc.context = c;
 /*   wc.para_style = tp->member.para.style; */
   wc.style = NULL;





More information about the wine-patches mailing list