summaryrefslogtreecommitdiffstats
path: root/Gui/wm/ws.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/wm/ws.c')
-rw-r--r--Gui/wm/ws.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c
index d19d7564df..b5b3b631b7 100644
--- a/Gui/wm/ws.c
+++ b/Gui/wm/ws.c
@@ -361,6 +361,7 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
win->SizeHint.y=win->Y;
win->SizeHint.width=win->Width;
win->SizeHint.height=win->Height;
+
if ( D & wsMinSize )
{
win->SizeHint.flags|=PMinSize;
@@ -373,6 +374,7 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
win->SizeHint.max_width=win->Width;
win->SizeHint.max_height=win->Height;
}
+
win->SizeHint.height_inc=1;
win->SizeHint.width_inc=1;
win->SizeHint.base_width=win->Width;
@@ -770,9 +772,12 @@ void wsResizeWindow( wsTWindow * win,int sx, int sy )
win->Width=sx;
win->Height=sy;
- win->SizeHint.flags=PSize | PWinGravity;
+ win->SizeHint.flags=PPosition | PSize | PWinGravity | PBaseSize;
+ win->SizeHint.x=win->X;
+ win->SizeHint.y=win->Y;
win->SizeHint.width=win->Width;
win->SizeHint.height=win->Height;
+/*
if ( win->Property & wsMinSize )
{
win->SizeHint.flags|=PMinSize;
@@ -785,9 +790,13 @@ void wsResizeWindow( wsTWindow * win,int sx, int sy )
win->SizeHint.max_width=win->Width;
win->SizeHint.max_height=win->Height;
}
+*/
win->SizeHint.win_gravity=StaticGravity;
+ win->SizeHint.base_width=sx; win->SizeHint.base_height=sy;
+ if ( !wsIsKDE ) XUnmapWindow( wsDisplay,win->WindowID );
XSetWMNormalHints( wsDisplay,win->WindowID,&win->SizeHint );
XResizeWindow( wsDisplay,win->WindowID,sx,sy );
+ XMapRaised( wsDisplay,win->WindowID );
if ( win->ReSize ) win->ReSize( win->X,win->Y,win->Width,win->Height );
}