Set the class hints for managed windows.
This commit is contained in:
parent
30f503fd01
commit
9824ec404c
|
@ -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);
|
||||||
|
|
|
@ -113,6 +113,7 @@ XSaveContext
|
||||||
XSendEvent
|
XSendEvent
|
||||||
XSetArcMode
|
XSetArcMode
|
||||||
XSetBackground
|
XSetBackground
|
||||||
|
XSetClassHint
|
||||||
XSetClipMask
|
XSetClipMask
|
||||||
XSetClipOrigin
|
XSetClipOrigin
|
||||||
XSetClipRectangles
|
XSetClipRectangles
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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 */
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue