On LockWindowUpdate: Locking the taskbar


Andy Visser posted to the Suggestion Box something that wasn’t so much a suggestion as a comment, presumably to get around the fact that comments on the original item had been closed: “I’ve found that the start bar seems to behave like it may be using this call incorrectly. I put my start bar on the left hand side of the screen. When I try to resize the bar (dragging its edge left and right), the system tray will dynamically move icons (based on tray width), seemingly disregarding the lock. The rest of the bar waits until MouseUp to redraw.”

Actually, the taskbar (that’s the name of the thing you’re referring to) does not call LockWindowUpdate at all, so what you’re seeing is not the result of any incorrect use of LockWindowUpdate. I’ve also been unable to reproduce the behavior you describe. I tried Windows XP, Windows Vista, and Windows 7 both with and without Show window contents while dragging enabled, and the notification area (that’s the name of the thing you’re referring to) repaints at the same time as the rest of the taskbar. I don’t see it “bypassing” anything.

This comment demonstrates one of the common problems with bug reports submitted from the field: The description of the problem rarely includes the system configuration under which the problem occurs—they often don’t even mention what operating system they’re running! The person submitting the comment generally assumes that you will somehow know how their computer is configured (or believes that the problem is not configuration-dependent). This leaves people like me trying to reproduce the problem on various systems with various configurations before finally giving up and saying “Sorry, I don’t see it.”

In some cases, the configuration setting that created the unwanted behavior is a setting whose sole purpose is to establish the unwanted behavior. For example, a customer reported, “Windows Vista is not displaying the user’s picture on the Start menu or the logon screen. We discovered that the Apply the default user logon picture to all users policy prevents the user’s customized picture from being displayed. We removed that policy, but that did not solve the problem. Is there anything else that might be causing this?”

I found it interesting that the customer initially wondered why the user’s custom picture wasn’t showing up, when they had explicitly set the policy that says “Do not use the user’s custom picture.” But at least they figured that part out on their own.

After some more questions, the customer explained that removing the policy restored the user’s custom picture to the Start menu, but it nevertheless did not appear on the logon screen. (Thereby illustrating the problem of vague antecedents. When they wrote “that did not solve the problem”, they weren’t clear what the problem was. It turns out that they meant “that only solved part of the problem”: The user picture appears on the Start menu, but not on the logon screen.)

After additional rounds of troubleshooting, the customer eventually revealed that they had also set the policy Do not display last logged on user name. Um, if you disable showing the name of the last logged-on user, then the picture of the user doesn’t appear either. (Maybe they took too literal a reading of the policy, expecting it to hide the name but not the picture? What would be the purpose of that? Exercise: Why isn’t the policy called the more accurate Do not display information about last logged on user?)

Comments (18)
  1. brantgurga says:

    So much is configurable on a PC. How does a user determine what to send? A user could send everything, but isn't that a bunch of unuseful junk most of the time? And if the user did send everything, how do you figure out what of that is relevant?

    [It's quite simple: Since the person receiving your problem report knows nothing about your configuration, simply attempt to reproduce the problem using nothing but the information in your problem report. Start with a freshly-installed copy of Windows (hopefully your problem report says what version of Windows to start with) and take it from there. Can you reproduce the problem given only the information in the problem report? -Raymond]
  2. Maurits says:

    Guess: since, at the time the policy was named, the only information displayed was the user name.

  3. Joshua says:

    Haha. This stuff gets nasty.

    I've a rare set of configurations that lead to me finding strange bugs. Since these configurations are set due to a rare eye problem, these also end up being tagged accessibility.

    I'm using the so-called free accessibility you get if you write your code correctly in the first place but lots of people don't and have no clue what to test for (hint: do not assume window colors or web browser colors. Do not assume background images display).

    I try to include the relevant information but sometimes I miss something and even Microsoft has a hard time reproducing the bug I encountered.

    I've been on the receiving side of incomplete bug reports so I feel your pain too.

  4. Gabe says:

    It might be helpful to make "the original item" a link to the post that the comment was referring to, although since there it was a week-long series, maybe just the most relevant one would do.

  5. Aneurin Price says:

    I know this isn't really the point, but FWIW I can reproduce the behaviour in question. With 'Show window contents while dragging' disabled, the icons in the notification area reflow before the mouse button is released, even though the taskbar itself isn't redrawn. I'm using Windows XP x64, with a custom theme which I guess might have an effect.

    (Sadly after that experiment the taskbar is now attempting to show my applications in a vertical list even though it's now back at the bottom of the screen, leading to the first entry falling half off the bottom of the screen, and the rest being lost entirely :(.)

    [Okay, now I see what you're talking about, but I'm not sure what tue question is. (Andy's question is "What gives?" which is kind of vague.) LockWindowUpdate is not involved because nobody is calling LockWindowUpdate. The window is just doing some work in response to WM_SIZING. -Raymond]
  6. 640k says:

    Usually people which reports bugs thinks developers have all code they ever written memorized down to every single loc, and that developers don't want anything else than to jump straight into their code and fix bugs. The reality couldn't be further away. Usually developers have rather limited possibilities to edit code they written, in the common case they doesn't even own the code they written, they are usually not the legal author!

    en.wikipedia.org/…/Work_for_hire

  7. JonPotter says:

    I'm curious as to if you had been able to reproduce the issue, whether you would have actually done something about getting it fixed?

    We've given up reporting cosmetic bugs to Microsoft, because after repeatedly putting the effort in to document the problem, write an app that demonstrates it, find the right person to submit it to, wait 3 months for a response that misunderstands the original problem, write back, wait another 3 months for a response that finally confirms the problem, what we most often find is that, next time a new version of Windows comes out, nothing has changed.

  8. Wladimir Palant says:

    Yes, I would be sooooo happy if anybody reporting a bug would read http://www.chiark.greenend.org.uk/…/bugs.html first. Only a few hours ago I had somebody file a bug writing whole three paragraphs of text – and not a single piece of useful information, probably hoping that I would somehow read his mind.

    As to your exercise – I would guess that this policy name comes from Windows 2000 or earlier where there wasn't any other information to display, only the user name. And after that there wasn't an incentive significant enough to change it. You know, not much gain but lots of documentation and books and PowerPoint presentations that need to be rewritten. Not to mention the applications that somehow managed to hardcode the policy by its name…

  9. TehShrike says:

    Because if people turned on a policy called "Do not display information about last logged on user", they would call in wondering why they couldn't see the *name* of the last logged on user :-P

  10. Alexandre Grigoriev says:

    @JonPotter:

    True words. Every bug goes through like at least 3 levels; every level won't often bother to read the case history, and will just request all the same information again. 99.9% of the time they don't have access neither to the source code, nor to the code owner.

  11. James Sutherland says:

    Twice in the last week I had requests to "fix" an email account, because mail which was intended for that recipient but with the address wrong was failing to arrive. In one of the two cases, the sender had somehow entered a very obviously wrong address into his address book; the other involved a cut and paste picking up stray punctuation. I am starting to wonder if I can find a vendor doing "user replacement parts" which do what the name implies…

  12. Aneurin Price says:

    "[Okay, now I see what you're talking about, but I'm not sure what tue question is. (Andy's question is "What gives?" which is kind of vague.) LockWindowUpdate is not involved because nobody is calling LockWindowUpdate. The window is just doing some work in response to WM_SIZING. -Raymond]"

    I guess that's probably all he wanted to know. *shrug*…

  13. Anonymous Coward says:

    Although one shouldn't be too trigger happy in closing things with WORKSFORME.

    On a tracker I used to work with, there always was a steady stream of ‘button X doesn't work’ or ‘if you do X, Y happens’ type reports. A cow-orker used to routinely close these without a second look, citing tracker policy. But it turned out that in every single case, the issue was easily reproduced and usually indicative of a serious bug.

    Users do not always give you all the information you want. But I've never assumed that therefore their problem is non-existent or unimportant. Sometimes they don't know any better, sometimes they lack the time (I saw someone submit fifty issues on a day – that would have been a full-time job, had he followed policy), sometimes they think the issue is not dependent on configuration and they saw it happening on all versions to date.

  14. Wisefaq says:

    One feature which SHOULD improve things is the Problem Steps Recorder tool.  I've been using it with my Windows 7 customers, and it makes problem diagnosis a little bit easier.  ( technet.microsoft.com/…/dd320286.aspx )

  15. lefty says:

    "Why isn't the policy called the more accurate Do not display information about last logged on user?)"

    Is Microsoft's time machine broken *again*?

  16. someone says:

    But why show an ugly empty frame? A frame is supposed to be around something. When that policy is enabled, the frame should be hidden too. Better still, bring back the real Classic logon style as an option that shows the domains in a dropdown (which also broke btw in Vista).

  17. Paul says:

    I get a load of

    • "My email doesn't work, can you help?"

    = "Not really. Not over the phone. You say it's your laptop that's gone wrong, not your internet, so bring the laptop to me and I will look at it"

    • "Ok"

    …….

    • "My email still doesn't work"

    = "Cannot fix over phone. You make no sense. Laptop. Bring. Show me."

    • "Ok, I'll do that next time I see you"

    = "Fine"

    ……..

    • "I still have this problem with my email"

    1) Bad bug report

    2) Dense user

  18. Medinoc says:

    I think that by "bar", Andy Visser meant the QuickLaunch bar.

Comments are closed.