Commit Graph
173 Commits
Author SHA1 Message Date
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
Tor Hedin Brønner 1de31e365a Working extension
Regression: enable() is run too early to find the topbar the way we did it
before. Commented out the statusbar.visible handling, and hardcoded the height
for now.

TODO: find a signal we can use to find the topbar properly.
2017-09-20 15:58:02 +02:00
Tor Hedin Brønner 85fc37f617 Explicitly add all dependencies 2017-09-20 15:19:17 +02:00
Tor Hedin Brønner ab1c99da01 Add bare bones necessary files for extension packing 2017-09-20 14:52:44 +02:00
Tor Hedin Brønner 769891f9b2 Move _repl to own file 2017-09-20 13:32:27 +02:00
Tor Hedin Brønner b48b7ef3de Move global preferences to the top 2017-09-19 11:20:26 +02:00
Tor Hedin Brønner 778ec72b2c Give margin the sensible name stack_margin 2017-09-19 10:51:29 +02:00
Tor Hedin Brønner 299bab0bbd Update path 2017-09-19 10:36:30 +02:00
Ole Jørgen Brønner cdc40e82f6 Some comments on window positioning 2017-09-18 20:07:19 +02:00
Tor Hedin Brønner 6ca2e102b1 Make fresh workspaces work better
When there's enough screen width to fit all windows, make them share the
available space evenly.

NOTES:

This does NOT set the currently ensuring window, and does an ugly early return.
2017-09-18 19:54:31 +02:00
Tor Hedin Brønner e0b37b62e6 Remove obsolete global variable overlap 2017-09-18 18:57:34 +02:00
Ole Jørgen Brønner 458a1e5a9f Don't wrap around in PreviewedWindowNavigator 2017-09-18 17:21:45 +02:00
Ole Jørgen Brønner 7a215149cf Debug utils: print stacktrace and allow mulitlines debug messages
Encode newlines using non-breaking space.

Don't unconditionally encode newlines though since it the debug script must be
used to decode them.
2017-09-18 12:13:44 +02:00
Ole Jørgen Brønner e0381329fc Disable debugging messages from PreviewedWindowNavigator
Change the debug filter to allow exclusion, not just inclusion.
2017-09-18 10:20:38 +02:00
Tor Hedin Brønner 3f880f0d35 Don't tile NORMAL transient windows 2017-09-18 09:58:45 +02:00
Ole Jørgen Brønner 007492e600 Bugfix: PreviewedWindowNavigator ensured wrong window sometimes
To reproduce:
- activate the popup
- move the pointer over an entry
- use the keyboard to select another entry

On modifier release the keyboard-selected window get focus, but the mouse/pointer
hovered window is ensured.

Not sure why item-enter (hover) is triggered since the pointer already has
entered that item, but this is a workaround. Even if the pointer was required to
move the situation could probably be triggered by actually moving the pointer
while releasing the modifier key.
2017-09-18 09:45:29 +02:00