summaryrefslogtreecommitdiffstats
path: root/Gui/wm/ws.c
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-09-01 17:53:07 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-09-01 17:53:07 +0000
commit8d3a4273784f383298d0f43d673eb8d97986379c (patch)
tree2160452c57b4fe1a1b03997d51c414ace52db69d /Gui/wm/ws.c
parent5c21ed495f4be9f9425535967885a6ce5c302c9a (diff)
downloadmpv-8d3a4273784f383298d0f43d673eb8d97986379c.tar.bz2
mpv-8d3a4273784f383298d0f43d673eb8d97986379c.tar.xz
fix some bug.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1824 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/wm/ws.c')
-rw-r--r--Gui/wm/ws.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c
index bb5a73cfee..46ed229f20 100644
--- a/Gui/wm/ws.c
+++ b/Gui/wm/ws.c
@@ -439,6 +439,7 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
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 @@ void wsDestroyWindow( wsTWindow * win )
win->KeyHandler=NULL;
win->Visible=0;
win->Focused=0;
+ win->OFocused=0;
win->Mapped=0;
win->Rolled=0;
}
@@ -528,10 +530,16 @@ Bool wsEvents( Display * display,XEvent * Event,XPointer arg )
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 )
{