[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