Commit Graph
503 Commits
Author SHA1 Message Date
Tor Hedin Brønner e35bcd6066 Always animate worspace change properly 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner b14820b702 Fix visibility on window startup and scratch toggle 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 9ceac0e8ec Fix workspace stack order 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 91627013ef fix navigator 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 61f7a1f530 Fix startup
Hide windowActors that aren't on the current workspace.
2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 6bc78f50c1 Add workspace specific background colors 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 3ead7e71dd Add a showHandler for windowactors 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 0d061618f4 Fix scratch
For some reason the cloneContainer changes triggers the no minimize animation
bug. This makes things usable.
2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 39f094f28e Use the clonecontainer to preview workspaces 2018-04-22 14:56:05 +02:00
Tor Hedin Brønner 5408a1e588 Use clones for all animation
Do all animations with clones, hiding window actors. When animations are
complete we toggle back to window actors if the window isn't stacked.

We put the clones in their own Space specific container in Main.uiGroup. Above
the BackgroundGroup (moved to the bottom of the uiGroup) and below the
window_group.

Also remove the then obsolete stackWindow.
2018-04-22 14:56:05 +02:00
Ole Jørgen Brønner d2f3784e1d Remove riot and copyq winprops from tiling
Should be up to the user
2018-04-15 11:55:53 +02:00
Ole Jørgen Brønner 2afbe05911 Cleanup: remove unused schema keys
Comes from the first example file :)
2018-04-15 11:23:29 +02:00
Tor Hedin Brønner a5311fc3dd Handle resizing asynchronously via size-changed
Resizing happens asynchronously on wayland, and running a second resize will
override any preceding commands apparently. This meant running ensure
synchronously in eg. `cycleWindowWidth` would fail to actually resize wayland
windows.

Instead we actually fix the underlying problem by running ensure when
`size-changed` happens.

As an added benefit there's no reason to handle fullscreen toggling separately.

Some technical notes:

- We need to connect `size-changed` after initial positioning is done, this is
  currently done on the actor's first `show` signal.

- ensure will itself resize windows, maximizing their height. This doesn't
  create an infinite loop as long as the window settles into a stable height.
2018-04-14 18:52:39 +02:00
Tor Hedin Brønner 7dedfa0c63 Move initial MetaWindow connections to a more logical place 2018-04-13 21:39:53 +02:00
Tor Hedin Brønner 0dfa8d000e scratch: Force top bar visibility when showing the scratch layer 2018-04-13 20:05:55 +02:00
Tor Hedin Brønner 471300f8ec Refactor signal handling on MetaWindows 2018-04-13 20:05:44 +02:00
Tor Hedin Brønner 9afd8db94b Use notify::fullscreen to handle fullscreen functionality
`'in-fullscreen-changed'` only works for a single fullscreen window per
workspace. Meaning it's useless for our purposes.

This also makes neighbouring windows responsive to fullscreen changes.
2018-04-13 18:50:46 +02:00
Tor Hedin Brønner 1a74a7eaef tiling: Make signal control a bit easier 2018-04-13 18:50:42 +02:00
Tor Hedin Brønner e894c45e7f Push minimized windows to the scratch layer
TODO: Push to the bottom of the stack instead of the top
2018-04-12 22:52:33 +02:00
Tor Hedin Brønner a66d8fc4e7 scratch: When detaching/attaching windows also show/hide the scratch layer
Attaching and detaching windows could be somewhat disorienting. Eg. making the
focused window hidden by other floating windows when attaching the current
window to the tiling.
2018-04-12 20:11:50 +02:00
Tor Hedin Brønner 83fb20eb6a scratch: Add show/hide functions 2018-04-12 20:06:33 +02:00
Tor Hedin Brønner 030b030eab topbar: Handle visibility correctly when fullscreen is toggled 2018-04-12 17:04:54 +02:00
Tor Hedin Brønner 0c7f454878 topbar: Refactor signal tracking 2018-04-12 17:04:49 +02:00
Tor Hedin Brønner 1d8af9cc97 Move previewWorkspace to navigator 2018-04-12 17:00:26 +02:00
Tor Hedin Brønner efa637fc63 Move PreviewedWindowNavigator into new navigator module 2018-04-09 15:19:07 +02:00
Tor Hedin Brønner 83c2428507 disable -> enable: Reuse the old ordering if available
This is useful in the case of nothing changing between a disable and enable. For
instance when locking the screen. Having windows move around in that case is
pretty bad.

We do create a new spaces however as we want to support editing the `Space`
definition and getting the changes when we do a reload (this should work as long
as `Space` is an Array).
2018-04-09 15:19:07 +02:00
Tor Hedin Brønner 666aac0411 Move tiling specific enable functionality to tiling 2018-04-09 15:19:07 +02:00
Tor Hedin Brønner 6857d4f702 Don't execute toggle-scratch-layer when previewing windows
It doesn't make much sense to show the scratch layer when previewing. In
addition if using `super+escape` as the binding this makes it impossible to
abort the preview.

In the long run it's probably better to make a whitelist of bindings that's
appropriate to execute while a preview is active.
2018-04-06 14:23:34 +02:00
Tor Hedin Brønner ec10e4baae Hide the application button when previewing workspaces
This reduces the jumpiness caused by different workspace name length.
2018-04-06 13:50:12 +02:00
Tor Hedin Brønner 425f4077d1 bindings: Add Ctrl bindings for moving windows 2018-04-05 17:41:38 +02:00
Tor Hedin Brønner d6de1585d6 topbar: Access the activities label in a more straightforward way 2018-04-05 13:56:44 +02:00
Tor Hedin Brønner 205cb781ff tiling: move init, enable and disable to the top
This is a lot clearer
2018-04-04 14:26:32 +02:00
Tor Hedin Brønner 8366c15925 Move top bar specific code from tiling to topbar 2018-04-04 14:24:27 +02:00
Tor Hedin Brønner 769142f727 Repurpose the activity label as a worspace indicator
Introduces a topbar module.
2018-04-04 13:39:41 +02:00
Tor Hedin Brønner 6e198425e7 minimap: remove noisy and useless debug print 2018-04-04 05:45:17 +02:00
Tor Hedin Brønner a7861474d5 Ensure parents of transient windows
ref #40

Also return if we're dealing with a window in the scratch layer.
2018-03-29 15:00:59 +02:00
Ole Jørgen Brønner f3eb2b7b88 Fix change-workspace abort
Pressing <meta>-ESC will now abort workspace changes the same way window changes
are aborted

Probably fixes #37 too (untested since <super>-TAB is restricted to active workspace
atm.)
2018-03-29 14:53:59 +02:00
Tor Hedin Brønner 9351bf8607 Fix left over spaces._spaces references 2018-03-22 09:51:08 +01:00
Tor Hedin Brønner 2223ca20af Disable default '<super>escape' binding 2018-03-22 05:28:38 +01:00
Tor Hedin Brønner da64d0fcf9 scratch: Show top bar when a floating window is open 2018-03-16 21:31:51 +01:00
Tor Hedin Brønner 1e1506abb1 Don't disconnect focus when moving windows between spaces 2018-03-12 17:17:32 +01:00
Tor Hedin Brønner ccf59e8a6b Don't access label after it's destroyed 2018-03-11 22:16:14 +01:00
Tor Hedin Brønner a00517b209 Don't connect the focus signal more than once
Resetting the `focus_signal` on reload should work, but it's better to just
handle it with `init`.
2018-03-11 22:03:17 +01:00
Tor Hedin Brønner 633af3a0df Run scratch layer heuristic for all windows on startup
Since `add_filter` will filter out «stuck» windows the heuristic wasn't run on
any possible scratch windows (since most floating scratch windows are «stuck»).
2018-03-11 20:07:45 +01:00
Tor Hedin Brønner cfe253a0fa Handle scratch windows on focus
In particular we want to set `above` as it gets unset on minimize.
2018-03-11 19:13:08 +01:00
Tor Hedin Brønner e4d1226100 focus handling: Add focus handler to all windows
Also set selectedWindow in `ensure_viewport`, as this avoids setting
selectedWindow on any windows not in a space.
2018-03-11 19:12:18 +01:00
Tor Hedin Brønner dbc0a9ce70 Simplify and move focus_wrapper 2018-03-11 19:10:53 +01:00
Tor Hedin Brønner 5b01fbab68 spaces: Simplify structure
Make the spaces object a `Map`.
2018-03-11 18:33:22 +01:00
Tor Hedin Brønner 96b395efc3 spaces: Actually use Map
Somewhat long standing bug, where we introduced `Map`, but actually just used it
as a regular object.
2018-03-11 18:27:50 +01:00
Tor Hedin Brønner a7b2bc11ef Use class for Space, instead of function 2018-03-11 18:16:22 +01:00