Date: Sat, 16 Apr 2005 08:39:22 +1000
From: "Eric Mangold"
Subject: [SDL] Window manager does not show SDL window titles

Hello,

I have an issue with SDL-using applications and the sawfish window manager.

The problem is that SDL windows do not show the window caption. My gnome
panel *does* show the window name, but the actual sawfish window frame
shows no caption at all. All other non-SDL applications that I use work
fine.

I tried a couple other window managers, and they *were* able to show the
SDL window captions correctly. Though there many be other WMs that can't.

I believe the problem is that SDL is using the UTF8_STRING type for the
window's WM_NAME and WM_ICON properties. In fact, WM_NAME and WM_ICON are
supposed to set to a TEXT type, usually STRING (ISO 8859-1).
The property names _NET_WM_NAME and _NET_WM_ICON_NAME should be used to
store the UTF8_STRING versions of the window title and icon name.

You can see the properties I refer to with a command like this:
xprop|grep -e "WM.*NAME"

Please note the freedesktop.org standard:
http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2506954

This page talks a little bit about the history of these properties. Just
search down the page for "WM_NAME".
http://www.cl.cam.ac.uk/~mgk25/unicode.html

Please let me know if I can be of any assistance in resolving this issue.

Thanks,
Eric Mangold

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401562
This commit is contained in:
Sam Lantinga 2006-03-20 07:31:36 +00:00
parent ed659a7d15
commit 4c3dfbcfe8
3 changed files with 72 additions and 42 deletions

View file

@ -57,8 +57,7 @@ SDL_X11_SYM(1,XModifierKeymap*,XGetModifierMapping,(Display*))
SDL_X11_SYM(1,int,XGetPointerControl,(Display*,int*,int*,int*))
SDL_X11_SYM(1,XVisualInfo*,XGetVisualInfo,(Display*,long,XVisualInfo*,int*))
SDL_X11_SYM(1,XWMHints*,XGetWMHints,(Display*,Window))
SDL_X11_SYM(1,Status,XGetWMIconName,(Display*,Window,XTextProperty*))
SDL_X11_SYM(1,Status,XGetWMName,(Display*,Window,XTextProperty*))
SDL_X11_SYM(1,Status,XGetTextProperty,(Display*,Window,XTextProperty*,Atom))
SDL_X11_SYM(1,Status,XGetWindowAttributes,(Display*,Window,XWindowAttributes*))
SDL_X11_SYM(1,int,XGrabKeyboard,(Display*,Window,Bool,int,int,Time))
SDL_X11_SYM(1,int,XGrabPointer,(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time))
@ -93,8 +92,7 @@ SDL_X11_SYM(1,XErrorHandler,XSetErrorHandler,(XErrorHandler))
SDL_X11_SYM(1,XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler))
SDL_X11_SYM(1,int,XSetTransientForHint,(Display*,Window,Window))
SDL_X11_SYM(1,int,XSetWMHints,(Display*,Window,XWMHints*))
SDL_X11_SYM(1,void,XSetWMIconName,(Display*,Window,XTextProperty*))
SDL_X11_SYM(1,void,XSetWMName,(Display*,Window,XTextProperty*))
SDL_X11_SYM(1,void,XSetTextProperty,(Display*,Window,XTextProperty*,Atom))
SDL_X11_SYM(1,void,XSetWMNormalHints,(Display*,Window,XSizeHints*))
SDL_X11_SYM(1,Status,XSetWMProtocols,(Display*,Window,Atom*,int))
SDL_X11_SYM(1,int,XSetWindowBackground,(Display*,Window,unsigned long))