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

Albert Astals Cid aacid at kde.org
Wed Jan 19 11:13:22 PST 2011


A Dimecres, 19 de gener de 2011, Sam Liao va escriure:
> Hi,
> 
> Is there anyone can help me to review this fix or find a more
> reasonable solution?
> 

I would understand that the last people that modified TextOutputDev would be 
your best hope, that would be Marek and Brian.

If they don't answer i guess Carlos as maintainer of the glib frontend that is 
the only one that uses visitSelection would be the one to decide.

Albert

> 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