Commit Graph
594 Commits
Author SHA1 Message Date
Tor Hedin Brønner 83fb3795ec Fix clipping on all spaces when navigating workspace mru 2018-08-27 20:33:34 +02:00
Tor Hedin Brønner 2e8fe499b3 wip 3 finger touchpad scrolling 2018-08-27 20:33:34 +02:00
Tor Hedin Brønner 88bac15134 wayland: Enable clicking on spaces 2018-08-27 20:33:34 +02:00
Tor Hedin Brønner 7c37c8c83f Animate fullscreen windows down when navigating
When starting navigation we always want to move fullscreen windows below the top
bar.
2018-08-27 20:33:34 +02:00
Tor Hedin Brønner ff2a7694de Separate overlay and visibility handling
We only need to calculate visible windows when we're ready to show window
actors again. This makes the tracking more robust as it should always be called
at the correct time.

`fixVisible` is replaced by `space.isPlaceable(metaWindow)` which checks if the
window actor can be placed at its clone's position. We simply call isPlaceable
from the main `moveDone` loop.
2018-08-27 20:33:34 +02:00
Tor Hedin Brønner 145a8d3347 Polyfill global.workspace_manager 2018-08-27 20:33:34 +02:00
Tor Hedin Brønner 77ca390a5c Fix unchecked usage of oldSpace 2018-08-27 19:44:04 +02:00
Tor Hedin Brønner 758f8ce750 space.layout: compare against correct width when centering 2018-08-26 19:41:54 +02:00
Tor Hedin Brønner a4f8cd1e3f Construct spaces on enable
To avoid showing the shared background on startup we create spaces on enable,
only deferring adding the windows (which isn't available on enable).
2018-08-26 17:58:36 +02:00
Tor Hedin Brønner a5899fdd6b fixup: set selected correctly 2018-08-23 01:38:01 +02:00
Tor Hedin Brønner 01fa77cc6c Run layout on every window resize
If a non-selected was resized the layout would be wrong.
2018-08-23 01:36:02 +02:00
Tor Hedin Brønner 62f497aeee cleanup 2018-08-23 01:25:02 +02:00
Tor Hedin Brønner 4c7484d683 window layout: Use the actor's size instead of buffer
For some reason `get_buffer_rect` causes issues when animating new windows,
specifically with Tilix windows.

Also simplify the comments here.
2018-08-23 01:25:02 +02:00
Tor Hedin Brønner fd9fae47f1 Align window clone coordinates using a layout manager
This way we won't have to compute dX all over the place, instead the clones are
correctly aligned with the window frame by default.

This also seems to mostly fix the resize problem on wayland, so we no longer
need to update the clone size on `size-changed`.
2018-08-18 02:12:56 +02:00
Tor Hedin Brønner 51d1cf0deb Space: Increase background height
This makes the bottom of the space prettier if seen (eg. when smooth scrolling).
2018-08-06 17:18:06 +02:00
Tor Hedin Brønner 2a2511eea4 Disable the background menu 2018-08-06 16:37:43 +02:00
Tor Hedin Brønner 90a076bb1d add_filter: Simplify 2018-08-05 23:07:08 +02:00
Tor Hedin Brønner 9e24210e2c Never add transient or non-normal windows
A transient window can be NORMAL, at least in wayland.
2018-08-05 23:05:41 +02:00
Tor Hedin Brønner e747ec9a47 switch-left/right: Select the top stacked window in a column 2018-08-03 16:30:44 +02:00
Tor Hedin Brønner 9881b970a0 selectSpace: Don't restart animations 2018-08-03 15:51:39 +02:00
Tor Hedin Brønner c8678ea79f workspace scroll: Add smooth scroll for touchpads
closes #74
2018-08-03 15:50:42 +02:00
Tor Hedin Brønner a1bda566df Refactor _initWorkspaceStack out of selectSpace 2018-08-02 15:12:39 +02:00
Tor Hedin Brønner bad680975c layout: Center correctly
Subtract the last added gap
2018-07-24 18:20:38 +02:00
Tor Hedin Brønner 1b03c6177d Fix "Guard against moving windows while changing monitors"
`monitor.index` is a number, not a function. So the guard doesn't seem to work
as it just happened to prevent moving windows to other monitors/workspaces.
2018-07-23 18:15:38 +02:00
Tor Hedin Brønner c349e068d1 Another fix for clipping in the overview 2018-07-21 15:11:38 +02:00
Tor Hedin Brønner 051d778d78 Show the window actors when leaving the overview 2018-07-20 10:48:35 +02:00
Tor Hedin Brønner 9e97ba77c8 Avoid showing any clipping when the overview is active 2018-07-19 12:59:54 +02:00
Tor Hedin Brønner 5e89005a5d Set a max width for tiled windows 2018-07-19 10:31:17 +02:00
Tor Hedin Brønner cea275d222 Guard against moving windows while changing monitors 2018-07-19 10:31:17 +02:00
Tor Hedin Brønner 371b9f2c0e spaces: rebuild the stack on monitors-changed 2018-07-19 10:31:17 +02:00
Tor Hedin Brønner a2b5a26838 Expose the workspace preview in Tiling.inPreview
Might not be ideal, but having it on spaces can cause trouble if ensureVievport
is called before spaces is constructed fully.
2018-07-18 23:08:23 +02:00
Tor Hedin Brønner 07ab295d28 Add move functionality to spaces.selectSpace 2018-07-18 23:08:23 +02:00
Tor Hedin Brønner 222421d694 Insert new windows into the correct space when navigating 2018-07-18 23:08:23 +02:00
Tor Hedin Brønner 1529fd86f4 switch-first/last: Integrate properly into the navigator 2018-07-18 22:37:34 +02:00
Tor Hedin Brønner 73b028e423 Apply actions to the correct space 2018-07-18 22:37:34 +02:00
Tor Hedin Brønner 0ed2cd32bf Refactor workspace selection from navigator to spaces
This is a bit cleaner, and makes it possible to deal with previous-workspace
etc. the same way as switch-next etc. ie. mostly handled through it's action
handler, instead of special casing in navigator.js.

Another benefit is that we now actually keep track of the workspace mru
directly, eg. empty workspaces doesn't just drop off for no reason.
2018-07-18 22:37:34 +02:00
Tor Hedin Brønner b7eda1957d Move switch-workspace handling to Spaces 2018-07-18 22:37:34 +02:00
Ole Jørgen Brønner 39e0a68d3c Refactor switch-next/previous 2018-07-18 22:37:34 +02:00
Ole Jørgen Brønner 61290f142d Prepare for navigator refactor + refactor switch-left/right/up/down 2018-07-18 22:37:34 +02:00
Tor Hedin Brønner fc260da22d Consistently declare and use screen and display
Makes things shorter and removes language warnings of using undeclared
variables.
2018-07-12 16:14:26 +02:00
Tor Hedin Brønner d41d6b9033 Fix duplicate workspace settings
Simplyfy things by storing all workspace settings from the get go.
2018-07-11 18:47:56 +02:00
Tor Hedin Brønner 55c6b60803 Add settings UI with workspace controls and gap and margin spinners
`Settings.ui` is built with and can be inpsected with Glade.
2018-07-11 18:47:56 +02:00
Tor Hedin Brønner 0a8a0079c9 Fix resize grab, layout should actually respect animate 2018-07-10 15:21:23 +02:00
Tor Hedin Brønner 811473462a Use the stacking order when updating the stack around focus
This will focus the last _selected_ neighbour when closing focus, instead of the
last focused neighbour. This pick should be more obvious, eg. when selecting the
left window, closing focus, and then suddenly going to the right window (since
it happened to be the last focus).
2018-07-10 14:53:01 +02:00
Tor Hedin Brønner 49082dbd56 Add basic wallpaper support
Also add noise by default

To set a background:
```
space.settings.set_string('background', '/path/to/image.png')
```

To reset:
```
space.settings.set_string('background', '')
```
2018-07-08 12:09:47 +02:00
Tor Hedin Brønner c723fa2a4d Use new workspace settings schema
Per workspace settings can be accessed through `space.settings`.

A setting's path is stored under its uuid in
`/org/gnome/shell/extensions/paperwm/workspaces/${uuid}/`. When modifying a
workspace setting the uuid will be recorded in
`org.gnome.Shell.Extensions.PaperWM.WorkspaceList`.

Spaces get their settings by looking for an uuid with an `index` key
corrosponding to its `workspace.index()`. If such a setting can't be found the
space will be given a fresh uuid and the name and color will be assigned as
before.
2018-07-08 12:09:47 +02:00
Tor Hedin Brønner 9ed46519c3 Animate selection scale when inserting a new window 2018-07-07 21:20:58 +02:00
Tor Hedin Brønner be47d68248 Get rid of space.delayed
Guard against syncing and showing window actors if we're not at `space.targetX`,
ie. if we're still animating.

Also correctly set `space.moving` only when we're actually animating.
2018-07-07 19:16:48 +02:00
Tor Hedin Brønner aeebf8daa5 Connect size-changed signal when adding new windows to the scratch
Missed a return on `addToScratch`.
2018-07-07 10:29:32 +02:00
Tor Hedin Brønner 9c9a79743a grab: actually fix all of the coordinates... 2018-07-06 21:41:56 +02:00