[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.swt] Re: How to dermine if Shift Key is down?
|
I'm assuming that you mean the user is holding Shift while selecting the
menu item:
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell (display);
shell.setBounds(10,10,200,200);
Menu menu = new Menu(shell, SWT.POP_UP);
shell.setMenu(menu);
MenuItem item = new MenuItem(menu, SWT.NONE);
item.setText("item");
item.addListener(SWT.Selection, new Listener (){
public void handleEvent(Event event) {
System.out.print("item selected with modifiers: ");
if ((event.stateMask & SWT.SHIFT) != 0) System.out.print("Shift
");
if ((event.stateMask & SWT.CTRL) != 0) System.out.print("Ctrl
");
if ((event.stateMask & SWT.ALT) != 0) System.out.print("Alt");
System.out.println();
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
Grant
"Sergey V. Gomanyuk" <sergg@xxxxxxxxx> wrote in message
news:djbci9$t9n$1@xxxxxxxxxxxxxxxxxxx
> I tried following:
>
> displayKeysListener = new Listener() {
> public void handleEvent(Event event) {
> if(event.keyCode == SWT.SHIFT) {
> if(event.type == SWT.KeyDown) {
> Utilities.setShiftKeyDown(true);
> } else if(event.type == SWT.KeyUp) {
> Utilities.setShiftKeyDown(false);
> }
> }
> }
> };
> Display d = getWorkbench().getDisplay();
> d.addFilter(SWT.KeyDown, displayKeysListener);
> d.addFilter(SWT.KeyUp, displayKeysListener);
>
>
> It works until popup menu in Eclipse view invoked, display doesn't send
any
> key events while menu is active. Why? How to find out if Shift key had
been
> pressed just before action from popup menu was invoked?
> Sergey Gomanyuk,
> ISP RAS,
> junior research assistant,
> e-mail: sergg@xxxxxxxxx
> phone: +7 (095) 912-5317 (4428 additional)
> cell: +7 (909) 159-1066
>
>
>