Bug 31009 - ACC - I20030205 accelerators issues
Summary: ACC - I20030205 accelerators issues
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 2.1   Edit
Hardware: PC Linux-GTK
: P1 major (vote)
Target Milestone: ---   Edit
Assignee: Christophe Cornu CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 32749 34720 34728 38250 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-02-05 14:08 EST by Christophe Cornu CLA
Modified: 2003-06-23 14:14 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Cornu CLA 2003-02-05 14:08:11 EST
Start Eclipse in GTK 2.2
Open the Preferences dialog. Press one of the accelerators binded to a check box
item (e.g. ALT-R). Note the check box does not get toggled. After pressing ALT-R
a few times, the focus finally comes to the checkbox item but does not toggle
its state. Accelerators are unusable.

Does not appear to be an issue in GTK 2.0.6.
Comment 1 Veronika Irvine CLA 2003-02-06 15:48:50 EST
You found it.  You fix it.
Comment 2 Christophe Cornu CLA 2003-02-07 10:36:02 EST
Actually this also occurs on GTK 2.0.6

The correct platform behaviour can be seen with:
open gedit
Bring Preferences > Editor > Font Colors
Press Alt U or Alt S and see the checkboxes being toggled
Comment 3 Christophe Cornu CLA 2003-02-07 17:03:14 EST
Fails on GTK. Hidden button still gets mnemonic event one out of two.

	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setText("PR31009");
		shell.open();

		Button button = new Button(shell, SWT.CHECK);
		button.setText("H&ello");
		button.setBounds(0,0,100,20);

		button = new Button(shell, SWT.CHECK);
		button.setText("H&ello 2");
		button.setBounds(0,40,100,20);
		button.setVisible(false);

		button = new Button(shell, SWT.CHECK);
		button.setText("&Right there");
		button.setBounds(0,80,100,20);

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}		
	}
Comment 4 Christophe Cornu CLA 2003-02-10 12:09:10 EST
Fixed >20030210
Comment 5 Felipe Heidrich CLA 2003-04-03 16:24:17 EST
still happens, a fix for IM has broke this fix.

Comment 6 Felipe Heidrich CLA 2003-04-03 16:24:31 EST
*** Bug 32749 has been marked as a duplicate of this bug. ***
Comment 7 Felipe Heidrich CLA 2003-04-03 16:24:47 EST
*** Bug 34728 has been marked as a duplicate of this bug. ***
Comment 8 Felipe Heidrich CLA 2003-04-03 16:25:03 EST
*** Bug 34720 has been marked as a duplicate of this bug. ***
Comment 9 Felipe Heidrich CLA 2003-04-03 17:02:22 EST
This test case will fail:

	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setText("PR31009");
		shell.open();

		Button button = new Button(shell, SWT.CHECK);
		button.setText("H&ello");
		button.setBounds(0,0,100,20);

		Composite composite = new Composite (shell, SWT.BORDER);
		composite.setBounds (0, 35, 110, 22);
		button = new Button(composite, SWT.CHECK);
		button.setText("H&ello 2");
		button.setBounds(1,1,100,20);
		composite.setVisible(false);

		button = new Button(shell, SWT.CHECK);
		button.setText("&Right there");
		button.setBounds(0,80,100,20);

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}		
	}
Comment 10 Felipe Heidrich CLA 2003-04-03 17:46:50 EST
Fixed > 20030403 (HEAD)
Comment 11 Felipe Heidrich CLA 2003-06-23 14:14:40 EDT
*** Bug 38250 has been marked as a duplicate of this bug. ***