[windows] tiling window manager
void UpdateMousePos(HWND hwnd)
{
POINT cursor;
GetCursorPos(&cursor);
if cursor.x < screen_x) || (cursor.x > screen_x + screen_width) || (cursor.y < screen_y) || (cursor.y > screen_y + screen_height {
if (mouse_pos_out == 0) {
mouse_pos_out = 1;
UnregisterHotkeys(hwnd);
}
} else {
if (mouse_pos_out == 1) {
mouse_pos_out = 0;
Sleep(500);
RegisterHotkeys(hwnd);
}
}
}
Почему они pollят мышку вместо ловли сообщений о покидании мышкой окна? Для чего нужен sleep(500)?
1) защита от ресайза - снятие border, можно поставить обратно и сильно удивить менеджер (хотя такое бывает очень редко)
2) никак не обрабатывается мышь - соответственно, размеры окошек с её помощью не задашь
3) с клавы тоже не задашь. Там используется подход: одно главное окно на полэкрана, куча вспомогательных поровну делят оставшуюся половину. Произвольное окно можно поставить на главную позицию. И только главное окно там и можно расширять/удлинять.
4) Прицепили зачем-то поддержку прозрачности (ставится константой для всех неактивных окон)
SetLayeredWindowAttributes(hwnd, RGB(255, 0, 0 alpha, LWA_COLORKEY | LWA_ALPHA);
при этом ещё зачем-то обратили красный цвет в ключевой.
под виндой всё не как у людей.а винда здесь при чем?
взял где-то говно-поделку, и на основе ее кода наезжаешь на винду.
не хорошо, карма портится...
да не при чём. Просто я прямо реализованных тайловых менеджеров под винду не видел. А эта поделка - первая найденная, которую хоть с натяжкой можно оконным менеджером назвать. Видимо делалась по мотивам dwm - похож интерфейс.
> Почему они pollят мышку вместо ловли сообщений о покидании мышкой окна?
Для стандартных компонент нет поддержки того, что мышь покинула пределы. Обычно решается путем сабклассинга.
> Для чего нужен sleep(500)?
Если шевелить мышкой у границы, то косяк какой то есть видимо с RegisterHotkeys.
Если шевелить мышкой у границы, то косяк какой то есть видимо с RegisterHotkeys.ну значит нужно установить минимальный интервал обработки. спать в программе в цикле обработки - это не красиво.
Кто юзал под виндой сабж?а нахрена вообще это неудобное убожество?
Что скажете о http://dockbox.demonastery.org/ ?
ну у меня есть знакомый, который сидит под таким же убожеством в никсах, хотя и не столь криво реализованном
Оставить комментарий
yroslavasako
Кто юзал под виндой сабж?Что скажете о http://dockbox.demonastery.org/ ?