Bluegem
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору tramparamparam02 Цитата: Браузер тут при том, что вы сами писали конкретно о проблеме с окнами браузера, поэтому я привёл это как пример. На самом деле, конечно же, разницы нет, какая именно программа. | А там не только с браузером это происходит, если окно тикера уже было чем-то перекрыто, то дальше его даже родное окно The Bat! может перекрыть, и грустно и смешно... Цитата: Представим себе такую картину. Прога A с циклом каждые 0,5 ms активирует фокус своего окна, чтобы оно оказалось поверх всех прочих. Прога B делает то же самое. И прога C тоже. И ещё десяток других. Какое же из окон в конце концов останется поверх других окон? Или разработчики начнут соревноваться за самый короткий цикл Думаю, что будет путаница и система юзер свихнётся, нет? | Ну представить то я могу, только в реальности этого никогда не будет. Так зачем фантазировать? Просто вы мне объясните зачем десятку прог каждые пол секунды выводить свое окно поверх остальных? Серьезно, зачем? В реальности ведь все совсем по-другому, во-первых используется куда более длинный таймер, для всяких уведомлений - это часто минуты, иногда десятки минут, а то и часы(это я про антивирусы, предложение перезагрузки и тому подобное), вон мой OpenVPN клиент выдает предложение обновиться раз в сутки примерно с вылезающим поверх всего окном, и именно для The Bat! подойдет таймер где-то секунд в 10, смысл которого только вывести окно на передний план, чтобы человек его заметил, а не постоянно его там держать. Во-вторых зачем этот функционал нужен десятку прог? Это узкоспециализированные возможности программы, которые используются обычно там, где они нужны, что по-моему очевидно, и в этом случае дизайн всплывающего окна делается почти всегда таким образом, чтобы максимально не мешать пользователю, что хорошо видно на примере MailTicker'а, где мы имеем дело с маленьким прозрачным окошком. В результате на практике, даже если мы получим ситуацию, когда вылезут одновременно два окна уведомления например от антивируса и The Bat! - проблем не будет вообще никаких. Сначала у вас появится окно антивируса, где реально счетчик будет стоять на минуты, его моментально перекроет Тикер, при этом из-за особенностей Тикера вы будете видить и его и уведомление антивируса, если вас нет долго у компьютера, его на максимум какие-то жалкие 10 секунд успеет перекрыть уведомление антивируса, чтобы на ближайшие минут 5 Тикер опять был сверху. Вот, ей богу, элементарные вещи, а вы в них почему-то проблему видите. Потом я сказал, что вариант с счетчиком - это черновой вариант, можно и чище если копать проблему(чего разработчики явно делать не хотят, отчасти из-за людей с вашей позицией), в частности нужно разбираться почему Тикер перестает быть видным. Ниже Гифка, чтобы вы видели как оно происходит. Зеркало Я специально сделал захват так, чтобы было видно, что окно The Bat не имеет свойства быть поверх всех, и оно даже не активно, о чем свидетельствуют появляющиеся тени во время нажатия на оное. То есть понятно, что не только браузер может закрыть Тикер, а фактически что угодно при определенных условиях? Так вот возвращаясь к корню проблемы, есть у меня гипотеза, которую хорошо бы проверить, у меня сейчас такой возможности увы нет. Для этого нужно поставить какую-то из The Bat! ранних 4-х версий, 4.2 например, и посмотреть как там работает Тикер. В поздних версий The Bat! окно Тикера висит ВСЕГДА не зависимо от непрочитанных писем, программа только добавляет атрибут "WS_VISIBLE" в стили окна, когда нужно, чтобы Тикер появился. У меня такое чувство, что в старых версиях The Bat! само окно Тикера создавалось каждый раз по новой и за счет этого оно стабильно вылезало поверх остальных, то есть не было повода для накопления возможных ошибок на уровне WinAPI, где в какой-то момент момент окно теряет свое свойство быть поверх других. Или может наоборот это особенность WinAPI, которая не дает окну эксклюзивно быть поверх остальных, тут нужно читать MSDN и смотреть какую конкретно функцию использует клиент. А это может только разработчик. Но опять же ничего сложного - было бы желание. Если у вас есть возможность, поднимите эту тему с саппортом. Добавлено: Цитата: Кто-нибудь может подтвердить или опровергнуть эту гипотезу? | Ну все примерно так как вы и описали. Точнее пожалуй скажет только разработчик, потому что не известно по какому алгоритму оно выбирает когда рвать цитаты, а когда тянуть. | Всего записей: 267 | Зарегистр. 03-10-2009 | Отправлено: 00:07 22-01-2017 | Исправлено: Bluegem, 00:13 22-01-2017 |
|