Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 317390 - Editors hang for several seconds when processing input when Windows On-Screen Keyboard accessory is running
Summary: Editors hang for several seconds when processing input when Windows On-Screen...
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.5.2   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 3.6.1   Edit
Assignee: Carolyn MacLeod CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 271291 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-06-20 19:46 EDT by Andrew Tonner CLA
Modified: 2010-07-02 04:59 EDT (History)
5 users (show)

See Also:
Silenio_Quarti: review+
eclipse.felipe: review+


Attachments
patch (1.20 KB, patch)
2010-06-22 14:58 EDT, Carolyn MacLeod CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Tonner CLA 2010-06-20 19:46:12 EDT
Build Identifier: 20100218-1602

When Windows' On-Screen Keyboard accessory is open, Eclipse editors hang for several seconds at a time when I type.  This happens even when Eclipse is being used from a regular keyboard and the On-Screen Keyboard is minimized.  Closing the On-Screen Keyboard makes the problem go away.

Workaround: Close On-Screen Keyboard. If you need an on-screen keyboard for accessibility reasons, there are several free ones available on the Internet that work on Windows 7 and don't cause this problem.  Obviously there are going to be users affected by this can't install software on the systems they use Eclipse on, so a real fix is needed.

My Eclipse Galileo (3.5) installation claims to be build 20100218-1602. 
I'm using RSE/TM, Mylyn, Subclipse 1.6, and Pydev 1.5.7. Before you ask, I tried uninstalling PyDev and it doesn't fix the problem.
I'm using 32-bit Sun Java 6 SE runtime 1.6.0_20-b02. 
I'm running on Windows 7 Ultimate 64-bit on a Core 2 Quad with 8GB of RAM. 
I'm using NVIDIA GeForce 9800 GT and GeForce 8800 GS graphics cards. Device manager tells me that I'm using driver version 8.16.11.9107 of 27/09/2009.

Related forum post: http://www.eclipse.org/forums/index.php?t=msg&goto=541401&#msg_541401

Reproducible: Always

Steps to Reproduce:
1. Launch Eclipse without On-Screen Keyboard running
2. Open a file in Eclipse
3. Do some editing in the file. Everything works normally.
4. Launch On-Screen Keyboard (you can use it, or use the regular keyboard and even minimize the On-Screen Keyboard or move it out of the way)
5. Do some more editing in the file. Eclipse will process the first couple of keystrokes, then go to 100% CPU for a few seconds, the Eclipse window will blink and the Eclipse taskbar item will disappear and reappear, Eclipse will process all of the backlog of keystrokes will appear, Eclipse will go to 100% CPU for a few seconds, rinse, repeat.
Comment 1 Prakash Rangaraj CLA 2010-06-21 01:49:52 EDT
Sounds like SWT bug. Moving to SWT for comments
Comment 2 Felipe Heidrich CLA 2010-06-21 09:45:11 EDT
Happens for me. I can reproduce it with the CustomControlExample.
In StyledText#initializeAccessible(), it works if I remove the code that adds the accessible control listener. If I remove all the code in the method, and add an empty accessible control listener the problem happens.
Comment 3 Carolyn MacLeod CLA 2010-06-22 14:58:24 EDT
Created attachment 172449 [details]
patch

This patch fixes the problem, and this fix will be in Eclipse 3.6.1.

The fix is to return CHILDID_SELF in get_accFocus when the object itself has focus, instead of returning the IDispatch pointer for the object.
Comment 4 Carolyn MacLeod CLA 2010-06-22 15:01:21 EDT
*** Bug 271291 has been marked as a duplicate of this bug. ***
Comment 5 Carolyn MacLeod CLA 2010-06-30 13:56:32 EDT
Fixed > 201007630

I have released this patch to the 3.6.1 stream (aka R3_6_maintenance branch)
and also into HEAD for 3.7.
Comment 6 Dani Megert CLA 2010-07-02 04:59:45 EDT
Verified in N20100701-2000 that it fixes my original problem (bug 271291).