awful.rules.execute: use delayed_call for emitting request::activate
This is a followup to commit 90fde13
, which caused the client not to be
visible during the request::activate callback.
This requires an initial call to `awesome_refresh` before the main loop
to get `awesome.startup` right.
Ref: https://github.com/awesomeWM/awesome/commit/90fde139#commitcomment-9308225
This commit is contained in:
parent
3ab3bb900a
commit
6963ede3dc
|
@ -545,6 +545,10 @@ 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);
|
||||||
|
|
|
@ -12,6 +12,7 @@ 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
|
||||||
|
@ -234,7 +235,10 @@ 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
|
||||||
c:emit_signal('request::activate',"rules")
|
local cb = function(c)
|
||||||
|
c:emit_signal('request::activate', "rules")
|
||||||
|
end
|
||||||
|
timer.delayed_call(cb, c)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue