Set the class hints for managed windows.

This commit is contained in:
Dirk Thierbach 1998-12-15 17:33:04 +00:00 committed by Alexandre Julliard
parent 30f503fd01
commit 9824ec404c
4 changed files with 26 additions and 5 deletions

View File

@ -32,6 +32,7 @@ extern int TSXPointInRegion(Region, int, int);
extern Region TSXPolygonRegion(XPoint*, int, int); extern Region TSXPolygonRegion(XPoint*, int, int);
extern int TSXRectInRegion(Region, int, int, unsigned int, unsigned int); extern int TSXRectInRegion(Region, int, int, unsigned int, unsigned int);
extern int TSXSaveContext(Display*, XID, XContext, const char*); extern int TSXSaveContext(Display*, XID, XContext, const char*);
extern int TSXSetClassHint(Display*, Window, XClassHint*);
extern void TSXSetWMProperties(Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*); extern void TSXSetWMProperties(Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*);
extern void TSXSetWMSizeHints(Display*, Window, XSizeHints*, Atom); extern void TSXSetWMSizeHints(Display*, Window, XSizeHints*, Atom);
extern int TSXSetRegion(Display*, GC, Region); extern int TSXSetRegion(Display*, GC, Region);

View File

@ -113,6 +113,7 @@ XSaveContext
XSendEvent XSendEvent
XSetArcMode XSetArcMode
XSetBackground XSetBackground
XSetClassHint
XSetClipMask XSetClipMask
XSetClipOrigin XSetClipOrigin
XSetClipRectangles XSetClipRectangles

View File

@ -219,6 +219,17 @@ int TSXSaveContext(Display* a0, XID a1, XContext a2, const char* a3)
return r; return r;
} }
int TSXSetClassHint(Display* a0, Window a1, XClassHint* a2)
{
int r;
TRACE(x11, "Call XSetClassHint\n");
EnterCriticalSection( &X11DRV_CritSection );
r = XSetClassHint(a0, a1, a2);
LeaveCriticalSection( &X11DRV_CritSection );
TRACE(x11, "Ret XSetClassHint\n");
return r;
}
void TSXSetWMProperties(Display* a0, Window a1, XTextProperty* a2, XTextProperty* a3, char** a4, int a5, XSizeHints* a6, XWMHints* a7, XClassHint* a8) void TSXSetWMProperties(Display* a0, Window a1, XTextProperty* a2, XTextProperty* a3, char** a4, int a5, XSizeHints* a6, XWMHints* a7, XClassHint* a8)
{ {
TRACE(x11, "Call XSetWMProperties\n"); TRACE(x11, "Call XSetWMProperties\n");

View File

@ -128,13 +128,20 @@ BOOL32 X11DRV_WND_CreateWindow(WND *wndPtr, CLASS *classPtr, CREATESTRUCT32A *cs
if(!wndPtr->window) if(!wndPtr->window)
return FALSE; return FALSE;
if ((wndPtr->flags & WIN_MANAGED) && if (wndPtr->flags & WIN_MANAGED) {
(cs->dwExStyle & WS_EX_DLGMODALFRAME)) XClassHint *class_hints = TSXAllocClassHint();
{
if (class_hints) {
class_hints->res_name = "wineManaged";
class_hints->res_class = "Wine";
TSXSetClassHint( display, wndPtr->window, class_hints );
TSXFree (class_hints);
}
if (cs->dwExStyle & WS_EX_DLGMODALFRAME) {
XSizeHints* size_hints = TSXAllocSizeHints(); XSizeHints* size_hints = TSXAllocSizeHints();
if (size_hints) if (size_hints) {
{
size_hints->min_width = size_hints->max_width = cs->cx; size_hints->min_width = size_hints->max_width = cs->cx;
size_hints->min_height = size_hints->max_height = cs->cy; size_hints->min_height = size_hints->max_height = cs->cy;
size_hints->flags = (PSize | PMinSize | PMaxSize); size_hints->flags = (PSize | PMinSize | PMaxSize);
@ -143,6 +150,7 @@ BOOL32 X11DRV_WND_CreateWindow(WND *wndPtr, CLASS *classPtr, CREATESTRUCT32A *cs
TSXFree(size_hints); TSXFree(size_hints);
} }
} }
}
if (cs->hwndParent) /* Get window owner */ if (cs->hwndParent) /* Get window owner */
{ {