From 955018d9d98fd6e2b1114a73ab9d47a198bc66d7 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Wed, 27 Feb 2013 16:40:50 +0400 Subject: [PATCH] IDEA-101547 Please add a clock in fullscreen mode! After-review: we add/remove clock when enter/exit full screen mode --- .../src/com/intellij/openapi/wm/impl/IdeFrameImpl.java | 4 ---- .../intellij/openapi/wm/impl/WindowManagerImpl.java | 7 +++++++ .../intellij/openapi/wm/impl/status/ClockPanel.java | 10 ---------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index 4cf38f90b3cd..492ebc9aacef 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -371,9 +371,6 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider { statusBar.addWidget(readOnlyAttributePanel, "after Encoding"); } - final ClockPanel clockPanel = new ClockPanel(); - statusBar.addWidget(clockPanel, "after " + MemoryUsagePanel.WIDGET_ID); - final InsertOverwritePanel finalInsertOverwritePanel = insertOverwritePanel; Disposer.register(project, new Disposable() { public void dispose() { @@ -381,7 +378,6 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider { statusBar.removeWidget(positionPanel.ID()); statusBar.removeWidget(notificationArea.ID()); statusBar.removeWidget(readOnlyAttributePanel.ID()); - statusBar.removeWidget(clockPanel.ID()); if (finalInsertOverwritePanel != null) statusBar.removeWidget(finalInsertOverwritePanel.ID()); ((StatusBarEx)statusBar).removeCustomIndicationComponents(); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java index 3f07ae68d39a..e560f4d41a7c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/WindowManagerImpl.java @@ -35,10 +35,13 @@ import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.NamedJDOMExternalizable; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.StatusBar; import com.intellij.openapi.wm.WindowManagerListener; import com.intellij.openapi.wm.ex.WindowManagerEx; +import com.intellij.openapi.wm.impl.status.ClockPanel; +import com.intellij.openapi.wm.impl.status.MemoryUsagePanel; import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame; import com.intellij.ui.ScreenUtil; import com.intellij.util.Alarm; @@ -847,12 +850,16 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat finally { if (fullScreen) { frame.setBounds(device.getDefaultConfiguration().getBounds()); + if (!Registry.is("ui.no.bangs.and.whistles", false)) { + frame.getStatusBar().addWidget(new ClockPanel(), "before " + MemoryUsagePanel.WIDGET_ID); + } } else { Object o = frame.getRootPane().getClientProperty("oldBounds"); if (o instanceof Rectangle) { frame.setBounds((Rectangle)o); } + frame.getStatusBar().removeWidget(ClockPanel.WIDGET_ID); } frame.setVisible(true); frame.getRootPane().putClientProperty(ScreenUtil.DISPOSE_TEMPORARY, null); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/ClockPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/ClockPanel.java index fc663f8692cd..1c1bdecea555 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/ClockPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/ClockPanel.java @@ -16,9 +16,7 @@ package com.intellij.openapi.wm.impl.status; import com.intellij.openapi.wm.CustomStatusBarWidget; -import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.StatusBar; -import com.intellij.openapi.wm.impl.IdeFrameImpl; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,7 +51,6 @@ public class ClockPanel extends JComponent implements CustomStatusBarWidget { protected final Calendar myCalendar; private final Timer myTimer; private final boolean is24Hours; - private IdeFrameImpl myIdeFrame; public ClockPanel() { myCalendar = getInstance(); @@ -74,21 +71,14 @@ public class ClockPanel extends JComponent implements CustomStatusBarWidget { @Override public void install(@NotNull StatusBar statusBar) { - IdeFrame frame = statusBar.getFrame(); - myIdeFrame = frame instanceof IdeFrameImpl ? (IdeFrameImpl)frame : null; myTimer.start(); } @Override public void dispose() { myTimer.stop(); - myIdeFrame = null; } - @Override - public boolean isVisible() { - return myIdeFrame != null && myIdeFrame.isInFullScreen(); - } @Override public JComponent getComponent() {