Partly motivated to prevent resizing to enormous sizes if the steps contains
mixed ratios and pixel counts: [0.3, 300] would interpret 300 as a ratio :)
On multi monitor setups we usually want the monitor focus to follow the mouse
pointer since non-active workspaces don't react to the pointer at all.
Unfortunately it's not possible to warp the pointer from gnome-shell extensions
in wayland yet. The pointer will be left on an inactive monitor when switching
workspaces using the keyboard. This makes it extremely easy to trigger an motion
event and inadvertently switching monitor focus (in fact this simply happens the
moment we activate the motion listener).
So add a motion threshold to filter out pointer motions without user intent.
A colored border is added to frame the space when using the workspace carousel.
This helps to separate the workspaces visually. Especially when using a
shared image background for workspaces and the gnome shell background.
We also make the background the same size as the monitor making the overview
transition smooth when using a single background.
During regular use the border is hidden, to avoid shadows at the edges of the
monitor.
closes#86
The 'workspace-names' values might still come out of sync when a in-the-middle
workspace is removed - but:
- This is not very visible since each space have a "copy" of it's real name
- The code have been dead for a long time
- Better to handle everything in `workspacesChanged`
The best solution is probably to reindex the existing spaces' settings on
workspace removal and then set 'workspace-names' based on the live-spaces.
When running a disable/enable loop (eg. through screen locking) space.init() was
run before windows were registered (ie. gotten their clones etc.).
We also need to set up the monitors unconditionally before space.init() is run.
This is a bit ugly but should work until we can clean it up better.
closes#128
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.
dconf can't reliable get default values(?)
According to https://bugzilla.redhat.com/show_bug.cgi?id=1541448 the dconf
default value might also differ from the gsettings default value(?)
I did not find a way to differentiate between "use default value" and the actual
default value - so running the script might change some settings from "use
default value" to the actual default value.
IIUC 'gsettings' require the gsettings daemon to run, while 'dconf' is lower
level and modify the database directly.
Fixes#121
With #73 resolved (cd95ad220) we can tolerate changes to workarea across
workspaces.
Extensions that rely on workarea.y (eg. upright dash-to-dock) will no longer be
broken.
Note that (3.28) only windows with visible actors are affected (immediately) by
workarea changes so changing workspace from without-top-bar (A) to
with-top-bar (B) only cause resizes of B's visible windows.
Workspace navigation by itself (shows the topbar) does not cause resizes. (eg.
initiate and cancel a navigation)
Navigation between without-top-bar workspaces does not cause resizes.
This reverts commit 86283c5dea
This reverts commit 20809ad6b0
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
Caused problems when switching to workspaces without topbar - probably because
the topbar is briefly shown during navigation - restricting the workarea -
resizing the windows in the workspace without topbar - causing the dreaded #73.
This conjecture is not verified, but disabling the affectsStruts fixes the
symptoms :)
Fixes#108
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.