[poppler] [PATCH] Poppler: Fix line selection, dont check y for Line selection

Sam Liao phyomh at gmail.com
Thu Jan 20 06:24:16 PST 2011


Hi Marek,

Thanks, that's really the same. And it seems fix man bugs
as you mentioned in the link.

-Sam

On Thu, Jan 20, 2011 at 6:38 PM, Marek Kasik <mkasik at redhat.com> wrote:
> Hi Sam,
>
> the patch looks good to me. You are right that Y values should be
> neglected in this case.
> The patch is similar to the second part of the patch in
> https://bugs.freedesktop.org/show_bug.cgi?id=22506 (unfortunately, I
> haven't fixed the first part of the patch yet...).
>
> Regards
>
> Marek
>
>
> On 01/19/2011 06:40 AM, Sam Liao wrote:
>> Hi,
>>
>> Is there anyone can help me to review this fix or find a more
>> reasonable solution?
>>
>> Thanks,
>> -Sam
>>
>> On Mon, Jan 17, 2011 at 5:26 PM, Sam Liao <phyomh at gmail.com> wrote:
>>> When a line is selected while the Y values of selection is
>>> not in the y range of words, the render will render the
>>> line with reverse color while the words does not show up.
>>>
>>> This fix neglect the Y vaules to make sure that the words
>>> also displayed when line is selected.
>>> ---
>>> poppler/TextOutputDev.cc |   16 ++++++++--------
>>> 1 files changed, 8 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc
>>> index 576bcc9..71b946e 100644
>>> --- a/poppler/TextOutputDev.cc
>>> +++ b/poppler/TextOutputDev.cc
>>> @@ -4249,24 +4249,24 @@ void
>>> TextLine::visitSelection(TextSelectionVisitor *visitor,
>>>   current = NULL;
>>>   for (p = words; p != NULL; p = p->next) {
>>>     if (blk->page->primaryLR) {
>>> -      if ((selection->x1 < p->xMax && selection->y1 < p->yMax) ||
>>> -  (selection->x2 < p->xMax && selection->y2 < p->yMax))
>>> +      if ((selection->x1 < p->xMax) ||
>>> +  (selection->x2 < p->xMax))
>>>         if (begin == NULL)
>>>  begin = p;
>>>
>>> -      if (((selection->x1 > p->xMin && selection->y1 > p->yMin) ||
>>> -   (selection->x2 > p->xMin && selection->y2 > p->yMin)) && (begin != NULL)) {
>>> +      if (((selection->x1 > p->xMin) ||
>>> +   (selection->x2 > p->xMin)) && (begin != NULL)) {
>>>         end = p->next;
>>>         current = p;
>>>       }
>>>     } else {
>>> -      if ((selection->x1 > p->xMin && selection->y1 < p->yMax) ||
>>> -  (selection->x2 > p->xMin && selection->y2 < p->yMax))
>>> +      if ((selection->x1 > p->xMin) ||
>>> +  (selection->x2 > p->xMin))
>>>         if (begin == NULL)
>>>  begin = p;
>>>
>>> -      if (((selection->x1 < p->xMax && selection->y1 > p->yMin) ||
>>> -   (selection->x2 < p->xMax && selection->y2 > p->yMin)) && (begin != NULL)) {
>>> +      if (((selection->x1 < p->xMax) ||
>>> +   (selection->x2 < p->xMax)) && (begin != NULL)) {
>>>         end = p->next;
>>>         current = p;
>>>       }
>>> --
>>> 1.7.1
>>>
>> _______________________________________________
>> poppler mailing list
>> poppler at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/poppler
>
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler
>


More information about the poppler mailing list