Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSravan Kumar Lakkimsetti2018-06-07 20:23:32 +0000
committerSravan Kumar Lakkimsetti2018-06-07 20:24:21 +0000
commit742c1cbd39bb33d4c9827db948582faef531b1ba (patch)
tree37a5c26f3cff30d89e11f695cb88840feb5b2be7
parente5c9de3e26afa039735b4bd1e71289e3ccff3289 (diff)
downloadeclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.tar.gz
eclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.tar.xz
eclipse.platform.swt-742c1cbd39bb33d4c9827db948582faef531b1ba.zip
Revert "Bug 534817 - screenshots do not change"
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java11
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java10
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);

Back to the top