|
|
Re: Focus, Composite and Popup Menu [message #1744631 is a reply to message #1744619] |
Thu, 29 September 2016 07:00 |
Gunnar Adams Messages: 49 Registered: May 2016 |
Member |
|
|
Thank you very much for your response.
Yes, I had already tried setting SWT.NO_FOCUS.
The structure of the application window is something like this (from bottom to top):
Shell
Composite 1 (with style SWT.NO_FOCUS)
Composite 2 (with style SWT.NO_FOCUS)
Composite 3 (with style SWT.NO_FOCUS)
Text
Without the NO_FOCUS style, I see that the focus control changes to Composite 3, when I click (left or right mouse button) anywhere on Composite 3 outside of Text.
I determined this by looking at event.display.getFocusControl() in a FocusOut event of the Text widget.
With the NO_FOCUS styles on composite, the Shell becomes the focus control, even when I also set SWT.NO_FOCUS on the Shell.
It was my understanding, that a composite cannot receive keyboard focus. I also did not know, that the concept of "mouse focus" even exists.
I therefore did not expect a click on the composite to interfere with the current focus control.
I think that my problem is a generalization of Bug 398478
https://bugs.eclipse.org/bugs/show_bug.cgi?id=398478, because in my opinion any mouse click in an area which is not a widget that can accept keyboard focus, should not change the focus.
I can probably implement a server-side workaround by determining the current focus control and setting the focus back to the previous one, but this will still interfere with things like the current caret position within text controls.
Is there some kind of "display filter" on the client-side where the offending focus activation could be prevented? My knowledge about Javascript is limited and I did not yet reverse engineer and analyze the inner workings of the RAP client code.
Best regards,
Gunnar
|
|
|
|
Powered by
FUDForum. Page generated in 0.02322 seconds