When I start a docking-capable application (e.g. Opera, SIM, linuxdc++), xxkb will attach it's flag icon to the dock (partly covering the clock in my xxkb and IceWM config) as well as to the app's window. However, if the app is already started, only the main window is processed, which is the right behaviour. After several hours of debugging, I was able to locate the root of the problem and to create a "fix". When xxkbstarts, it calls the XQueryTree (3) function which returns a list of all windows. The docklets never get into this list. However, when processing a ReparentNotify event, xxkb does not know whether the window is a docklet or a real app. My solution was to iterate the XQueryTree's return and only call AddWindow if the window is there. Honestly, I find it a bit ugly, but I haven't found a better way. The patch is attached. Is there a more elegant solution?
Created attachment 2032 [details] The patch that fixes this bug See also the project's BZ ticket: http://sourceforge.net/tracker/index.php?func=detail&aid=1734282&group_id=84234&atid=572200 I've seen no reaction there yet.
xxkb team has accepted the patch.
Адаптировал патч к xxkb-1.10-alt3. Описание данного бага (коротко): Если xxkb настроен так, чтобы показывать флажок на каждом окне, и запущен IceWM, то при запуске приложения, которое отображает себя в доке (opera, sim, linuxdcpp etc) появляется паразитный флажок поверх часов IceWM, который никакого смысла не несет, только вид портит. Если приложение запущено до xxkb, эффекта не наблюдается. Описание патча: Перебираем все окна, и только если это реальное окно настоящего приложения вешаем на него флажок. Примечание: Наверняка можно сделать намного лучше.
Created attachment 2233 [details] Patch for xxkb-1.10-alt3
Константин, мож возьмётесь поддерживать xxkb? У меня ещё #1712 наболело, хотя сейчас ловится реже...
Ну, страшно конечно =) Но попробовать можно, надо ж с чего-то начинать.
Applied in xxkb-1.11-alt1