[poppler] [PATCH] Poppler: Fix line selection, dont check y for Line selection
Marek Kasik
mkasik at redhat.com
Thu Jan 20 02:38:31 PST 2011
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
More information about the poppler
mailing list