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

Sam Liao phyomh at gmail.com
Tue Jan 18 21:40:34 PST 2011


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
>


More information about the poppler mailing list