Commit Graph
188 Commits
Author SHA1 Message Date
Tor Hedin Brønner cf7f0e868b window-removed: don't ensure windows that aren't part of the space 2017-09-23 17:08:17 +02:00
Tor Hedin Brønner f724ab372f Add detach utility function which can be called from lg 2017-09-23 16:59:12 +02:00
Tor Hedin Brønner 219c774c8a Delete obsolete margin variable/state 2017-09-23 16:14:23 +02:00
Tor Hedin Brønner 5be8617543 Make centering a proper case when moving windows into view
Centering shouldn't be implemented by mutating `margin`, but be its own case of
course. (can drop `margin` here now).
2017-09-23 15:55:33 +02:00
Tor Hedin Brønner 30637ddfbe We should center based on margin_lr too
`margin_lr` can be used for eg. always center mode, by setting it to half the
monitor width, or just having active windows always be eg. 20% off the monitor
edge.
2017-09-23 15:38:35 +02:00
Tor Hedin Brønner ab9e9ec0b0 Handle primary monitor changes 2017-09-23 15:22:58 +02:00
Tor Hedin Brønner e2bbccbf77 Animate the top bar using scale_y instead of position
Fixes #27
2017-09-23 14:06:40 +02:00
Tor Hedin Brønner 481c351d2e Add some missing monitor offsets 2017-09-23 13:41:35 +02:00
Ole Jørgen Brønner 6f5baa2ed7 Minor: remove obsolete/ill-positioned comment 2017-09-23 11:51:24 +02:00
Ole Jørgen Brønner 0d1fc33d98 Update selectedWindow when a window in a inactive WS is closed/moved 2017-09-23 11:29:01 +02:00
Ole Jørgen Brønner ac62fa75ae Bugfix: focus_window is null when activities/overview is open
Caused windows opened from activities to be opened as scratch/sticky windows.
2017-09-23 11:27:11 +02:00
Ole Jørgen Brønner 8e5a17cd2b The new Space.selectedWindow is more accurate here 2017-09-23 10:48:10 +02:00
Ole Jørgen Brønner 25482a7c07 Try to let mutter control next focus after closing a window
Ref: #20
2017-09-23 10:46:05 +02:00
Tor Hedin Brønner b924867e2c Keybinding: toggle-fullscreen - <super><shift>f 2017-09-23 10:22:32 +02:00
Tor Hedin Brønner a1a71a0849 Fix #22: unmake_above when hiding scratch layer 2017-09-23 00:55:29 +02:00
Tor Hedin Brønner 317d2c0c2a Basic scratch toggle
Stack ordering isn't preserved properly. Use <Super>e to toggle for now.
2017-09-22 23:37:27 +02:00
Ole Jørgen Brønner 719f3a2a2f Minor variable rename
The window doesn't necessarily have focus and make the exact meaning apparent.
2017-09-22 23:01:01 +02:00
Ole Jørgen Brønner db5f36a1d5 Insert windows opened from "Activities"/background at correct index
Track `Space.selectedWindow` and use that instead of focus().

Fixes #19
2017-09-22 22:55:28 +02:00
Ole Jørgen Brønner e4584d79aa New winprop action: scratch_layer
`stick` the window and don't add it to the space.

Not sure if we need both float and scratch_layer though?

Place Riot in scratch layer by default.
2017-09-22 22:22:04 +02:00
Tor Hedin Brønner 3438a73da1 Add monitor offset to initial positions 2017-09-22 21:31:12 +02:00
Tor Hedin Brønner 99f1384f1d Rebind maximize-horizontally to <Super>f 2017-09-22 21:25:01 +02:00
Tor Hedin Brønner be5ef5eb92 Semi fix for positioning windows moved between workspaces
TODO: actually figure out the correct position, relying on `focus()` isn't
correct.
2017-09-22 21:22:32 +02:00
Tor Hedin Brønner 5582f19b7d Don't add already added windows
`window-added` sometimes run several times, (not sure why).
2017-09-22 21:12:27 +02:00
Tor Hedin Brønner 4a31e49381 Disconnect the focus handler properly
Uses a symbol to avoid any name collisions.

Fixes #22
2017-09-22 18:23:17 +02:00
Tor Hedin Brønner bfa8528d51 Don't add windows which are shown on all workspaces to the space
At the moment it's pretty impractical to have windows duplicated over several
spaces.
2017-09-22 18:10:33 +02:00
Tor Hedin Brønner 520ecf93c9 Lookup the space using the workspace in window-removed handler
When a window is «always on visible workspace» (ie. stick() is run)
`get_workspace` will return the active workspace, which is incorrect.
2017-09-22 17:06:05 +02:00
Tor Hedin Brønner 51e95bf998 Use the primary monitor to position windows
`global.screen_height/width` is of course not suitable since it refers to the
whole monitor space. Use the primary monitor for now.

This makes it possible to eg. position the primary below the extra workspace.
2017-09-22 14:39:10 +02:00
Tor Hedin Brønner 949a3efbd1 Fix spaceOf naming 2017-09-22 13:57:58 +02:00
Ole Jørgen Brønner 865deb23be Notes: cleanup 2017-09-21 23:37:26 +02:00
Ole Jørgen Brønner 56534ce5b2 Notes: GObject 2017-09-21 23:37:26 +02:00
Tor Hedin Brønner 7a186cd568 Center more wide windows
Be more liberal with what we consider to be a wide window. Another option is
having the cutoff be `stack_margin + window_gap` which means we'll center as
long as there's no other non-scaled window on the screen.
2017-09-21 23:02:02 +02:00
Ole Jørgen Brønner 1a95f82a6d Fix crash on quick successive closes
Fixes #12
2017-09-21 19:26:17 +02:00
Tor Hedin Brønner 523c46b935 Skip removed windows when propogating positions
When a window is removed the new focus is triggered before the `window-removed`
is triggered. But the actor is already gone, so we use that as a proxy.

This change should facilitate handling windows that are minimized too.
2017-09-21 19:01:33 +02:00
Tor Hedin Brønner 98226d1b53 Fix center
Also fix spaceOf since `this[index]` seemingly doesn't work.
2017-09-21 18:40:31 +02:00
Ole Jørgen Brønner 9c3931f429 Move set_action_handler 2017-09-21 18:06:24 +02:00
Ole Jørgen Brønner 94cfaa8419 Add the canonical convenience.js file for accessing settings 2017-09-21 16:38:02 +02:00
Ole Jørgen Brønner 367a9430f4 Use global.get_current_time for timestamps
Probably fixes WM warnings about timestamps.
2017-09-21 16:11:12 +02:00
Ole Jørgen Brønner e002d02e50 Move utils to separate file 2017-09-21 16:01:21 +02:00
Tor Hedin Brønner 1f2989d00f Add spaces.spaceOf utility function 2017-09-21 15:21:22 +02:00
Tor Hedin Brønner 646a8b7bba Create simple Space abstraction
Also move full spaces init to `enable`.
2017-09-21 15:18:43 +02:00
Tor Hedin Brønner 3246577447 Rename the array workspace to space 2017-09-21 15:15:51 +02:00
Tor Hedin Brønner 18605fc79f Rename workspaces to spaces 2017-09-21 14:41:22 +02:00
Tor Hedin Brønner 67f8a7e7d6 Use panelBox.height instead of statusbar_height
Setting statusbar_height this early fails on new logins.
2017-09-21 12:26:02 +02:00
Ole Jørgen Brønner dd5d762122 Fix regression: preserve tiling order across gnome-shell restart
Fixes #16

Note: should probably do a relayout too, instead of deferring this to first
window movement.
2017-09-21 12:13:25 +02:00
Tor Hedin Brønner 2376351042 Always position the panelBox above the monitor when hidden
The panel can be hidden by more than ensure_viewport. There's no point in
animating on the `hide` signal, but we can position the panel correctly,
later show animations work properly and will make sure any popdowns are position
correctly too.
2017-09-21 10:31:51 +02:00
Ole Jørgen Brønner ad2de4783f Minor bugfix: Use absolute path to local extension dir in install script 2017-09-21 10:29:55 +02:00
Tor Hedin Brønner f215d61ba7 Move show panel animation to a signal
Should ideally have hide animation in a signal too, but this doesn't seem to be
viable as it gnome-shell tries really hard to hide the panel when focusing a
fullscreen window.

Ie. if we disconnect both signals, show the panel while animating out
gnome-shell will just hide it again.
2017-09-21 02:21:21 +02:00
Tor Hedin Brønner e48943cc8e Add panel in/out animation 2017-09-21 01:13:37 +02:00
Tor Hedin Brønner 24b67ccab3 Fix statusbar regression
Main.layoutManager.panelBox is the correct way to reference the panel when
checking if it's visible or not.
2017-09-21 00:38:29 +02:00
Tor Hedin Brønner b6cfd0eefd Add local install script 2017-09-20 16:06:44 +02:00