-
-
Notifications
You must be signed in to change notification settings - Fork 76
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
Add ability to reorder workspaces #464
Conversation
This is now ready to review. @elementary/ux |
@donadigo from a brief UX review, this looks really good and works as I'd expect! I'll continue using it and would like to hear from some people more familiar with the codebase, but I'm 👍 |
This is such a great feature. Will it have a keyboard shortcut? Ctrl+Super+Alt+Left/Right? |
@peteruithoven fixed. |
It seems like there a couple of unnecessary animations, but otherwise this is a great functional improvement. Open a few workspaces with one app on each of them. Open Multitasking view. :
|
@danrabbit I've tried to fix 2. but it's really hard to do this because yet again mutter doesn't let us reorder workspace indexes so what we do instead is move all apps one by one to the next workspace so that we can make room for the new workspace. Moving those apps causes signals to fire and gala reanimates the apps that changed. It would be quite hacky in gala to prevent that. |
@donadigo ah damn. Would it be awful to wait to animate for like 100ms or something really tiny? Long enough for the move to occur but short enough that people won't really notice? |
@danrabbit I will try to figure this out, you can see that there are still major problems found. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Loads of questions, few tiny issues.
@danrabbit @peteruithoven @cassidyjames all known issues fixed. |
@peteruithoven I feel like this should be resolved in another PR, I believe that to make this animation seamless there will be a lot of reworking needed on how |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only noticed one tiny typo
* Fix moving the container when dropping the IconGroup
… into reorder-workspaces
Fixes #259.
Depends on #566 and https://gitlab.gnome.org/GNOME/mutter/merge_requests/670.Depends on a distro-patch for mutter (https://gist.github.com/donadigo/fb99b5a9e8a092c76c4d6f03cc7ef930) that is already in the repos.
This adds the ability to drag a workspace and reorder it to a different place. This required some changes in core components to workaround the absence of a native method in libmutter to do this.
Some changes in the codebase:
DragDropAction now can be initialized with both source and destination flags and supports those. This was done to have
IconGroup
as a source (DND to different place) and as a destination (DND a window to an icon group).remove_group_in_place
is used to remove anIconGroup
without having theIconGroupContainer
reallocate and change it's position.The delay of
WorkspaceInsertThumb
is now dynamic, this is because dragging anIconGroup
has a delay of 0 (the space is immediately made for the widget) and the standard (when dragging a window icon to make a new workspace)Methods like the newThis was merged as well.move_workspace_to_index
require freezing all animations in the multitasking view to stop having unnecessary animations when reordering workspaces.MultitaskingView
now has static methods to change animation state.We need to wait until https://gitlab.gnome.org/GNOME/mutter/merge_requests/670 hits our repos, then, none of the previous solutions will be required.