Window swallowing is still very unreliable (probably by the nature of the task at hand) but at least that makes the module useable again
This commit is contained in:
parent
a96c7ca67a
commit
bda2e55643
|
@ -14,6 +14,7 @@ local window_swallowing_activated = false
|
||||||
local dont_swallow_classname_list = beautiful.dont_swallow_classname_list or {"firefox", "Gimp", "Google-chrome"}
|
local dont_swallow_classname_list = beautiful.dont_swallow_classname_list or {"firefox", "Gimp", "Google-chrome"}
|
||||||
local activate_dont_swallow_filter = beautiful.dont_swallow_filter_activated or true
|
local activate_dont_swallow_filter = beautiful.dont_swallow_filter_activated or true
|
||||||
|
|
||||||
|
|
||||||
-- checks if client classname matches with any entry of the dont-swallow-list
|
-- checks if client classname matches with any entry of the dont-swallow-list
|
||||||
local function check_if_swallow(c)
|
local function check_if_swallow(c)
|
||||||
if not activate_dont_swallow_filter then
|
if not activate_dont_swallow_filter then
|
||||||
|
@ -31,9 +32,14 @@ end
|
||||||
local function manage_clientspawn(c)
|
local function manage_clientspawn(c)
|
||||||
-- get the last focused window to check if it is a parent window
|
-- get the last focused window to check if it is a parent window
|
||||||
local parent_client=awful.client.focus.history.get(c.screen, 1)
|
local parent_client=awful.client.focus.history.get(c.screen, 1)
|
||||||
if not parent_client or not parent_client.valid then return end
|
if not parent_client then return end
|
||||||
|
|
||||||
if helpers.client.is_child_of(c, parent_client.pid) and check_if_swallow(c) then
|
-- io.popen is normally discouraged. Should probably be changed
|
||||||
|
local handle = io.popen([[pstree -T -p -a -s ]] .. tostring(c.pid) .. [[ | sed '2q;d' | grep -o '[0-9]*$' | tr -d '\n']])
|
||||||
|
local parent_pid = handle:read("*a")
|
||||||
|
handle:close()
|
||||||
|
|
||||||
|
if (tostring(parent_pid) == tostring(parent_client.pid)) and check_if_swallow(c) then
|
||||||
|
|
||||||
c:connect_signal("unmanage", function()
|
c:connect_signal("unmanage", function()
|
||||||
helpers.client.turn_on(parent_client)
|
helpers.client.turn_on(parent_client)
|
||||||
|
|
Loading…
Reference in New Issue