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 <[email protected]> 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 > [email protected] > http://lists.freedesktop.org/mailman/listinfo/poppler _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
