Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiraj Modi2018-08-16 14:19:48 +0000
committerNiraj Modi2018-08-16 14:19:48 +0000
commit3e7a9c5a436ad1b0897884d12c0cbb27fed0ff30 (patch)
tree6b42979a76239de85694f2dab9fd29c822f5c14c
parentc40374befd8d24d76a47853f13d79979088fb724 (diff)
downloadeclipse.platform.ui-3e7a9c5a436ad1b0897884d12c0cbb27fed0ff30.tar.gz
eclipse.platform.ui-3e7a9c5a436ad1b0897884d12c0cbb27fed0ff30.tar.xz
eclipse.platform.ui-3e7a9c5a436ad1b0897884d12c0cbb27fed0ff30.zip
Bug 537998 - Prompt user to restart Eclipse SDK on Zoom change
notification Change-Id: I13c6c14ed66bb2eac57cebc314e288d1a0b25009 Signed-off-by: Niraj Modi <niraj.modi@in.ibm.com>
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java4
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java22
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties5
3 files changed, 31 insertions, 0 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
index f666600a484..7967e0a955e 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
@@ -1040,5 +1040,9 @@ public class WorkbenchMessages extends NLS {
public static String Util_List;
public static String Util_listNull;
+ // Zoom change messages
+ public static String Workbench_zoomChangedTitle;
+ public static String Workbench_zoomChangedMessage;
+ public static String Workbench_zoomChangedRestart;
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
index 68a3168e364..7c9a59c3140 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
@@ -110,6 +110,7 @@ import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.action.SubContributionItem;
import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.internal.provisional.action.CoolBarManager2;
import org.eclipse.jface.internal.provisional.action.ICoolBarManager2;
import org.eclipse.jface.internal.provisional.action.IToolBarManager2;
@@ -133,6 +134,7 @@ import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.ActiveShellExpression;
@@ -785,6 +787,26 @@ public class WorkbenchWindow implements IWorkbenchWindow {
getShell().setData(this);
trackShellActivation();
+ /**
+ * When SWT zoom changes for primary monitor, prompt user to restart Eclipse to
+ * apply the changes.
+ */
+ getShell().addListener(SWT.ZoomChanged, new Listener() {
+ @Override
+ public void handleEvent(org.eclipse.swt.widgets.Event event) {
+ if (getShell().getDisplay().getPrimaryMonitor().equals(getShell().getMonitor())) {
+ int dialogResponse = MessageDialog.open(MessageDialog.QUESTION, getShell(),
+ WorkbenchMessages.Workbench_zoomChangedTitle,
+ WorkbenchMessages.Workbench_zoomChangedMessage, SWT.NONE,
+ WorkbenchMessages.Workbench_zoomChangedRestart,
+ IDialogConstants.NO_LABEL);
+ if (event.doit && dialogResponse == 0) {
+ getWorkbenchImpl().restart(true);
+ }
+ }
+ }
+ });
+
} finally {
HandlerServiceImpl.pop();
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
index ca48b935e3c..6d0033a2909 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
@@ -1019,3 +1019,8 @@ FilteredTableBaseHandler_Close=&Close
# ==============================================================================
Util_List={0}, {1}
Util_listNull=null
+
+# Zoom change messages
+Workbench_zoomChangedTitle=Zoom changed
+Workbench_zoomChangedMessage=Would you like to restart the Eclipse SDK to apply the zoom changes?
+Workbench_zoomChangedRestart=&Restart Now

Back to the top