From 624139accaf34f2e5dd1f29bb76cfe759c8d0ff3 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Thu, 7 Aug 2014 16:11:10 -0400 Subject: [PATCH] pack() after maximizing, takes care of #2562 --- core/src/processing/core/PApplet.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 6e10ea4cd..7bb19848c 100755 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -31,6 +31,7 @@ import processing.opengl.*; import java.applet.*; import java.awt.*; +import java.awt.event.WindowStateListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.FocusEvent; @@ -10360,6 +10361,25 @@ public class PApplet extends Applet * in cases where frame.setResizable(true) is called. */ public void setupFrameResizeListener() { + frame.addWindowStateListener(new WindowStateListener() { + @Override + // Detecting when the frame is resized in order to handle the frame + // maximization bug in OSX: + // http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8036935 + public void windowStateChanged(WindowEvent e) { + if (Frame.MAXIMIZED_BOTH == e.getNewState()) { + // Supposedly, sending the frame to back and then front is a + // workaround for this bug: + // http://stackoverflow.com/a/23897602 + // but is not working for me... + //frame.toBack(); + //frame.toFront(); + // but either packing the frame does! + frame.pack(); + } + } + }); + frame.addComponentListener(new ComponentAdapter() { @Override