Commit Graph
1423 Commits
Author SHA1 Message Date
Tor Hedin Brønner 6434bbd682 insertWindow: insert in correct workspace 2019-10-22 13:26:15 +02:00
Tor Hedin Brønner 1df69c1ec9 moveDone: complete moves in overview 2019-10-22 13:26:15 +02:00
Tor Hedin Brønner c40fc9351f workspacesChanged: Remove tiled windows on workspace removal 2019-10-22 13:26:15 +02:00
Tor Hedin Brønner 449d87c03a showHandle: Avoid some warnings 2019-10-22 13:26:15 +02:00
Tor Hedin Brønner ab96a09889 insertWindow: Do not handle tiled windows that are stuck
More only-on-primary work.

When a secondary monitor is to the left/right of primary, tiled windows become
`stuck` when they're pushed into the secondary monitor. Eg. if `A` and `B` is
tiled `B` will become `stuck` by entiring the secondary monitor:

|-----primary-----|----secondary------|
| |-------------| | |-------------|   |
| |             | | |             |   |
| |             | | |             |   |
| |      A      | | |      B      |   |
| |             | | |             |   |
| |_____________| | |_____________|   |
|_________________|___________________|

Handle this edge case by not doing anything with such windows.
2019-10-22 13:26:15 +02:00
Tor Hedin Brønner acee807f37 Space.init: use the old space for selectedWindow 2019-10-22 13:26:15 +02:00
Tor Hedin Brønner c5d651b9e3 window-removed: Delay removal until next addWindow
We need to guard against
2019-10-22 13:26:15 +02:00
Tor Hedin Brønner 047ec64287 Space: record which space a window is tiled 2019-10-22 13:26:15 +02:00
Ole Jørgen Brønner e75f3aac7f Notes: summarize signal sequence of misc state changes (WIP) 2019-10-21 21:36:35 +02:00
Ole Jørgen Brønner e54c2b34f0 Fix 3.28 error by polyfilling missing display.get_monitor_scale 2019-10-21 21:18:38 +02:00
Tor Hedin Brønner 482d29118e Merge pull request #179 from paperwm/workspace-menu
Modernize the workspace menu
2019-10-21 13:26:23 +02:00
Tor Hedin Brønner 501ea8a136 workspace label: Set min width to avoid movement while typing 2019-10-21 12:59:37 +02:00
Tor Hedin Brønner 2d98d9c57b workspace menu: Focus workspace name on open
For some reason activation doesn't work immediately on `_onOpenStateChanged`, so
we need an idle_add (like gpaste).
2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 02dd23bfd2 workspace menu: grab key focus on button clicks 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 7974f6adc5 workspace menu: Use Hide top bar 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner ddd5c495a8 workspace menu: add ornamental label
This adds some need width too.
2019-10-21 12:47:39 +02:00
Tor Hedin Brønner bcdc387554 workspace menu: add next/prev workspace settings buttons 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 0dead29718 workspace menu: simplify 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 4cfe445477 tiling: Move cycle to Tiling.cycleWorkspaceSettings 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 384dd6dab6 registerClass: Support passing extra spec as first arg 2019-10-20 19:05:43 +02:00
Tor Hedin Brønner 82ddc02716 Space.moveDone: Only block on grabbing a tiled window
When dragging a window to a shared secondary monitor, moveDone is blocked by
`inGrab`. However we only want this as long as the window haven't been detached
by window-entered-monitor.
2019-10-20 14:27:11 +02:00
Tor Hedin Brønner 196368d3ec tiling: Remove stray logging 2019-10-20 14:21:21 +02:00
Ole Jørgen Brønner 18b5507853 resize-actions: Increase "slack" and make it simpler to adjust
See https://gist.github.com/olejorgenb/434dcc616343a50d9d63f2a700ad89b7 for a
helper script to test various window constraints.

ref: #187
2019-10-20 11:48:47 +02:00
Tor Hedin Brønner c7cbd847cc window-entered-monitor: Only act on grabbed windows 2019-10-19 20:53:11 +02:00
Tor Hedin Brønner ba43c68ba8 edge overlays: start out unactivated
Be sane and start in a clean state.
2019-10-19 19:13:19 +02:00
Tor Hedin Brønner e290062253 insertWindow: Do not hide windows that are on all workspaces 2019-10-19 19:13:05 +02:00
Ole Jørgen Brønner 114e1be3b4 Merge pull request #185 from paperwm/workspace-directory
Launch apps from workspace directory
2019-10-18 19:54:53 +02:00
Ole Jørgen Brønner 426d44bf11 app: mkCommandLineSpawner util expanding %d to workspace directory
Use `tilix --working-directory %d` for tilix. Otherwise the daemon will have the
workspace dir as working directory. Subsequent new windows might inherit that
directory. (eg. in spaces that doesn't specify an explicit directory(?))
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 86d8b6275f app: Don't throw in spawnWindow, let trySpawnWindow throw
`spawnWindow` can be useful from `user.js`, so we make it always succeed, while
we while we introduce a throwing `trySpawnWindow` for internal use.
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 2c7bfae7d7 app: Fall back to original spawn when space.directory is unset
If the user haven't set a workspace directory we play it safe and call the
spawn the app with the non-kludged method.
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 957e27a1d1 kludges: Add overrideWithFallback 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 739c4350d7 app: Launch new windows from the workspace directory if set
We override these methods so this will work from the typical launchers:
   Shell.App.open_new_window
   Shell.App.launch_action('new-window', ...)
   Gio.DesktopAppInfo.launch
   Gio.DesktopAppInfo.launch_action('new-window', ...)

NOTE: overridden `launch` can act somewhat strange with single process many
window apps if the process. If the process is launched with a specific directory
new windows might inherit this on non-overridden `new-window`. (seen in Tilix)
2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 528154db4e app: launchFromWorkspaceDir util 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 5ea58aabcb utility: add app as dev global 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 9e8da016f2 workspace-directory: prefs GUI 2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 9d90930165 settings: add per workspace directory key 2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 56845e6267 readme: Note workspaces-only-on-primary limitations 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner f382ac07a1 kludge overview: handle only-on-primary 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner c8b8d78636 insertWindow: Handle stuck windows minimally
When spawning windows on a secondary monitor, and there's
workspaces-only-on-primary, we simply want to connect the necessary signals and
make sure the window is shown.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner d4838298d7 insertWindow: Make unstuck scratch windows stuck
When using `workspaces-only-primary` and a scratch window is moved from a
secondary monitor to the primary gnome-shell will make the window unstuck. So we
need to make it stuck again.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 642640c66e switchMonitor: Handle workspaces-only-on-primary 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 540c07dda3 grab window: Handle workspaces only on primary correctly 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 9c962f02ba window-entered-monitor: Only handle grabs
We now have custom ways to move windows between monitors
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner b886665b08 clickOverlay: cover the entire monitor
We guard against small movements triggering monitor change already.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 0653664dd3 clickOverlay: never activate when workspaces-only-on-primary
This means we can simply create clickOverlays for all the monitors, avoiding any
annyoing errors with missing overlays.
2019-10-18 16:10:41 +02:00
Tor Hedin Brønner 8916dde666 spaces: add onlyOnPrimary property 2019-10-18 14:06:01 +02:00
Tor Hedin Brønner 10038d417a layout: Run ensureViewport on auto corrections too
`auto` doesn't ensure that the selected window is inside the viewport.
2019-10-17 23:44:03 +02:00
Tor Hedin Brønner 0239b4e7a5 Fix errors on X11 startup when auto spawning windows 2019-10-17 23:08:30 +02:00
Tor Hedin Brønner c8dfaacb42 layout: Do not run any auto corrections when grabbing
NOTE: `animate` is false when grabbing. In general auto will cause an animate so
we disable it in the somewhat more general case.
2019-10-17 23:07:36 +02:00
Tor Hedin Brønner 3f1b4a7b8f minimap: Limit highlight height 2019-10-17 22:25:56 +02:00