@@ -564,14 +564,17 @@ private static boolean hasCodeMiningPrintedBelowLine(ITextViewer viewer, int lin
564564 starty = lineBounds .y ;
565565 }
566566
567- Image image = new Image (widget .getDisplay (), (gc , width , height ) -> {}, widget .getSize ().x , widget .getSize ().y );
567+ double zoomFactor = widget .nativeZoom / 100.0 ;
568+ Image image = new Image (widget .getDisplay (), (gc , width , height ) -> {
569+ }, (int ) (widget .getSize ().x * zoomFactor ), (int ) (widget .getSize ().y * zoomFactor ));
568570 try {
569571 GC gc = new GC (widget );
572+ gc .getGCData ().nativeZoom = 100 ;
570573 gc .copyArea (image , 0 , 0 );
571574 gc .dispose ();
572575 ImageData imageData = image .getImageData ();
573- for (int x = startx + 1 ; x < image .getBounds ().width && x < imageData .width ; x ++) {
574- for (int y = starty ; y < imageData .height - 10 /*do not include the border*/ ; y ++) {
576+ for (int x = ( int ) ( zoomFactor * startx + 1 ) ; x < image .getBounds ().width && x < imageData .width ; x ++) {
577+ for (int y = ( int ) ( zoomFactor * starty ) ; y < imageData .height - 10 /*do not include the border*/ ; y ++) {
575578 if (!imageData .palette .getRGB (imageData .getPixel (x , y )).equals (widget .getBackground ().getRGB ())) {
576579 // code mining printed
577580 return true ;
@@ -604,14 +607,18 @@ private static boolean hasCodeMiningPrintedAfterTextOnLine(ITextViewer viewer, i
604607 } else {
605608 secondLineBounds = widget .getTextBounds (lineOffset , lineOffset + lineLength );
606609 }
607- Image image = new Image (widget .getDisplay (), (gc , width , height ) -> {}, widget .getSize ().x , widget .getSize ().y );
610+ double zoomFactor = widget .nativeZoom / 100.0 ;
611+ Image image = new Image (widget .getDisplay (), (gc , width , height ) -> {
612+ }, (int ) (widget .getSize ().x * zoomFactor ), (int ) (widget .getSize ().y * zoomFactor ));
608613 GC gc = new GC (widget );
614+ gc .getGCData ().nativeZoom = 100 ;
609615 gc .copyArea (image , 0 , 0 );
610616 gc .dispose ();
611617 ImageData imageData = image .getImageData ();
612618 secondLineBounds .x += secondLineBounds .width ; // look only area after text
613- for (int x = secondLineBounds .x + 1 ; x < image .getBounds ().width && x < imageData .width ; x ++) {
614- for (int y = secondLineBounds .y ; y < secondLineBounds .y + secondLineBounds .height && y < imageData .height ; y ++) {
619+
620+ for (int x = (int ) (zoomFactor * (secondLineBounds .x + 1 )); x < image .getBounds ().width && x < imageData .width ; x ++) {
621+ for (int y = (int ) (zoomFactor * (secondLineBounds .y )); y < zoomFactor * (secondLineBounds .y + secondLineBounds .height ) && y < imageData .height ; y ++) {
615622 if (!imageData .palette .getRGB (imageData .getPixel (x , y )).equals (widget .getBackground ().getRGB ())) {
616623 // code mining printed
617624 image .dispose ();
0 commit comments