Vitor Eiji Justus Sakaguti <vitoreiji0 <at> gmail.com> writes:

> 
> Hi,
> I recently switched from xcompmgr to cairo-compmgr but I'm having an
> annoying issue with it. Whenever I switch focus I expect the new
> focused client to be raised as well, and this was the case with
> xcompmgr. With cairo-compmgr, the newly focused client *sometimes* is
> not raised, and I still don't have a clue as to when it does and when
> it doesn't.
> 
> So is this really a bug in cairo-compmgr or do I have to put
> additional stuff in my rc.lua?
> 
> vitor <at> agilaz:~> awesome -v
> awesome v3.4.9 (Smack)
>  • Build: Jan 18 2011 11:30:02 for x86_64 by gcc version 4.5.2 (vitor <at>
agilaz)
>  • D-Bus support: ✔
> 
> And cairo-compmgr is 0.3.0 (git20110320)
> 
> (Running up-to-date Arch Linux if that matters...)
> 
> 
Huh... Five years... 
Anyway, fixed it by accident. Was looking at problems with Java on older AWM
implementations. Focus problems are fixed by using: 


function delay_raise ()
    -- 5 ms ages in computer time, but I won't notice it.
    local raise_timer = timer { timeout = 0.005 }
    raise_timer:connect_signal("timeout",
    function()
        if client.focus then
            client.focus:raise()
        end
        raise_timer:stop()
    end)
    raise_timer:start()
end


Hook it like this: 

 -- Default client focus
            awful.key({ modkey }, "k",
            function ()
                awful.client.focus.byidx(1)
                delay_raise()
            end),
            awful.key({ modkey }, "j",
            function ()
                awful.client.focus.byidx(-1)
                delay_raise()
            end),


Reply via email to