Bug 202382 [Forms] Behaviour of Section with fixed style changed between Eclipse 3.0 and 3.1 (and later)
Build ID: M20060118-1600 Steps To Reproduce: 1. Create a section and assign a shortcut: final Section addressSection = toolkit.createSection(this, SWT.NONE); addressSection.setText("&Adresse"); 2. Add a text field to the section final Composite nameComposite = toolkit.createComposite(addressComposite, SWT.NONE); toolkit.createLabel(nameComposite, "Name", SWT.NONE); final Text nameText = toolkit.createText(nameComposite, null, SWT.NONE); 3. Run this in a Eclipse 3.0 dialog. Pressing the shortcut key ALT-A moves the focus to the text input file nameText. 4. Run this in a Eclipse 3.1 dialog. Pressing the shortcut key ALT-A hides the section! More information: In the ExpandableComposite which is the base class of Section, there is always a TraverseListener added to the object. This TraverseListener always toggles the state of the section, even if isFixedStyle() returns true. To restore the old behaviour, simply call programmaticToggleState() only if isFixedSytle() returns false.
bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
}
			});
		}
	}
	/**
	 * Overrides 'super' to pass the menu to the text label.
	 * 
	 * @param menu
	 *            the menu from the parent to attach to this control.
	 */
	public void setMenu(Menu menu) {
		if (textLabel != null)
			textLabel.setMenu(menu);
		super.setMenu(menu);
	}
	/**
	 * Prevents assignment of the layout manager - expandable composite uses its
	 * own layout.
	 */
	public final void setLayout(Layout layout) {
	}
	/**
	 * Sets the background of all the custom controls in the expandable.
	 */
	public void setBackground(Color bg) {
		super.setBackground(bg);
		if ((getExpansionStyle() & TITLE_BAR) == 0) {
			if (textLabel != null)
				textLabel.setBackground(bg);
			if (toggle != null)