Commit Graph
119 Commits
Author SHA1 Message Date
Tor Hedin Brønner b747d60e20 Use easeOutQuad for delayed the delayed window animations
Then we could remove the strange divide by two thing too.
2017-09-17 16:20:07 +02:00
Tor Hedin Brønner a309776f37 Use somewhat proper delay calculation
This should in principle start the animation when the obscuring window have
moved margin - margin_lr frames, which is in the ballbark of what we want.

Had to divide the whole thing by two, not sure why that should've been necessary.

It might be better to use easeOutQuad though, since the other windows are
already moving.
2017-09-17 16:03:35 +02:00
Tor Hedin Brønner e937745a65 Delete obsolete files 2017-09-17 14:20:43 +02:00
Tor Hedin Brønner 4d537d1647 Add license 2017-09-17 14:19:37 +02:00
Ole Jørgen Brønner 996a93b132 Use PreviewedWindowNavigator as primary next/prev action 2017-09-17 11:40:29 +02:00
Ole Jørgen Brønner 2478db8c75 PreviewedWindowNavigator: Don't wrap around when preview not visible 2017-09-17 11:35:31 +02:00
Tor Hedin Brønner adbba75d52 Finally anchor the scaled position _properly_
Set the y pivot based on y_offset so we can specify the visible position of the
scaled window.
2017-09-17 11:21:55 +02:00
Tor Hedin Brønner 85d7dbc93c Use the frame height to calculate scale
This make scaling and positioning windows with different buffer/frame deltas
consistent, and is what we actually want. ie. the height we're interested
setting is the height of the visible window (not the air around it).
2017-09-17 11:05:46 +02:00
Tor Hedin Brønner d66c7129a8 Reduce the chance of windows passing through each other in the z-axis
When going to a scaled window set a tiny delay so the window to the left/right
have time to move out of the way before we `raise` and start the animation. The
animation time is reduced by the delay, so the animations should still finish at
the same time.

This isn't completely robust because it depends on the speed of window to the
left/right moves, which is determine by the width of the window we're ensuring.
2017-09-17 10:40:11 +02:00
Tor Hedin Brønner 770db65389 Use a static scaled height for windows stacked to the sides
This requires controlling the upper left/right most corner depending on which
side the window is stacked, ie. pivot points (0,0) and (1,0) respectively.

TODO: center fullscreen windows properly too
2017-09-17 00:23:18 +02:00
Tor Hedin Brønner 8728a57db7 TODO: make a proper github repo 2017-09-16 20:59:58 +02:00
Tor Hedin Brønner 071768969a Fix: Add a gap properly when opening windows in the background 2017-09-16 20:08:15 +02:00
Ole Jørgen Brønner d369476a9b Bugfix/regression: two quick moves ended in invalid state
Second ensure is cancelled since animation isn't done yet. In effect it looks
like the move wasn't done.
2017-09-16 18:59:13 +02:00
Tor Hedin Brønner 4671d4c8f8 Add print debugging for the PreviewNavigator
Also use `this._switcherList.windows` instead of calling `_getWindowList`
again. (which might fix things, but probably not).
2017-09-16 16:18:50 +02:00
Ole Jørgen Brønner f52289b5bb Simple winprop system
Based on notion/ion3

'float' and 'oneshot' support atm.
2017-09-16 11:45:57 +02:00
Tor Hedin Brønner 0623284de9 Add debug filtering
Set `debug_all` to `false` and eg. `debug_filter["window-added"] = true` and
you'll only get output which starts with `window-added`
2017-09-15 21:45:03 +02:00
Tor Hedin Brønner c3e08564c6 Add some convience globals 2017-09-15 19:48:19 +02:00
Ole Jørgen Brønner ede4f10dfa Select journal entries by executable
This will hopefully catch all relevant logs.
2017-09-15 18:46:48 +02:00
Tor Hedin Brønner 9c8986bc25 Only hide the statusbar when we're on a fullscreen window 2017-09-15 16:38:27 +02:00
Ole Jørgen Brønner f252a62204 Notes: (minor) 2017-09-15 14:44:22 +02:00
Tor Hedin Brønner 7d030a40db Support for tiling in new _static_ workspaces
Doesn't work with dynamic workspaces because they doesn't trigger the
`workspace-added` signal.

(Removed some superfluous logging)
2017-09-15 14:39:56 +02:00
Ole Jørgen Brønner 1c0e886bdd Recover tiling order across gnome-shell restart
Notes:
- X11 ids isn't exposed(?) (MetaWindow.get_xwindow C only)
- No other stable id seems to be exposed (get_stable_sequence is not that
  stable)
- Window title is too volatile (must persist order very frequently if used)
- Using the x position and stacking order seems to work (expect for windows that
  take up 100% of the screen width)
2017-09-15 10:59:46 +02:00
Ole Jørgen Brønner 8ea4a9e3cf Remove accidentally added file 2017-09-15 06:59:06 +02:00
Tor Hedin Brønner 38a9c9746a Fix fullscreen position
`PreviewWindowNavigator` scrolling past fullscreen windows work perfectly too :)
2017-09-14 22:12:14 +02:00
Ole Jørgen Brønner 26c8f1ff77 Notes: How gjs imports works 2017-09-14 16:34:13 +02:00
Tor Hedin Brønner d6e021e631 Regression: Don't set margin_lr globally in ensure_viewport 2017-09-14 11:53:13 +02:00
Tor Hedin Brønner 0ac8ba24c3 Don't don't ensure window is in view on first-frame
Only position the new inactive window correctly, we should never move the
focused window without also moving focus, or some explicit move/resize action.
2017-09-14 11:31:56 +02:00
Tor Hedin Brønner a911459b65 Robust initial position via. first-frame signal
`focus` runs before `first-frame` which means we need to set initial position
there to make sure that `ensure_viewport` works correctly.
2017-09-14 11:19:30 +02:00
Ole Jørgen Brønner d79af41297 Notes: bug 2017-09-14 11:15:54 +02:00
Tor Hedin Brønner 150f9ee242 Bug, not sure if valid 2017-09-14 10:47:56 +02:00
Ole Jørgen Brønner d8e6f4f7f9 Bugfix preview_navigate: parent constructor re-assigned _selectedIndex 2017-09-14 09:39:53 +02:00
Tor Hedin Brønner 2f831b6ec8 Add gnome-shell-mode to dir-locals 2017-09-14 09:27:10 +02:00
Ole Jørgen Brønner 88e1d82f87 Notes: "navigate-mode" 2017-09-14 08:28:44 +02:00
Ole Jørgen Brønner d68be69df4 PreviewedWindowNavigator: Navigate tiling with preview-strip and live changes
Temporary bindings: <super><ctrl>,/.

Note: can probably unify this and LiveWindowNavigator making the preview
optional. We probably want some sort of extra decoration on the actual windows
even when the preview is shown too.
2017-09-14 07:45:07 +02:00
Ole Jørgen Brønner 16edfa97f1 Remove debug noise 2017-09-14 07:23:46 +02:00
Ole Jørgen Brønner dd838977f1 Naming: FocusCycler -> LiveWindowNavigator 2017-09-14 07:10:07 +02:00
Ole Jørgen Brønner e965f03d7b notes 2017-09-14 06:57:39 +02:00
Ole Jørgen Brønner fee16e1dde notes 2017-09-14 05:47:13 +02:00
Ole Jørgen Brønner 10d6f56bed .dir-locals.el: enable org-indent-mode 2017-09-14 05:40:55 +02:00
Tor Hedin Brønner 11724bac52 Don't log the timestamp as journald already handles it 2017-09-14 02:38:09 +02:00
Tor Hedin Brønner eb95aeb12d Pass the workspace into the propogate functions
Also don't rely on declaration hoisting in `ensure_viewport`.

(sooo hard apparently to debug the fact I didn't pass the workspace in the
recursive calls at first...)
2017-09-14 02:38:04 +02:00
Tor Hedin Brønner 0e7c0276ed Fix alignment when closing the very first or last window
There's very little delay between `focus` and `window-removed` so there's no
jumpiness when running ensure twice.
2017-09-14 01:39:08 +02:00
Tor Hedin Brønner cc31091574 A problem with the stacklevel for two maximized windows 2017-09-14 01:11:32 +02:00
Tor Hedin Brønner e0b877431f Add a bug 2017-09-14 00:29:42 +02:00
Tor Hedin Brønner e0ab1619dd Closed bug 2017-09-14 00:28:43 +02:00
Tor Hedin Brønner acfb736e78 Use first-frame signal for initial positioning 2017-09-14 00:24:55 +02:00
Tor Hedin Brønner 9ca625d1f0 Add some comments and pull out the move_to function call 2017-09-14 00:13:19 +02:00
Tor Hedin Brønner 8313254e1f Add robust first/last window detection
Also some general cleanup of `ensure_viewport`.
2017-09-14 00:00:10 +02:00
Tor Hedin Brønner 3b49bcc066 Refactor out the common move code in ensure_viewport 2017-09-13 23:39:11 +02:00
Tor Hedin Brønner c67dec5ff6 Quick and dirty fix so that we're not double ensuring on focus
Keep track of what window we're moving into view, so we can abort subsequent
calls on the same window.
2017-09-13 23:30:12 +02:00