It looks like they used some native code because there is a file called 'focuskiller.dll' :). That probably also explains why it is only fixed for windows.
I'm curious - is it possible to let me know how this was fixed?
It's rather a workaround that's based on eliminating the offending functionality of the Win32-API function SetForegroundWindow() which is called in said method "AwtDialog::ModalNextWindowToFront( hWndParent )".
The function is remapped to a custom function that does not try to gain the focus when another application is currently active, instead it's flashing the window's taskbar entry.
Unfortunately there seems to be an incompatibility between the IA launcher, the dll and something that happens during AWT initialization. This is what now causes crashes for some people.
Nick Pratt wrote:
Yes, as the announcement indicates, this is specific to the Windows platform.
No, it "only" cures the focus grabbing problem that is caused by closing modal dialogs.
See here: http://intellij.net/forums/thread.jsp?forum=22&thread=97546&message=3340475#3340475
Sascha
I'm curious - is it possible to let me know how this
was fixed?
M.
It looks like they used some native code because there is a file called 'focuskiller.dll' :). That probably also explains why it is only fixed for windows.
Michael Damberger wrote:
It's rather a workaround that's based on eliminating the offending
functionality of the Win32-API function SetForegroundWindow() which is
called in said method "AwtDialog::ModalNextWindowToFront( hWndParent )".
The function is remapped to a custom function that does not try to gain the
focus when another application is currently active, instead it's flashing
the window's taskbar entry.
Unfortunately there seems to be an incompatibility between the IA launcher,
the dll and something that happens during AWT initialization. This is what
now causes crashes for some people.
Sascha