* Bug 15984 fixed: display scale fixed for Retina displays under OSX 98/20998/6
Stéphane Mottelet [Tue, 4 Jun 2019 15:21:52 +0000 (17:21 +0200)]
http://bugzilla.scilab.org/show_bug.cgi?id=15984
http://bugzilla.scilab.org/show_bug.cgi?id=15316

Before fix : http://bugzilla.scilab.org/attachment.cgi?id=4966
After fix  : http://bugzilla.scilab.org/attachment.cgi?id=4967

see also:

http://bugzilla.scilab.org/show_bug.cgi?id=15943

for generalization of patch for other platforms.

Change-Id: I0ceed485605abe30dedce8d28b0a8514d2a5fa4b

scilab/CHANGES.md
scilab/modules/renderer/tests/nonreg_tests/bug_15984.tst [new file with mode: 0644]
scilab/modules/scirenderer/src/org/scilab/forge/scirenderer/implementation/jogl/JoGLCanvas.java

index a908e35..49a2741 100644 (file)
@@ -160,6 +160,7 @@ Bug Fixes
 * [#15840](http://bugzilla.scilab.org/show_bug.cgi?id=15840): `grand(1,"prm",m)` yielded an unsqueezed size([size(m) 1]) hypermatrix
 * [#15964](http://bugzilla.scilab.org/show_bug.cgi?id=15954): A complex empty sparse matrix could be obtained after insertion.
 * [#15983](http://bugzilla.scilab.org/show_bug.cgi?id=15983): `group()` regressed in 5.5.2 due to a too intrusive fix.
+* [#15984](http://bugzilla.scilab.org/show_bug.cgi?id=15984): display scale was wrong with Retina dispplays on OSX..
 * [#15995](http://bugzilla.scilab.org/show_bug.cgi?id=15995): patch was missing in surface plot (regression)
 * [#16003](http://bugzilla.scilab.org/show_bug.cgi?id=16003): Zoom with mouse scroll wheel was broken on simple surfaces.
 * [#16005](http://bugzilla.scilab.org/show_bug.cgi?id=16005): The `intdec` example was biased and not robust when changing sampling frequencies.
diff --git a/scilab/modules/renderer/tests/nonreg_tests/bug_15984.tst b/scilab/modules/renderer/tests/nonreg_tests/bug_15984.tst
new file mode 100644 (file)
index 0000000..8729684
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - Stéphane MOTTELET
+//
+//// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+// <-- MACOSX ONLY-->
+// <-- NO CHECK REF-->
+//
+// <-- Non-regression test for bug 15984 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15984
+//
+// <-- Short Description -->
+// display scale is wrong for Retina displays under OSX
+
+plot(1:10,sin(1:10))
+ax = gca();
+assert_checkequal(ax.x_ticks.locations,(1:10)');
index 751bce2..a823629 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2009-2011 - DIGITEO - Pierre Lando
+ * Copyright (C) 2019 - Stéphane MOTTELET
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
@@ -22,6 +23,7 @@ import java.util.concurrent.Semaphore;
 import javax.media.opengl.DebugGL2;
 import javax.media.opengl.GL2;
 import javax.media.opengl.GLAutoDrawable;
+import javax.media.opengl.awt.GLJPanel;
 import javax.media.opengl.GLCapabilities;
 import javax.media.opengl.GLContext;
 import javax.media.opengl.GLDrawableFactory;
@@ -158,16 +160,25 @@ public final class JoGLCanvas implements Canvas, GLEventListener {
 
     @Override
     public int getWidth() {
+        if (autoDrawable instanceof GLJPanel) {
+            return ((GLJPanel)autoDrawable).getWidth();
+        }
         return autoDrawable.getSurfaceWidth();
     }
 
     @Override
     public int getHeight() {
+        if (autoDrawable instanceof GLJPanel) {
+            return ((GLJPanel)autoDrawable).getHeight();
+        }
         return autoDrawable.getSurfaceHeight();
     }
 
     @Override
     public Dimension getDimension() {
+        if (autoDrawable instanceof GLJPanel) {
+            return new Dimension( ((GLJPanel)autoDrawable).getWidth(), ((GLJPanel)autoDrawable).getHeight());
+        }
         return new Dimension(autoDrawable.getSurfaceWidth(), autoDrawable.getSurfaceHeight());
     }