aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/java.desktop/macosx/classes/com/apple/eawt/Application.java19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/java.desktop/macosx/classes/com/apple/eawt/Application.java b/src/java.desktop/macosx/classes/com/apple/eawt/Application.java
index 02504813bb8..192547dc58d 100644
--- a/src/java.desktop/macosx/classes/com/apple/eawt/Application.java
+++ b/src/java.desktop/macosx/classes/com/apple/eawt/Application.java
@@ -28,6 +28,7 @@ package com.apple.eawt;
import java.awt.*;
import java.awt.peer.*;
import java.beans.Beans;
+import java.util.function.Consumer;
import javax.swing.JMenuBar;
@@ -395,27 +396,23 @@ public class Application {
*/
@SuppressWarnings("deprecation")
public void requestToggleFullScreen(final Window window) {
- final Object peer = AWTAccessor.getComponentAccessor().getPeer(window);
- if (!(peer instanceof LWWindowPeer)) return;
- Object platformWindow = ((LWWindowPeer) peer).getPlatformWindow();
- if (!(platformWindow instanceof CPlatformWindow)) return;
- ((CPlatformWindow)platformWindow).toggleFullScreen();
+ invokeOnPlatformWindow(window, pw -> pw.toggleFullScreen());
}
public void requestEnterFullScreen(final Window window) {
- final Object peer = AWTAccessor.getComponentAccessor().getPeer(window);
- if (!(peer instanceof LWWindowPeer)) return;
- Object platformWindow = ((LWWindowPeer) peer).getPlatformWindow();
- if (!(platformWindow instanceof CPlatformWindow)) return;
- ((CPlatformWindow)platformWindow).enterFullScreen();
+ invokeOnPlatformWindow(window, pw -> pw.enterFullScreen());
}
public void requestLeaveFullScreen(final Window window) {
+ invokeOnPlatformWindow(window, pw -> pw.leaveFullScreen());
+ }
+
+ private void invokeOnPlatformWindow (final Window window, Consumer<CPlatformWindow> consumer) {
final Object peer = AWTAccessor.getComponentAccessor().getPeer(window);
if (!(peer instanceof LWWindowPeer)) return;
Object platformWindow = ((LWWindowPeer) peer).getPlatformWindow();
if (!(platformWindow instanceof CPlatformWindow)) return;
- ((CPlatformWindow)platformWindow).leaveFullScreen();
+ consumer.accept((CPlatformWindow)platformWindow);
}