This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Custom icons per window class/name patch


Hi all,

while testing some KDE3 applications, I recognized that the application window
class distinction by WM_CLASS isn't enough, because kde applications uses
different icons for different windows of an application. This applications uses
the WM_WINDOW_ROLE property to distingh for example message box windows from
basic windows. Currently the icons of the main window are overwritten, because
all the windows of an application share the same window class.
The appended patch fix this. (Additional this patch fixes one segfault in
GetClassHint, I have recognized causes by a null WindowPtr)

Additional I have noticed the following issues:

1. Handling of modal dialogs and message boxes:

KDE applications support a type of depending dialogs (for example konsole and
about window) in the manner of the windows modal dialog type (not exactly),
which is used to group such windows in the task manager.
This allows the following features:
1. Hiding all application windows in case the basic one is set to hide
2. prevent displaying each window of an application in the task bar
3. moving all application related windows to another desktop
... may be more i cannot see now

KDE applications uses the WM_TRANSIENT_FOR property to distinuish normal windows
from depending windows (WM_TRANSIENT_FOR is set for a depending window).
http://tronche.com/gui/x/icccm/sec-4.html.

May be there is an solution to use modale windows for this type of windows.
Currently I have no implementation for this. This is just a hint.

2. KDE uses 16x16x16 sized icons for "modal dialogs" (48x48x16 for regular
icons), which seems to be not designed for displaying un the task bar or ALT-TAB
process switching window. Currently this type of icons are displayed wrongly.
CreateIcon() seems to stretch this icon so this result in displaying black
horizontal stripes. This problem would be solved, when issue 1. would be
implemented.

Cheers
Ralf


Attachment: icons_with_window_role.dif
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]