Fix Hyprland scratchpad workspace targeting
This commit is contained in:
@@ -376,8 +376,17 @@ function M.setup(ctx)
|
|||||||
move_window_to_workspace(scratchpad_workspace(name), false, window)
|
move_window_to_workspace(scratchpad_workspace(name), false, window)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function show_scratchpad_window(name, window, workspace, target_monitor, opts)
|
local function scratchpad_show_workspace(workspace)
|
||||||
workspace = workspace or active_workspace()
|
workspace = workspace or active_workspace()
|
||||||
|
if is_normal_workspace(workspace) then
|
||||||
|
return workspace
|
||||||
|
end
|
||||||
|
|
||||||
|
return hl.get_workspace(tostring(active_workspace_id()))
|
||||||
|
end
|
||||||
|
|
||||||
|
local function show_scratchpad_window(name, window, workspace, target_monitor, opts)
|
||||||
|
workspace = scratchpad_show_workspace(workspace)
|
||||||
if not workspace then
|
if not workspace then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -475,10 +484,12 @@ function M.setup(ctx)
|
|||||||
|
|
||||||
local windows = matching_scratchpad_windows(name)
|
local windows = matching_scratchpad_windows(name)
|
||||||
if #windows == 0 then
|
if #windows == 0 then
|
||||||
|
local workspace = scratchpad_show_workspace()
|
||||||
|
local target_monitor = hl.get_active_monitor()
|
||||||
hide_active_scratchpads(name)
|
hide_active_scratchpads(name)
|
||||||
scratchpad_pending[name] = {
|
scratchpad_pending[name] = {
|
||||||
monitor = hl.get_active_monitor(),
|
monitor = target_monitor,
|
||||||
workspace = active_workspace(),
|
workspace = workspace,
|
||||||
}
|
}
|
||||||
hl.exec_cmd(def.command)
|
hl.exec_cmd(def.command)
|
||||||
return
|
return
|
||||||
@@ -497,9 +508,9 @@ function M.setup(ctx)
|
|||||||
hide_scratchpad_window(name, window)
|
hide_scratchpad_window(name, window)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
hide_active_scratchpads(name)
|
local workspace = scratchpad_show_workspace()
|
||||||
local workspace = active_workspace()
|
|
||||||
local target_monitor = hl.get_active_monitor()
|
local target_monitor = hl.get_active_monitor()
|
||||||
|
hide_active_scratchpads(name)
|
||||||
for _, window in ipairs(windows) do
|
for _, window in ipairs(windows) do
|
||||||
show_scratchpad_window(name, window, workspace, target_monitor)
|
show_scratchpad_window(name, window, workspace, target_monitor)
|
||||||
end
|
end
|
||||||
@@ -531,6 +542,7 @@ function M.setup(ctx)
|
|||||||
ctx.dropdown_spring_progress = dropdown_spring_progress
|
ctx.dropdown_spring_progress = dropdown_spring_progress
|
||||||
ctx.animate_dropdown_scratchpad_down = animate_dropdown_scratchpad_down
|
ctx.animate_dropdown_scratchpad_down = animate_dropdown_scratchpad_down
|
||||||
ctx.hide_scratchpad_window = hide_scratchpad_window
|
ctx.hide_scratchpad_window = hide_scratchpad_window
|
||||||
|
ctx.scratchpad_show_workspace = scratchpad_show_workspace
|
||||||
ctx.show_scratchpad_window = show_scratchpad_window
|
ctx.show_scratchpad_window = show_scratchpad_window
|
||||||
ctx.scratchpad_is_visible = scratchpad_is_visible
|
ctx.scratchpad_is_visible = scratchpad_is_visible
|
||||||
ctx.active_scratchpad_windows = active_scratchpad_windows
|
ctx.active_scratchpad_windows = active_scratchpad_windows
|
||||||
|
|||||||
Reference in New Issue
Block a user