diff Gui/wm/ws.c @ 5986:d34622ebaf45

window resize bug fixed
author pontscho
date Sun, 05 May 2002 18:46:42 +0000
parents 60cf2bca993f
children b5fb9a927bf3
line wrap: on
line diff
--- a/Gui/wm/ws.c	Sun May 05 18:16:27 2002 +0000
+++ b/Gui/wm/ws.c	Sun May 05 18:46:42 2002 +0000
@@ -361,6 +361,7 @@
  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 @@
    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 @@
  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 @@
    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 );
 }