diff options
author | Sravan Kumar Lakkimsetti | 2018-06-07 20:23:32 +0000 |
---|---|---|
committer | Sravan Kumar Lakkimsetti | 2018-06-07 20:24:21 +0000 |
commit | 742c1cbd39bb33d4c9827db948582faef531b1ba (patch) | |
tree | 37a5c26f3cff30d89e11f695cb88840feb5b2be7 | |
parent | e5c9de3e26afa039735b4bd1e71289e3ccff3289 (diff) | |
download | eclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.tar.gz eclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.tar.xz eclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.zip |
Revert "Bug 534817 - screenshots do not change"
This reverts commit 809b38a9c2e5537b4a532a4680f7fc06d8c7dbb2.
Change-Id: I093d48e222bc9b93ee23f7619e64e7c8aa3676e3
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java | 11 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java | 10 |
2 files changed, 9 insertions, 12 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java index 1c31c6dc61..8301156deb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java @@ -1390,15 +1390,18 @@ void init(int width, int height) { this.type = SWT.BITMAP; /* Create the pixmap */ - surface = GDK.gdk_window_create_similar_surface(GDK.gdk_get_default_root_window(), Cairo.CAIRO_CONTENT_COLOR, width, height); + if (GTK.GTK3) { + surface = Cairo.cairo_image_surface_create(Cairo.CAIRO_FORMAT_ARGB32, width, height); + } else { + surface = GDK.gdk_window_create_similar_surface(GDK.gdk_get_default_root_window(), Cairo.CAIRO_CONTENT_COLOR, width, height); + } if (surface == 0) SWT.error(SWT.ERROR_NO_HANDLES); - // When we create a blank image we need to set it to 100 in GTK3 as we draw using 100% scale. - // Cairo will take care of scaling for us when image needs to be scaled. + // When we create a blank image we need to set it to 100 in GTK3 as we don't scale here. + // Cairo will scale for us if (!GTK.GTK3) { currentDeviceZoom = DPIUtil.getDeviceZoom(); } else { currentDeviceZoom = 100; - Cairo.cairo_surface_set_device_scale(surface, 1f, 1f); } long /*int*/ cairo = Cairo.cairo_create(surface); if (cairo == 0) SWT.error(SWT.ERROR_NO_HANDLES); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java index 0f38b3fec0..a611073ea1 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java @@ -34,15 +34,9 @@ public static long /*int*/ convertSurface(Image image) { int format = Cairo.cairo_surface_get_content(newSurface) == Cairo.CAIRO_CONTENT_COLOR ? Cairo.CAIRO_FORMAT_RGB24 : Cairo.CAIRO_FORMAT_ARGB32; newSurface = Cairo.cairo_image_surface_create(format, bounds.width, bounds.height); if (newSurface == 0) SWT.error(SWT.ERROR_NO_HANDLES); - //retain device scale set in the original surface if (GTK.GTK3) { - double sx[] = new double[1]; - double sy[] = new double[1]; - Cairo.cairo_surface_get_device_scale(image.surface, sx, sy); - if (sx[0] == 0 || sy[0] == 0){ - sx[0] = sy[0] = DPIUtil.getDeviceZoom() / 100f; - } - Cairo.cairo_surface_set_device_scale(newSurface, sx[0], sy[0]); + double scaleFactor = DPIUtil.getDeviceZoom() / 100f; + Cairo.cairo_surface_set_device_scale(newSurface, scaleFactor, scaleFactor); } long /*int*/ cairo = Cairo.cairo_create(newSurface); if (cairo == 0) SWT.error(SWT.ERROR_NO_HANDLES); |