Merge pull request #118 from blueyed/fix-proper-activate-via-rules

Properly fix activating an "invisible" client via rules
This commit is contained in:
Daniel Hahler 2015-02-14 20:55:04 +01:00
commit 6183d8587a
4 changed files with 6 additions and 16 deletions

View File

@ -545,10 +545,6 @@ main(int argc, char **argv)
g_main_context_set_poll_func(g_main_context_default(), &a_glib_poll); g_main_context_set_poll_func(g_main_context_default(), &a_glib_poll);
gettimeofday(&last_wakeup, NULL); gettimeofday(&last_wakeup, NULL);
/* Do all deferred work now once outside of the loop to get awesome.startup
* right. */
awesome_refresh();
/* main event loop */ /* main event loop */
globalconf.loop = g_main_loop_new(NULL, FALSE); globalconf.loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(globalconf.loop); g_main_loop_run(globalconf.loop);

View File

@ -12,7 +12,6 @@ local ipairs = ipairs
local pairs = pairs local pairs = pairs
local aclient = require("awful.client") local aclient = require("awful.client")
local atag = require("awful.tag") local atag = require("awful.tag")
local timer = require("gears.timer")
--- Apply rules to clients at startup. --- Apply rules to clients at startup.
-- awful.rules -- awful.rules
@ -235,10 +234,7 @@ function rules.execute(c, props, callbacks)
-- Do this at last so we do not erase things done by the focus -- Do this at last so we do not erase things done by the focus
-- signal. -- signal.
if props.focus and (type(props.focus) ~= "function" or props.focus(c)) then if props.focus and (type(props.focus) ~= "function" or props.focus(c)) then
local cb = function(c) c:emit_signal('request::activate',"rules")
c:emit_signal('request::activate', "rules")
end
timer.delayed_call(cb, c)
end end
end end

View File

@ -632,9 +632,7 @@ capi.client.connect_signal("manage", function(c)
c:connect_signal("property::screen", tag.withcurrent) c:connect_signal("property::screen", tag.withcurrent)
end) end)
capi.client.connect_signal("manage", function(c) capi.client.connect_signal("manage", tag.withcurrent)
timer.delayed_call(tag.withcurrent, c)
end)
capi.tag.connect_signal("request::select", tag.viewonly) capi.tag.connect_signal("request::select", tag.viewonly)
capi.tag.add_signal("property::hide") capi.tag.add_signal("property::hide")

View File

@ -301,9 +301,6 @@ client_focus_update(client_t *c)
{ {
lua_State *L = globalconf_get_lua_State(); lua_State *L = globalconf_get_lua_State();
if(!client_maybevisible(c))
return false;
if(globalconf.focus.client && globalconf.focus.client != c) if(globalconf.focus.client && globalconf.focus.client != c)
{ {
/* When we are called due to a FocusIn event (=old focused client /* When we are called due to a FocusIn event (=old focused client
@ -354,7 +351,7 @@ client_focus_refresh(void)
return; return;
globalconf.focus.need_update = false; globalconf.focus.need_update = false;
if(c) if(c && client_maybevisible(c))
{ {
/* Make sure this window is unbanned and e.g. not minimized */ /* Make sure this window is unbanned and e.g. not minimized */
client_unban(c); client_unban(c);
@ -1135,6 +1132,9 @@ client_unban(client_t *c)
client_set_minimized(L, -1, false); client_set_minimized(L, -1, false);
client_set_hidden(L, -1, false); client_set_hidden(L, -1, false);
lua_pop(L, 1); lua_pop(L, 1);
if (globalconf.focus.client == c)
globalconf.focus.need_update = true;
} }
} }