Bug 42009 [KeyBindings] Ctrl+Shift+F switches input mode in KeySequenceText on GTK
Some key strokes shift the input mode by default in GTK, which breaks the way the KeySequenceText widget is supposed to work. One example is Ctrl+Shift+F. Instead of the desired character, a strange other character is inserted, and the key sequence is not modified. This character cannot be deleted. STEPS TO REPRODUCE: 1.) Open the KeysPreferencePage and change focus to the KeySequenceText widget. 2.) Type Ctrl+Shift+F ACTUAL RESULTS: An underlined 'F' is inserted in the text widget, and the key sequence is not affected. EXPECTED RESULTS: Ctrl+Shift+F should be inserted, and the key sequence updated.
bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
/**
 * A contribution item which delegates to an action.
 * <p>
 * This class may be instantiated; it is not intended to be subclassed.
 * </p>
 */
public class ActionContributionItem extends ContributionItem {
	/**
	 * Mode bit: Show text on tool items, even if an image is present.
	 * If this mode bit is not set, text is only shown on tool items if there is 
	 * no image present.
	 */
	public static int MODE_FORCE_TEXT = 1;
	
	private static final String ellipsis = "..."; 
	private static class ImageCache {