Thomas Adam wrote:
On Wed, Jan 06, 2010 at 04:27:36PM +0100, Zoilo Gomez wrote:
Why does Flashplayer loose the focus when VLC goes from full-screen
to normal-screen? How can I prevent this from happening?
It looks as though some applications (vlc, xine, etc) still pass the click
to the window which allows the client to accept focus. Thus, although you
have "NeverFocus" set, it's not doing it's job properly.
I do not understand what you mean - in any case there is no mouse click
or so.
Well, I say "properly" -- it looks like the events reaching the window with
NeverFocus are odd for some clients.
Can you hook up "xev" to your "NeverFocus" window, make it go fullscreen
then out again, and send me the log?
My configuration:
Style * SloppyFocus
Style vlc StartsOnPage 0 0, !Title, !Handles, WindowListSkip,
NeverFocus, !Borders, StaysOnTop, !FPGrabFocus
Style flashplayer StartsOnPage 0 0, !Title, !Handles, WindowListSkip,
!Borders, StaysOnBottom
==
While VLC is in normal-window mode, I attached xev to this VLC
normal-mode window, then make it go full-screen:
UnmapNotify event, serial 13, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000004, from_configure NO
PropertyNotify event, serial 13, synthetic NO, window 0x1000004,
atom 0x107 (WM_STATE), time 4634219, state PropertyNewValue
PropertyNotify event, serial 13, synthetic NO, window 0x1000004,
atom 0x12e (_NET_WM_STATE), time 4634219, state PropertyDelete
PropertyNotify event, serial 13, synthetic NO, window 0x1000004,
atom 0x128 (_NET_WM_DESKTOP), time 4634219, state PropertyDelete
ReparentNotify event, serial 13, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000004, parent 0x10e,
(816,384), override NO
UnmapNotify event, serial 13, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000006, from_configure NO
ReparentNotify event, serial 13, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000006, parent 0x100001d,
(0,0), override NO
===
Then back to normal-screen:
ReparentNotify event, serial 16, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000006, parent 0x1000004,
(0,0), override NO
MapNotify event, serial 16, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000006, override NO
ReparentNotify event, serial 16, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000004, parent 0x40008f,
(0,0), override NO
ConfigureNotify event, serial 16, synthetic YES, window 0x1000004,
event 0x1000004, window 0x1000004, (816,384), width 512, height 288,
border_width 0, above 0x40008e, override NO
PropertyNotify event, serial 16, synthetic NO, window 0x1000004,
atom 0x12e (_NET_WM_STATE), time 4664522, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x1000004,
atom 0x128 (_NET_WM_DESKTOP), time 4664522, state PropertyNewValue
PropertyNotify event, serial 16, synthetic NO, window 0x1000004,
atom 0x177 (_NET_WM_ALLOWED_ACTIONS), time 4664522, state
PropertyNewValue
PropertyNotify event, serial 17, synthetic NO, window 0x1000004,
atom 0x176 (_KDE_NET_WM_FRAME_STRUT), time 4664523, state
PropertyNewValue
PropertyNotify event, serial 17, synthetic NO, window 0x1000004,
atom 0x125 (_NET_FRAME_EXTENTS), time 4664523, state PropertyNewValue
PropertyNotify event, serial 19, synthetic NO, window 0x1000004,
atom 0x17c (_WIN_STATE), time 4664524, state PropertyNewValue
PropertyNotify event, serial 19, synthetic NO, window 0x1000004,
atom 0x17b (_WIN_LAYER), time 4664524, state PropertyNewValue
PropertyNotify event, serial 19, synthetic NO, window 0x1000004,
atom 0x17e (_WIN_WORKSPACE), time 4664524, state PropertyNewValue
ConfigureNotify event, serial 19, synthetic YES, window 0x1000004,
event 0x1000004, window 0x1000004, (816,384), width 512, height 288,
border_width 0, above 0x40008e, override NO
MapNotify event, serial 22, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000004, override NO
VisibilityNotify event, serial 22, synthetic NO, window 0x1000004,
state VisibilityUnobscured
PropertyNotify event, serial 22, synthetic NO, window 0x1000004,
atom 0x107 (WM_STATE), time 4664525, state PropertyNewValue
FocusIn event, serial 22, synthetic NO, window 0x1000004,
mode NotifyWhileGrabbed, detail NotifyNonlinear
KeymapNotify event, serial 22, synthetic NO, window 0x0,
keys: 4 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ConfigureNotify event, serial 22, synthetic NO, window 0x1000004,
event 0x1000004, window 0x1000006, (0,0), width 512, height 288,
border_width 0, above 0x0, override NO
FocusIn event, serial 22, synthetic NO, window 0x1000004,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 22, synthetic NO, window 0x0,
keys: 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==
From debugging, I can see that indeed the focus is being assigned to
the VLC normal-mode window; seems like it grabs the focus somehow:
[fvwm][Echo]: destroy window 0x100001d
[fvwm][Echo]: add window 0x1000004
[fvwm][Echo]: window_name 0x1000004
[fvwm][Echo]: raise window 0x1000004
[fvwm][Echo]: res_class 0x1000004
[fvwm][Echo]: res_name 0x1000004
[fvwm][Echo]: enter window 0x60005f
[fvwm][Echo]: focus change 0x1000004
where:
0x100001d: VLC full-screen window
0x1000004: VLC normal-screen window
0x60005f: flashplayer window (background)
==
Regards,
Zoilo.