Skip to content
Snippets Groups Projects
Commit 9824ec40 authored by Dirk Thierbach's avatar Dirk Thierbach Committed by Alexandre Julliard
Browse files

Set the class hints for managed windows.

parent 30f503fd
No related branches found
No related tags found
No related merge requests found
......@@ -32,6 +32,7 @@ extern int TSXPointInRegion(Region, int, int);
extern Region TSXPolygonRegion(XPoint*, int, int);
extern int TSXRectInRegion(Region, int, int, unsigned int, unsigned int);
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 TSXSetWMSizeHints(Display*, Window, XSizeHints*, Atom);
extern int TSXSetRegion(Display*, GC, Region);
......
......@@ -113,6 +113,7 @@ XSaveContext
XSendEvent
XSetArcMode
XSetBackground
XSetClassHint
XSetClipMask
XSetClipOrigin
XSetClipRectangles
......
......@@ -219,6 +219,17 @@ int TSXSaveContext(Display* a0, XID a1, XContext a2, const char* a3)
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)
{
TRACE(x11, "Call XSetWMProperties\n");
......
......@@ -128,13 +128,20 @@ BOOL32 X11DRV_WND_CreateWindow(WND *wndPtr, CLASS *classPtr, CREATESTRUCT32A *cs
if(!wndPtr->window)
return FALSE;
if ((wndPtr->flags & WIN_MANAGED) &&
(cs->dwExStyle & WS_EX_DLGMODALFRAME))
{
if (wndPtr->flags & WIN_MANAGED) {
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();
if (size_hints)
{
if (size_hints) {
size_hints->min_width = size_hints->max_width = cs->cx;
size_hints->min_height = size_hints->max_height = cs->cy;
size_hints->flags = (PSize | PMinSize | PMaxSize);
......@@ -143,6 +150,7 @@ BOOL32 X11DRV_WND_CreateWindow(WND *wndPtr, CLASS *classPtr, CREATESTRUCT32A *cs
TSXFree(size_hints);
}
}
}
if (cs->hwndParent) /* Get window owner */
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment