воскресенье, 2 января 2011 г.

Насчёт LockWindowUpdate: блокировка Панели задач

Это перевод On LockWindowUpdate: Locking the taskbar. Автор: Реймонд Чен.

Andy Visser отправил в Suggestion Box сообщение, не являющееся предложением, а скорее комментарием к записи - вероятно как обходной путь из-за того, что комментарии к исходной записи были заблокированы:
Я обнаружил, что панель Пуск иногда начинает вести себя как если бы она неверно использовала бы этот вызов. Я располагаю мою панель Пуск в левой части экрана. Когда я пытаюсь изменить размер панели (перетаскивая границу влево-вправо), то системный трей динамически двигает иконки (в зависимости от ширины трея) - что не учитывает блокировку. Остальная часть панели ждёт отпускания кнопки мыши для перерисовки.

Вообще-то Панель задач (это правильное название той вещи, на которую ты ссылаешься) вообще не вызывает LockWindowUpdate, так что то, что ты видишь, никак не может являться неверным использованием LockWindowUpdate. Я также не смог воспроизвести это поведение у себя. Я пробовал Windows XP, Windows Vista и Windows 7, как с опцией "Показывать содержимое окна при перетаскивании", так и без него". И область уведомлений (это правильное название той вещи, на которую ты ссылаешься) перерисовывается одновременно с остальной Панелью задач. Я не вижу никакого "обходного" поведения.

Этот комментарий демонстрирует общую проблему с баг-отчётами, присылаемых с реальных машин: описание проблемы почти никогда не упоминает конфигурацию машины, на которой воспроизводится проблема - часто люди даже не говорят об ОС, с которой они работают! Человек, отправляющий баг-отчёт, обычно предполагает, что вы как-то узнаете, как сконфигурирован его компьютер (или же он верит, что проблема не зависит от конфигурации). Это приводит к тому, что люди вроде меня пытаются воспроизвести проблему на нескольких конфигурациях, после чего они говорят: "Извини, но я не вижу проблемы".

В некоторых случаях настройка конфигурации, которая создала нежелательное поведение, является настройкой, чей смысл существования заключается в установлении этого поведения. К примеру, один наш клиент отправил такой баг-отчёт: "Windows Vista не отображает картинку пользователя в меню Пуск и экране входа. Мы обнаружили, что политика "Применить картинку по-умолчанию ко всем пользователям" не даёт показываться скастомизированной картинке пользователя. Мы удалили эту политику, но это не решило проблему. Есть ли ещё что-то, что может приводить к этому?"

Я нахожу любопытным, что клиент задумывался, почему это пользовательская картинка не показывается - когда у него была включена политика, явно говорящая "Не использовать свою картинку". Но хотя бы они разобрались с этим вопросом сами.

После дополнительных вопросов, клиент объяснил, что удаление политики восстановило картинку пользователя в меню Пуск, но она не появилась на экране входа (таким образом, демонстрируя проблему расплывчатых утверждений. Когда они написали "это не решило проблему", они не указали, о какой конкретно проблеме они говорят. Оказалось, что они имели ввиду "это решило часть проблемы": картинка пользователя появилась в меню Пуск, но не на экране входа).

После ещё одного раунда игры в вопросы-ответы, клиент обнаружил, что он включил политику "Не показывать последнего вошедшего в систему пользователя". Ээээ... если ты отключаешь показ имени последнего пользователя, то картинка же тоже не появится (быть может, они слишком буквально понимают политики, ожидая что эта отключит показ имени, но не картинки? И в чём же был бы смысл такой политики?)

Упражнение: почему политика не называется "Не показывать информацию о последнем вошедшем в систему пользователе"?

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.