Commit Graph

1431 Commits

Author SHA1 Message Date
Tor Hedin Brønner
fb758b5b42 app: return promised window 2019-10-29 22:26:39 +01:00
Tor Hedin Brønner
01329ee81f ActionDispatcher: support promised pseudo focus 2019-10-28 04:33:00 +01:00
Tor Hedin Brønner
951bc5b03d dynamic_function_ref: pass through return values 2019-10-28 04:08:08 +01:00
Tor Hedin Brønner
35799d5d01 navigator: fix typo 2019-10-27 16:04:50 +01:00
Tor Hedin Brønner
7a488ccc7b fixup! cycleWindowWidth: Remember and prefer the originial position 2019-10-27 14:40:18 +01:00
Tor Hedin Brønner
bd1a64bb36 fixup! navigator: Select the correct window 2019-10-27 14:02:29 +01:00
Tor Hedin Brønner
b7afbdad24 cycleWindowWidth: Use correct workarea for floating windows 2019-10-27 02:27:31 +02:00
Tor Hedin Brønner
a87f2d60fd cycleWindowWidth: Remember and prefer the originial position 2019-10-27 02:27:31 +02:00
Tor Hedin Brønner
8e6e8a54e6 navigator: Select the correct window 2019-10-27 02:27:31 +02:00
Tor Hedin Brønner
73a4e27bf7 action dispatcher: Introduce global pseudo focus while navigating
The action dispatcher would only allow actions to operate on tiled windows.

However some actions, like cycleWindowWidth, are able to operate on eg. scratch
windows, while it at the same time wants context between repeated cycles.

To solve this we add an explicitly tracked pseduo focus to the dispatcher.
Actions can now return a MetaWindow which then becomes the new focus.

This should pave the way for us to integrate eg. alt-tab with the dispatcher.
2019-10-27 02:25:41 +02:00
Tor Hedin Brønner
aecf376078 action dispatcher: Provide a context object for repeated actions 2019-10-27 00:22:46 +02:00
Tor Hedin Brønner
0bd9de889e cycleWindowWidth: fix typo 2019-10-26 15:57:03 +02:00
Tor Hedin Brønner
6556cb55d4 liveAltTab: fix typo 2019-10-26 15:36:56 +02:00
Tor Hedin Brønner
4b50816fcd workspace menu: Use symbolic preference icon 2019-10-26 15:35:58 +02:00
Tor Hedin Brønner
d9d11fab97 space.workArea(): Wrap workarea logic
I left a few sites which operates in global coordinates, or otherwise actually
want the actual workArea.
2019-10-26 15:34:58 +02:00
Tor Hedin Brønner
c3e5d5f8dd window highlight: Support maximized windows better 2019-10-26 15:33:26 +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