AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |
Back to Blog
Phpstorm activation code 20183/8/2024 I haven't witnessed any focus-stealing as yet, but I'd really need the original test case for the linux-focus-stealing bug to be sure. Focus now works perfectly - I can have two Intellij windows up, work in window A, switch a web browser or whatever, and return to Intellij by activating window B - and focus gets correctly assigned. To test this, I built a build of IDEA with processAppActivationEvents() still getting called but it's boolean return value getting ignored, and not causing the _dispatchEvent() method to return. It would be great to have a reference to the exact ticket, but as you can see, it appears the code was added to stop IDEA stealing focus- and has had the unfortunate effect of now making IDEA too shy about taking focus when it is given it! Linux focus stealing: do not let WINDOW_GAINED_FOCUS pass throght + fixes for FrameStateManager to make refresh/save work under this condition It looks like all of this event-swallowing code was added in response to a linux-specific bug :Ĭommit 30230e5f398922df8b189394f9436d590b4d3dff So you'll only see the problem on Linux systems. Some updates worth noting: Support Cucumber.js version: 3.0. The release brings some bugfixes and improvements for PHP, Web, and IntelliJ Platform. See Patches.REQUEST_FOCUS_MAY_ACTIVATE_APP PhpStorm 2018.3.3 build 183.5153.36 is now available We are starting the new year with the third minor update for PhpStorm 2018.3. your operating system name starts with "linux" - I mean that quite literally. PhpStorm 2018.3.3 build 183.5153.36 is now available We are starting the new year with the third minor update for PhpStorm 2018.3.the IDEA app is currently inactive (!appImpl.isActive()) - this is a bit of IDEA's application state set by IdeEventQueue that basically tracks if it has focus or not - this is obviously the case if you have just been looking at a non-JVM window, Nautilus, etc.the Window that lost activation is unknown to Swing (getOppositeWindow() = null) - for instance, if the window was the Nautilus file browser or Firefox, any non-JVM window.the event passed to it is a WindowEvent of type WINDOW_GAINED_FOCUS (id=207) - precisely the kind we're interested in.The conditions for the processAppActivationEvents() method returning true (and therefore swallowing the event) are: If the method returns true, the method returns and the event never gets dispatched to the rest of the app - so the focus is not given to the editor in the newly activated window, and you get the irritating focus-is-in-the-other-intellij-window problem. If (processAppActivationEvents(e)) return I've checked out the IDEA source code and done some digging -it turns out the correct WINDOW_GAINED_FOCUS event is getting generated and placed onto the IdeEventQueue, but there's code that's been explicitly added to the processAppActivationEvents() method that specifically swallows this event! The line of code is this:
0 Comments
Read More
Leave a Reply. |