If we've run out of workspaces when there's more monitors to populate simply add
new ones.
NB: this only works after startup-complete as we need to listen to
`notify::n-workspaces` first.
closes#116
Workspaces created after startup was never actually initialized, eg.
the `window-added/removed` signals were never connected.
Simply run space.init when constructing a space and handle the _startingUp edge
case.
A freeze can be triggered like this: (might have to run the resize twice)
metaWindow.connect('size-changed', () => {
let f = metaWindow.get_frame_rect()
metaWindow.move_resize_frame(true, f.x, f.y, f.width, 500)
})
let f = metaWindow.get_frame_rect()
metaWindow.move_resize_frame(true, f.x, f.y, f.width, f.height-50)
Fixes#73
Use the tiling to sort the overview. Floating windows are sorted the regular way
among themselves and put before the tiled windows.
We also report the correct coordinates so animation to and from the overview is
correct.
ref #4
We don't use workarea.y directly as it can cause problems cause problems if eg.
a layout is triggered when a fullscreen window is active. Instead we scale the
panel height with `space.showTopBar`.
Was not intended for master.
Revert "don't use workarea.y directly"
This reverts commit cb67f451a2.
Revert "space: connect settings"
This reverts commit 3c7ac9509e.
Revert "fixup! workspace menu: add zen toggle"
This reverts commit bff403c134.
Revert "workspace menu: add zen toggle"
This reverts commit 89bae34412.
Revert "Implement"
This reverts commit dd812e5714.
Revert "workspace schema: add `show-top-bar`"
This reverts commit 7dcac8896a.
Mutter 3.32 is built with `G_DISABLE_CHECKS` which disables among other things
`g_return_if_fail`.
This makes `set_child_below/above_sibling` remove the child if it's the same as
sibling, but leaves the child with a parent link.
The scratch window would first be moved to the remembered position - then
animated "down".
Also ensures that windows minimized when navigating get a proper position.
(restoring a window that was minimized when it was non-placeable results in the
window being out-of-view)
Note: Use 'effect-completed' to detect when a the animation is done - then
resize/move. Could also have stored the target position, but that complicates
all the places we want to preview a minimized window.
Defaults to true. If false uses gnome shell's `Activities` text and hides the
workspace labels.
Set to false like this:
```
Extension.imports.convenience.getSettings()
.set_boolean('use-workspace-name', false)
```
When eg. using dash-to-dock without autohide we would position windows under the
dock. Use the workarea instead of the monitor to figure out where we can
position windows.
TODO: re-layout on `display::workareas-changed`, unfortunately this is triggered
when focusing a fullscreen window, so we'll need to keep track of the workareas
ourself to make it performant. For now the user will have to «rejigger» the
windows manually.
closes#94
Specifically fixes bug where whole scratch layer become visible (but only the
actors) when reloading (or disable/enable cycle) when at least on scratch window
was active.
This also sometimes crashed gnome-shell (confirmed on v3.28.3 - ubuntu 18.04)
Also remove some code who seem to partly work around the problem
We need to raise one of the focused window neighbours preemptively to get sane
focus after closing a window (ie. one of the neighbours should always get
focus).
However we also use the windows' stacking order to decide eg. which window in
a vertical tiling to select when entering from the side. Raising the neighbours
on focus can easily break this behavior, as the top window no longer is the most
recently selected.
If we use the clones stacking order instead we avoid these issues as it's
unaffected by the unavoidable window raising we do on focus.
When a new window is created from the overview [1], `display.focus_window` is
null. This broke our "should-window-be-scratch" logic.
Behavior observed both on X11 and wayland
[1] or the 'switcher' extension. Probably in general if a shell modal is active
when the window is created?