Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vswitch plugin: ghost image of the window when switching with the window. #2041

Closed
marcusbritanicus opened this issue Nov 30, 2023 · 3 comments · Fixed by #2106
Closed

vswitch plugin: ghost image of the window when switching with the window. #2041

marcusbritanicus opened this issue Nov 30, 2023 · 3 comments · Fixed by #2106
Labels
Milestone

Comments

@marcusbritanicus
Copy link
Contributor

Describe the bug
When switching workspaces with a window, a ghost image of the window appears on the target workspace.

To Reproduce
Steps to reproduce the behavior:

  1. Enable plugin vswitch
  2. Switch workspace taking a window along (switch workspace with window)
  3. The ghost image appears on the target workspace.

Expected behavior
Ghost image should not appear.

Screenshots or stacktrace
Here is the screen recording with an exaggerated animation timing of 5s so that the problem is visible clearly.

vswitch-bug.mp4

Wayfire version
Wayfire 0.8.0, and also git (0.9.0-9bed909d Nov 14)

@soreau
Copy link
Member

soreau commented Nov 30, 2023

Does this happen with a clean config?

@marcusbritanicus
Copy link
Contributor Author

@soreau I can reproduce this with only vswitch and autostart enabled. (autostart so that I can have a window to switch with). Also happens with the default config.

@ammen99 ammen99 added this to the 0.8.1 milestone Dec 1, 2023
@lcolitti
Copy link
Contributor

I see this too, and it's quite annoying. I don't remember seeing it in 0.7.4, maybe it's a regression between 0.7.4 and 0.8?

lcolitti added a commit to lcolitti/wayfire that referenced this issue Jan 19, 2024
I don't understand how the scenegraph APIs work, but by tinkering
with the code it looks like adding the overlay as a child of the
scene::output_node_t results in both the overlay and the original
window being displayed, even though the original window is hidden
with wf::scene::set_node_enabled on its transfomed node.

I don't know if this fix is correct, but it does appear to work
on one output. The comments indicate that the output_node is used
to ensure that the overlay is properly clipped to the output, so
there might be a problem with multiple outputs.

Fixes WayfireWM#2041
lcolitti added a commit to lcolitti/wayfire that referenced this issue Feb 12, 2024
When animating, the plugin disables the original view, then adds
a new output node which is rendered as an overlay while the
animation runs. Unfortunately the workspace wall also picks up
the new output node and draws it on the target workspace,
resulting in a duplicate window.

This commit is a simple fix that uses a translation node instead
of an output node. This requires fixing what looks like a missing
return statement in vswitch_overlay_node_t::get_bounding_box.

Fixes WayfireWM#2041
lcolitti added a commit to lcolitti/wayfire that referenced this issue Feb 12, 2024
When animating, the plugin disables the original view, then adds
a new output node which is rendered as an overlay while the
animation runs. Unfortunately the workspace wall also picks up
the new output node and draws it on the target workspace,
resulting in a duplicate window.

This commit is a simple fix that uses a translation node instead
of an output node. This requires fixing what looks like a missing
return statement in vswitch_overlay_node_t::get_bounding_box.

Fixes WayfireWM#2041
ammen99 pushed a commit that referenced this issue Feb 13, 2024
When animating, the plugin disables the original view, then adds
a new output node which is rendered as an overlay while the
animation runs. Unfortunately the workspace wall also picks up
the new output node and draws it on the target workspace,
resulting in a duplicate window.

This commit is a simple fix that uses a translation node instead
of an output node. This requires fixing what looks like a missing
return statement in vswitch_overlay_node_t::get_bounding_box.

Fixes #2041
ammen99 pushed a commit that referenced this issue Mar 13, 2024
When animating, the plugin disables the original view, then adds
a new output node which is rendered as an overlay while the
animation runs. Unfortunately the workspace wall also picks up
the new output node and draws it on the target workspace,
resulting in a duplicate window.

This commit is a simple fix that uses a translation node instead
of an output node. This requires fixing what looks like a missing
return statement in vswitch_overlay_node_t::get_bounding_box.

Fixes #2041
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants