This makes folding and revisiting workspaces in the PreviewNavigator work
properly. The changes made will not be undone by escape, however, but that
should probably be handled by acting on copies of the spaces and committing or
throwing them away depending on if we _finish or escape.
st_widget_get_theme_node called on the widget [0x3f47ec0 StWidget "window-clone-container"] which is not in the stage.
This warning is emitted if any information dependent on a widget's style is
requested before the widget is attached to the stage.
In this case the culprit was that St.Widget.get_preferred_width/height call
st_widget_get_theme_node even when its layoutmanager dictate the preferred size.
It's convenient to be able to use the size of the window clones prior to
attachment, and the size should not depend on any styling.
We don't use any St functionality in the clone wrapper so simply use a regular
Clutter actor.
Disables debugging which assumes that there's a window in the workspace.
SwitcherPopup.show requires that _items.length > 0 so we need something else to
fix that.
We delegated to altTab.WindowSwitcherPopup before. Now that we inherit directly
from SwitcherPopup we must return the expected values ourself.
Escape should abort the popup (not properly across workspaces though)
When animating this resulted in the selected entry being folded. Not sure why,
since the subsequent fold should overwrite the fold tween? (try moving a
workspace up from the very first workspace)
Could of course do an early return if we try to reselect the current entry.
Might be cleaner, but the we'll have to ensure we don't use setSelected to
ensure a correct start state.
Note: the allocation method is called ALOT
WindowCloneLayout based on the one in workspace.js, but the original
calulates the offset based on a static frame_rect. Unless that's updated the
clone's position will follow the source. The containers position (using the
layout manager) will _not_ follow it though. So the clone is not properly
contained inside the container..
Gives more fine grained control as we can call complete when appropriate and
omits signaling mutter that workspace switching is finished, as we're not
responding to the `switch-workspace` signal.