Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/include/fpdfapi/fpdf_pageobj.h" | 7 #include "core/include/fpdfapi/fpdf_pageobj.h" |
| 8 #include "core/include/fpdfapi/fpdf_render.h" | 8 #include "core/include/fpdfapi/fpdf_render.h" |
| 9 #include "fpdfsdk/include/fx_systemhandler.h" | 9 #include "fpdfsdk/include/fx_systemhandler.h" |
| 10 #include "fpdfsdk/include/fxedit/fx_edit.h" | 10 #include "fpdfsdk/include/fxedit/fx_edit.h" |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 93 IFX_Edit* pEdit, | 93 IFX_Edit* pEdit, |
| 94 FX_COLORREF color, | 94 FX_COLORREF color, |
| 95 const CFX_FloatRect& rcClip, | 95 const CFX_FloatRect& rcClip, |
| 96 const CFX_FloatPoint& ptOffset, | 96 const CFX_FloatPoint& ptOffset, |
| 97 const CPVT_WordRange* pRange) { | 97 const CPVT_WordRange* pRange) { |
| 98 pDevice->SaveState(); | 98 pDevice->SaveState(); |
| 99 | 99 |
| 100 if (!rcClip.IsEmpty()) { | 100 if (!rcClip.IsEmpty()) { |
| 101 CFX_FloatRect rcTemp = rcClip; | 101 CFX_FloatRect rcTemp = rcClip; |
| 102 pUser2Device->TransformRect(rcTemp); | 102 pUser2Device->TransformRect(rcTemp); |
| 103 FX_RECT rcDevClip; | 103 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.top, |
| 104 rcDevClip.left = (int32_t)rcTemp.left; | 104 (int32_t)rcTemp.right, |
| 105 rcDevClip.right = (int32_t)rcTemp.right; | 105 (int32_t)rcTemp.bottom)); |
| 106 rcDevClip.top = (int32_t)rcTemp.top; | |
| 107 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
| 108 pDevice->SetClip_Rect(&rcDevClip); | |
| 109 } | 106 } |
| 110 | 107 |
| 111 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 108 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
| 112 if (pEdit->GetFontMap()) { | 109 if (pEdit->GetFontMap()) { |
| 113 if (pRange) | 110 if (pRange) |
| 114 pIterator->SetAt(pRange->BeginPos); | 111 pIterator->SetAt(pRange->BeginPos); |
| 115 else | 112 else |
| 116 pIterator->SetAt(0); | 113 pIterator->SetAt(0); |
| 117 | 114 |
| 118 while (pIterator->NextWord()) { | 115 while (pIterator->NextWord()) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 167 | 164 |
| 168 CFX_ByteTextBuf sTextBuf; | 165 CFX_ByteTextBuf sTextBuf; |
| 169 int32_t nFontIndex = -1; | 166 int32_t nFontIndex = -1; |
| 170 CFX_FloatPoint ptBT(0.0f, 0.0f); | 167 CFX_FloatPoint ptBT(0.0f, 0.0f); |
| 171 | 168 |
| 172 pDevice->SaveState(); | 169 pDevice->SaveState(); |
| 173 | 170 |
| 174 if (!rcClip.IsEmpty()) { | 171 if (!rcClip.IsEmpty()) { |
| 175 CFX_FloatRect rcTemp = rcClip; | 172 CFX_FloatRect rcTemp = rcClip; |
| 176 pUser2Device->TransformRect(rcTemp); | 173 pUser2Device->TransformRect(rcTemp); |
| 177 FX_RECT rcDevClip; | 174 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.top, |
| 178 rcDevClip.left = (int32_t)rcTemp.left; | 175 (int32_t)rcTemp.right, |
| 179 rcDevClip.right = (int32_t)rcTemp.right; | 176 (int32_t)rcTemp.bottom)); |
| 180 rcDevClip.top = (int32_t)rcTemp.top; | |
| 181 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
| 182 pDevice->SetClip_Rect(&rcDevClip); | |
| 183 } | 177 } |
| 184 | 178 |
| 185 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 179 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
| 186 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { | 180 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { |
| 187 if (pRange) | 181 if (pRange) |
| 188 pIterator->SetAt(pRange->BeginPos); | 182 pIterator->SetAt(pRange->BeginPos); |
| 189 else | 183 else |
| 190 pIterator->SetAt(0); | 184 pIterator->SetAt(0); |
| 191 | 185 |
| 192 CPVT_WordPlace oldplace; | 186 CPVT_WordPlace oldplace; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 292 | 286 |
| 293 CFX_ByteTextBuf sTextBuf; | 287 CFX_ByteTextBuf sTextBuf; |
| 294 CPVT_WordProps wp; | 288 CPVT_WordProps wp; |
| 295 CFX_FloatPoint ptBT(0.0f, 0.0f); | 289 CFX_FloatPoint ptBT(0.0f, 0.0f); |
| 296 | 290 |
| 297 pDevice->SaveState(); | 291 pDevice->SaveState(); |
| 298 | 292 |
| 299 if (!rcClip.IsEmpty()) { | 293 if (!rcClip.IsEmpty()) { |
| 300 CFX_FloatRect rcTemp = rcClip; | 294 CFX_FloatRect rcTemp = rcClip; |
| 301 pUser2Device->TransformRect(rcTemp); | 295 pUser2Device->TransformRect(rcTemp); |
| 302 FX_RECT rcDevClip; | 296 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.right, |
|
dsinclair
2016/02/29 21:15:26
This should be left, top, right bottom?
Tom Sepez
2016/02/29 21:17:45
Yup. Just noticed that.
| |
| 303 rcDevClip.left = (int32_t)rcTemp.left; | 297 (int32_t)rcTemp.top, (int32_t)rcTemp.bottom)); |
| 304 rcDevClip.right = (int32_t)rcTemp.right; | |
| 305 rcDevClip.top = (int32_t)rcTemp.top; | |
| 306 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
| 307 pDevice->SetClip_Rect(&rcDevClip); | |
| 308 } | 298 } |
| 309 | 299 |
| 310 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 300 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
| 311 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { | 301 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { |
| 312 if (pRange) | 302 if (pRange) |
| 313 pIterator->SetAt(pRange->BeginPos); | 303 pIterator->SetAt(pRange->BeginPos); |
| 314 else | 304 else |
| 315 pIterator->SetAt(0); | 305 pIterator->SetAt(0); |
| 316 | 306 |
| 317 CPVT_WordPlace oldplace; | 307 CPVT_WordPlace oldplace; |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 646 rcUnderline.left += ptOffset.x; | 636 rcUnderline.left += ptOffset.x; |
| 647 rcUnderline.right += ptOffset.x; | 637 rcUnderline.right += ptOffset.x; |
| 648 rcUnderline.top += ptOffset.y; | 638 rcUnderline.top += ptOffset.y; |
| 649 rcUnderline.bottom += ptOffset.y; | 639 rcUnderline.bottom += ptOffset.y; |
| 650 AddRectToPageObjects(pObjectHolder, color, rcUnderline); | 640 AddRectToPageObjects(pObjectHolder, color, rcUnderline); |
| 651 } | 641 } |
| 652 } | 642 } |
| 653 } | 643 } |
| 654 } | 644 } |
| 655 } | 645 } |
| OLD | NEW |