From b8ed1abcdb8545f9fba6c8672c8f4ec9b2a53d50 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 11 Sep 2015 09:33:41 -0400 Subject: [PATCH] add surface.setAlwaysOnTop(boolean) for all renderers (fixes #3718) --- core/src/processing/awt/PSurfaceAWT.java | 6 ++++++ core/src/processing/core/PSurface.java | 3 +++ core/src/processing/core/PSurfaceNone.java | 4 ++++ core/src/processing/javafx/PSurfaceFX.java | 6 ++++++ core/src/processing/opengl/PSurfaceJOGL.java | 6 ++++++ core/todo.txt | 2 ++ 6 files changed, 27 insertions(+) diff --git a/core/src/processing/awt/PSurfaceAWT.java b/core/src/processing/awt/PSurfaceAWT.java index f98b8eec6..0afdb227f 100644 --- a/core/src/processing/awt/PSurfaceAWT.java +++ b/core/src/processing/awt/PSurfaceAWT.java @@ -594,6 +594,12 @@ public class PSurfaceAWT extends PSurfaceNone { } + @Override + public void setAlwaysOnTop(boolean always) { + frame.setAlwaysOnTop(always); + } + + List iconImages; protected void setProcessingIcon(Frame frame) { diff --git a/core/src/processing/core/PSurface.java b/core/src/processing/core/PSurface.java index 45dcf1f53..4dde7e8d2 100644 --- a/core/src/processing/core/PSurface.java +++ b/core/src/processing/core/PSurface.java @@ -71,6 +71,9 @@ public interface PSurface { /** Set true if we want to resize things (default is not resizable) */ public void setResizable(boolean resizable); + /** Dumb name, but inherited from Frame and no better ideas. */ + public void setAlwaysOnTop(boolean always); + public void setIcon(PImage icon); // diff --git a/core/src/processing/core/PSurfaceNone.java b/core/src/processing/core/PSurfaceNone.java index a3ffa1ab8..7b5a17f57 100644 --- a/core/src/processing/core/PSurfaceNone.java +++ b/core/src/processing/core/PSurfaceNone.java @@ -111,6 +111,10 @@ public class PSurfaceNone implements PSurface { public void setupExternalMessages() { } + @Override + public void setAlwaysOnTop(boolean always) { } + + // diff --git a/core/src/processing/javafx/PSurfaceFX.java b/core/src/processing/javafx/PSurfaceFX.java index 6c2750f34..dc741be3e 100644 --- a/core/src/processing/javafx/PSurfaceFX.java +++ b/core/src/processing/javafx/PSurfaceFX.java @@ -302,6 +302,12 @@ public class PSurfaceFX implements PSurface { } + @Override + public void setAlwaysOnTop(boolean always) { + stage.setAlwaysOnTop(always); + } + + /* @Override public void placeWindow(int[] location) { diff --git a/core/src/processing/opengl/PSurfaceJOGL.java b/core/src/processing/opengl/PSurfaceJOGL.java index 41589af08..b6d0ad728 100644 --- a/core/src/processing/opengl/PSurfaceJOGL.java +++ b/core/src/processing/opengl/PSurfaceJOGL.java @@ -459,6 +459,12 @@ public class PSurfaceJOGL implements PSurface { } + @Override + public void setAlwaysOnTop(boolean always) { + window.setAlwaysOnTop(always); + } + + protected void initIcons() { final int[] sizes = { 16, 32, 48, 64, 128, 256, 512 }; String[] iconImages = new String[sizes.length]; diff --git a/core/todo.txt b/core/todo.txt index f39cd0bb9..353af94e9 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -10,6 +10,8 @@ o this is the difference between a lot of loadPixels() and not o so important to have it in before beta if that's the change o https://github.com/processing/processing/issues/99 X won't fix for now, requires too much reworking on the image system +X add surface.setAlwaysOnTop(boolean) +X https://github.com/processing/processing/issues/3718 andres X P2D: error calling surface.setTitle()