Changeset 279 for trunk/src/PDFDocument.cxx
- Timestamp:
- 06/26/07 07:07:49 (18 months ago)
- Files:
-
- 1 modified
-
trunk/src/PDFDocument.cxx (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/PDFDocument.cxx
r277 r279 657 657 } 658 658 659 static void 660 repairEmpty(PopplerRectangle& rect) 661 { 662 //rect must have be least 1x1 663 if(rect.y1 == rect.y2) 664 rect.y2++; 665 if(rect.x1 == rect.x2) 666 rect.x2++; 667 } 668 659 669 void 660 670 PDFDocument::setTextSelection (DocumentRectangle *rect) … … 670 680 671 681 //for get text we must exchange y coordinate, don't ask me where logic here. 672 PopplerRectangle textRect = { rect->getX1(), 673 (pageHeight - rect->getY2()), 674 rect->getX2(), 675 (pageHeight - rect->getY1())}; 682 PopplerRectangle textRect = { rect->getX1() / getZoom(), 683 (pageHeight - rect->getY2() / getZoom()), 684 rect->getX2() * getZoom() / getZoom(), 685 (pageHeight - rect->getY1() / getZoom())}; 686 repairEmpty(textRect); 687 676 688 gchar *text = poppler_page_get_text(page, &textRect); 677 689 if(!text) … … 692 704 g_free(text); 693 705 } 706 694 707 GdkRegion* 695 708 PDFDocument::getTextRegion (DocumentRectangle *r) … … 705 718 rect.y1 = r->getY1() / getZoom(); 706 719 rect.x2 = r->getX2() / getZoom(); 707 rect.y2 = r->getY2() / getZoom(); 720 rect.y2 = r->getY2() / getZoom(); 721 repairEmpty(rect); 708 722 709 723 //calc selection size
