diff Gui/wm/ws.c @ 1823:a6c67352ccac

fix some bug.
author pontscho
date Sat, 01 Sep 2001 17:53:07 +0000
parents 9c674dc76ff3
children 4984bd55518e
line wrap: on
line diff
--- a/Gui/wm/ws.c	Sat Sep 01 15:49:31 2001 +0000
+++ b/Gui/wm/ws.c	Sat Sep 01 17:53:07 2001 +0000
@@ -439,6 +439,7 @@
 
  win->Visible=0;
  win->Focused=0;
+ win->OFocused=0;
  win->Mapped=0;
  win->Rolled=0;
  if ( D & wsShowWindow ) XMapWindow( wsDisplay,win->WindowID );
@@ -481,6 +482,7 @@
  win->KeyHandler=NULL;
  win->Visible=0;
  win->Focused=0;
+ win->OFocused=0;
  win->Mapped=0;
  win->Rolled=0;
 }
@@ -528,10 +530,16 @@
    case UnmapNotify: i=wsWindowUnmapped; wsWindowList[l]->Mapped=wsNone;     goto expose;
    case FocusIn:
         if ( wsWindowList[l]->Focused == wsFocused ) break;
-        i=wsWindowFocusIn; wsWindowList[l]->Focused=wsFocused; goto expose;
+        i=wsWindowFocusIn; 
+	wsWindowList[l]->OFocused=wsWindowList[l]->Focused; 
+	wsWindowList[l]->Focused=wsFocused; 
+	goto expose;
    case FocusOut:
         if ( wsWindowList[l]->Focused == wsNone ) break;
-        i=wsWindowFocusOut; wsWindowList[l]->Focused=wsNone;   goto expose;
+        i=wsWindowFocusOut; 
+	wsWindowList[l]->OFocused=wsWindowList[l]->Focused; 
+	wsWindowList[l]->Focused=wsNone;   
+	goto expose;
    case VisibilityNotify:
         switch( Event->xvisibility.state )
          {