Commit Graph
1334 Commits
Author SHA1 Message Date
Ole Jørgen Brønner 2d143d1292 examples: inc/dec window width (<super>+/-) 2019-10-07 16:26:22 +02:00
Ole Jørgen Brønner 43b33a86bd moooar! 2019-10-07 00:05:17 +02:00
Ole Jørgen Brønner 02ccc35fd4 examples: cycle-edge-snap 2019-10-07 00:05:17 +02:00
Tor Hedin Brønner 29cd9695b2 gestures: Fix unwanted snapping at the edges 2019-10-06 08:11:13 +02:00
Tor Hedin Brønner a908d2a208 x11: fix unreactive floats on empty workspaces
Make sure space.targetX is synced, if it isn't moveDone won't get the chance to
remove the background tracker, which steals all mouse clicks.
2019-10-05 12:16:29 +02:00
Tor Hedin Brønner 47f416553e fix typo 2019-10-03 02:03:18 +02:00
Tor Hedin Brønner 02012bc147 liveAltTab: kill unminimize animations manually
In 3.34 there's no _blockAnimations check, so we just set the correct
coordinates and scale immediately.
2019-10-02 21:26:03 +02:00
Tor Hedin Brønner d9c59ef50e prefs: don't scroll the tabs
The default tree view search doesn't work and can pop up outside the scroll so
disable it.

TODO: add something like `ctrl-f`, `/` to focus the search input
2019-10-01 22:20:19 +02:00
Tor Hedin Brønner fbd5dfbd5b startup: expose failures on startup
Pass the error notification utility to module.enable and use it in the startup
callback.
2019-10-01 17:11:27 +02:00
Tor Hedin Brønner 7988020aff workspaces-only-on-primary: ensure layout happens after overlay setup 2019-10-01 16:52:48 +02:00
Ole Jørgen Brønner ff282a0417 settings: some utility/debug functions for workspace settings 2019-09-29 23:18:30 +02:00
Ole Jørgen Brønner 024e8bb705 examples: keybinding for cycling workspace settings (among "unbound" and current)
Only relevant when using dynamic workspace. Typically used to change the empty
workspace settings to the one you want.
2019-09-29 23:18:30 +02:00
Ole Jørgen Brønner 8891577a4e Cache workspace settings objects
Needed due to weird hang (sometimes crash) when creating (probably only when
done rapidly?) same relocatable setting more than once.

(noticed when implementing workspace settings cycling)
2019-09-29 23:06:21 +02:00
Ole Jørgen Brønner e0dae49840 Misc polyfills for 3.28 backwards compatibility 2019-09-29 23:04:16 +02:00
Tor Hedin Brønner 52d1f86635 Fix ease polyfill for 3.28 2019-09-29 22:15:03 +02:00
Tor Hedin Brønner 8daee7ce38 Remove transition from tween calls 2019-09-28 16:20:42 +02:00
Tor Hedin Brønner 7277e90433 Fix non-default transition modes 2019-09-28 16:20:42 +02:00
Tor Hedin Brønner aa1cc2894b Fix reload visibility
Clutter's transition framework will delay painting the ease until some sort of
painting is requested or whatnat, even if duration == 0.

In particular on reload this means clones are invisible for quite a while.
Simply force positions on startup.
2019-09-28 16:19:48 +02:00
Tor Hedin Brønner 18fd713900 Use clutter animations
There's a few differences in how onComplete is run:
- We need to run moveDone on every clone transition, as the transitions aren't
done when cloneContainer's transition finishes
- We cannot run layout until startup is done. For some reason onComplete runs
before monitor setup is done properly.

squash! Use clutter animations

- Can't use addTween as a timeout, but transitions are now finished when
onComplete is run, so there's no need for this anymore.
2019-09-28 15:06:57 +02:00
Tor Hedin Brønner d95acdfdbd Add a tweener to clutter dispatch 2019-09-28 15:06:57 +02:00
Tor Hedin Brønner aa183e89ec Polyfill new 3.34 transition api 2019-09-28 15:06:57 +02:00
Tor Hedin Brønner 5ed464eac3 examples/user.js: add Keybindings and Examples
Examples is especially useful, as there's a bunch of bindings that can be
activated:
  Examples.keybindings.cycleMonitor()
2019-09-28 00:58:39 +02:00
Tor Hedin Brønner 8d83c9536d Run layout timer on window-gap change 2019-09-27 22:20:03 +02:00
Ole Jørgen Brønner 42ab8b7352 prefs: show all stored workspace settings
num-workspaces does not reflect workspace count when using 'dynamic-workspaces'
2019-09-27 22:09:01 +02:00
Tor Hedin Brønner c42d817e1a Do not purge workspaces when using the workspace carousel
fixes #164
2019-09-26 13:28:52 +02:00
Tor Hedin Brønner d3bd4c2a0a Run focus handling when selecting a focused transient window
Selecting an already focused window with a transient would not trigger a proper
focus signal.
2019-09-26 13:28:52 +02:00
Tor Hedin Brønner e5a7de21bb Fix floating clone positions
Floating windows tend not to trigger size-changed at all. Make sure we position
the clone correctly at least once.

Might of course be better to just run allocateClone when the actor is allocated
still, but I'm not entirely sure if the frame and actor is necessarily synced at
that point.
2019-09-26 13:28:52 +02:00
Ole Jørgen Brønner 8149c8d678 fix wrong log message 2019-09-24 22:18:08 +02:00
Tor Hedin Brønner 684b4352ba Fix resize allocation in 3.34
Instead of listening on the actor's allocation signal set the clones size when
the windew is resized. This works around 3.34 not allocating hidden actors.
2019-09-23 11:16:09 +02:00
Tor Hedin Brønner 451eaa04cf metadata: indicate 3.34 support
There's a few graphical glitches yet to be solved, but nothing that doesn't
work.
2019-09-19 16:10:52 +02:00
Tor Hedin Brønner f4c82bcdfe debug: support native systemd services
3.34 can run sessions using systemd user services. Use these if available to
access the journal.
2019-09-19 10:42:04 +02:00
Tor Hedin Brønner 88eacec974 3.34: fix new window animation
Clones will not update their graphic if their source is hidden. Temporally turn
opacity off to work around this limitation.
2019-09-15 07:19:41 +02:00
Ole Jørgen Brønner 9e7d1c4843 readme: remove oneshot from winprop example
Doesn't really make sense there.
2019-09-10 22:54:37 +02:00
Ole Jørgen Brønner 83d6b2706e keybinding system: don't require a focused window to trigger custom keybindings
fixes #169
2019-09-10 19:06:57 +02:00
Tor Hedin Brønner c0eb491efa liveAltTab: fix quick alt-tab in 3.34
_finish will now call destroy itself if the popup isn't yet visible:

https://gitlab.gnome.org/GNOME/gnome-shell/commit/12ec5d1cbec367835f356b84c79ea9131deecdb4
2019-09-10 00:12:28 +02:00
Tor Hedin Brønner d64742bdd3 Fix preference gui with 3.34 2019-09-09 03:32:15 +02:00
Tor Hedin Brønner cbd4585da7 Merge pull request #167 from Pajn/gnome-3-34
Fix crash under Gnome 3.34
2019-09-03 17:49:26 +02:00
Tor Hedin Brønner 7fb9f4a0c1 Fix full hot code reload
`getCurrentExtension()` does not work with gnome-shell-mode's eval. Use a
somewhat verbose feature detection to work around the changes made in 3.34.
2019-09-03 17:36:37 +02:00
Tor Hedin Brønner 97aff27a92 3.34: work around new object.actor rule
For ClutterActors object.actor === object, which means our `clone.actor` naming
needs to change.

https://gitlab.gnome.org/GNOME/gnome-shell/blob/master/js/ui/environment.js#L232
2019-09-02 00:52:48 +02:00
Rasmus Eneman f949799c37 Fix crash under Gnome 3.34 2019-08-30 08:16:23 +02:00
Ole Jørgen Brønner 95b6cd673d liveAltTab: only show TabList.NORMAL windows
Non-normal windows are unfocusable or request `mw.skip_taskbar`
2019-08-24 10:02:54 +02:00
Ole Jørgen Brønner 4adfad7298 Bugfix: new jetbrains IDE window could crash insertWindow
In general: NPE in stackoverlay when target window is non-`TabList.NORMAL`
crashes `insertWindow` midway. (eg. size-changed signal never connected).

A `TabList.NORMAL` window is focusable and doesn't `mw.skip_taskbar`.

Example: The main window of pycharm on startup is (sometimes) non-normal(!).
Focusing the window fail so it's likely to become the stackoverlay target.

(java applications is a WM's worst nightmare..)
2019-08-24 09:20:14 +02:00
Ole Jørgen Brønner 2a0da27f9f Bugfix: connectOneShot signals didn't disconnect on Signals.disconnect
Prevented 2364308681 from working in all
cases. (ie. windows could still be registered twice)
2019-08-14 22:27:12 +02:00
Ole Jørgen Brønner 611680e06b More robust determination of focus window when inserting new window
Seem the ordering of "focus", "window-created", "window-added" and "first-frame"
and the corresponding update of eg. global.display.focus_window and the mru list
is quite complicated and non-deterministic..

Some sampling reveals the following possible combinations on 3.28 X11:
fw = global.display.focus_window, mw = metaWindow in insertWindow (new window)

fw = mw  mw = mru0  !fw     fw = mru0  fw = mru1
false    false      false   false      false
false    false      false   true       false
false    true       false   false      true
false    true       true    false      false
true     false      false   false      true
true     true       false   true       false

So it's quite messy, but we can (hopefully) always rely on the currently
focused  ("adult") window to be in the mru.
2019-07-24 11:48:04 +02:00
Ole Jørgen Brønner a4e7950d38 Bugfix: window actor of some floating windows was never shown
If a floating window initially was marked as is_on_all_workspaces the actor was
never shown (after the initial animateWindow)

fixes #156
2019-07-19 20:26:43 +02:00
Tor Hedin Brønner e05373895c set-recommended-gnome-shell-settings: do not prefer static workspaces
We now support dynamic workspaces well, so there's no longer a good reason to
prefer static workspaces by default.
2019-07-16 15:46:45 +02:00
Tor Hedin Brønner 98f4161e95 x11: force an animate cycle after workspace switches
When switching between monitors, we can get into a situation where windows
aren't taking mouse input, looks like a weird x11 bug.
2019-07-16 15:40:59 +02:00
Spiss, Lukas eb36f7938a Add panel offset to label position 2019-07-14 20:30:43 +02:00
Ole Jørgen Brønner ba0c82f273 toggle-maximize-width: unmaximze if window is maximized
Note: the reason we doesn't simply use `maximize(Meta.MaximizeFlags.HORIZONTALLY`
for toggle-maximize-width is that maximized windows are unmovable [1] and (more
debatable) that maximized width should honor minimumMargin.

[1] doesn't play to well with paperwm, though we have some hacks in place for
    regular maximized windwos

Ref: #157
2019-07-14 13:14:13 +02:00
Rasmus Eneman e87080e795 Unmaximize window on cycleWidth 2019-07-14 12:44:58 +02:00