Bug 45811 [Dialogs] Problematic behavior of WorkbenchPreferenceDialog.setShellSize()
I20031023 MacOS X 10.3 - in Panther open Window > Preferences > Ant > Editor Observe: all hell breaks loose... I had to restart my machine and lost work! Two problems here: - a width of 12902 and a height of 16909 is passed to WorkbenchPreferenceDialog.setShellSize() (why this is the case needs further investigation) - however, JavaDoc of setShellSize states: "Changes the shell size to the given size, ensuring that it is no larger than the display bounds" the implementation is: private void setShellSize(int width, int height) { getShell().setSize(width, height); constrainShellSize(); } I think it doesn't make much sense to first set the Shell's size to a bogus value and then constrain its size to something sensible.
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
protected void buttonPressed(int buttonId) {
		switch (buttonId) {
			case IDialogConstants.OK_ID :
				{
					okPressed();
					return;
				}
			case IDialogConstants.CANCEL_ID :
				{
					cancelPressed();
					return;
				}
			case IDialogConstants.HELP_ID :
				{
					helpPressed();
					return;
				}
		}
	}
	/* (non-Javadoc)
	 * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
	 */
	protected void cancelPressed() {
		
		Iterator nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER).iterator();
		while (nodes.hasNext()) {
			final IPreferenceNode node = (IPreferenceNode) nodes.next();
			if (node.getPage() != null) {
				Platform.run(new SafeRunnable() {
					public void run() {