Freigeben über


IE7 Menu Flickering / Toggling Glitch

Just before we shipped IE7 we heard sporadic reports of a "Heisenbug" where users would click a tab or click in the address bar, and the IE window would start shaking (or "flickering", or "menus bouncing up and down", depending on how users described it). We researched the bug and contacted some end users, but it remained a mystery until an employee on another team reported the issue and we were able to do some local debugging.

To make a long story short, it turned out to be a issues between IE7's multi-threaded design, the auto-hide menus, and an optional "Office Handwriting" component which provides an on-screen keyboard that doesn't get installed with the default settings. When the user clicks a tab (or performs certain other UI operations) the on-screen keyboard would detect that a UI thread is losing focus and uses SendInput() to synthesize the Alt-Up keystroke (along with several others). Alt-Up is the signal in IE to give focus to the menus, auto-expanding them if needed. This new focus change would then be detected by the on-screen keyboard, resulting in it sending another Alt-Up keystroke which, under the right circumstances, causes the cycle to repeat until the user clicks outside the IE window.

My understanding is that this component isn't widely used anymore (it's not the same on-screen keyboard that Tablet PC uses), and of the people I've been in contact with who reported this problem, none of them were actually using the functionality it provides. Fortunately it's easy to disable. From the IE7 Release Notes:

To work around this problem, disable the On-Screen Keyboard component of the Handwriting Recognition Service:

  1. Click Start, and then click Control Panel.
  2. Click Regional and Language Options.
  3. Click the Languages tab.
  4. Click the Details button.
  5. Under Handwriting Recognition select On-Screen Standard Keyboard.
  6. Click Remove.
  7. Under Handwriting Recognition select On-Screen Symbol Keyboard.
  8. Click Remove.
  9. Click OK twice to save and exit changes.
  10. Restart Internet Explorer 7.

(BTW: I'm not really blaming the on-screen keyboard for having this behavior; it's just an unexpected interaction. Coincidenally, years ago I wrote a piece of software similar to Synergy/Multiplicity which does a similar thing to prevent keys from getting "stuck" down if you had a key pressed while moving the mouse between machines. But it didn't break IE7. ;-) )

Comments

  • Anonymous
    December 14, 2006
    This is what has been happening to me! And the fix seems to have worked.

  • Anonymous
    December 20, 2006
    Hi, I do see the same problem on IE6 and a brand new windows XP mediacenter. I tried to follow your instruction to correct the problem; But I really can not find the "on-screen keyboard" configuration under "languages" Do you have any idea where I should look?

  • Anonymous
    December 25, 2006
    Thanks.  This has fixed my problem with flickering... hopefully.  I'm using Windows 2003 Server with IE7.  My wife almost demanded I download another browser as it was causing her constant frustration as a heavy browser user.  Think you should get a KB article together and get onto the user groups with this one as there seems to be a lot out there. Thanks Glenn

  • Anonymous
    December 26, 2006
    Thanks for the fix. I had to switch to firefox for almost a month because of this bug (You seems to be too nice to the IE developers - from your explanation it seems to me as a fundamental design issue). Hoping to get back on IE. Thanks, Musthafa

  • Anonymous
    December 29, 2006
    I have been having the exact same problem for the last week with IE6. Like Jan above I do not have the "Handwriting Recognition" or "On-Screen Standard Keyboard" options under the "Details" tab. But I think this is greater than an IE problem because I get the menu flickering on all drop-downs in Windows. I just upgraded to IE7 and the problem remains. I cannot use my browser anymore and will have to change if there is no real fix. Any other ideas?? Thanks, Tatiana

  • Anonymous
    January 09, 2007
    Jan and Tatiana, I had not previously heard of similar problems with IE6 (and other apps' menu flickering), but I will blog about this now to see if maybe someone else has any ideas.

  • Anonymous
    January 09, 2007
    In a previous post I talked about a subtle bug between IE7 and the Office Handwriting recognition service

  • Anonymous
    January 12, 2007
    Yes, this fiex my IE7 shacking problem, I was un-install once, and trying to uninstall again but happy to found this blog. Thanks.

  • Anonymous
    January 18, 2007
    Thanks, this fixed my problem. I have had this problem for about a week or so, and it really gets on your nerves. I also went to Microsoft’s IE 7 web site and could not find anything under the troubleshooting section. I believe they may need to come out with a patch or something, but its not like I was using the on screen keyboard anyway, in fact really didn’t even know it was there. Thanks again.

  • Anonymous
    January 23, 2007
    The comment has been removed

  • Anonymous
    January 28, 2007
    Cooool..Muchas Gracias Senor...this was a dream solution...Thanz Goldy

  • Anonymous
    January 30, 2007
    Like Tatiana, I have been having the flickering problem with menus of almost all applications.  I have IE6 and Firefox.  I noticed this first on Firefox and then on other apps.  Lukily it happens on certain days and it dissappear for sometime. When this happens all Window screens behave in a strange fashion, for example, if I want to drag one screen to the right or in any direction, the whole screen slips rapidly to the left.  It has been becoming worse lately.  Recently after the flickering started, it freezes when I try to restart or power off.