Commit Graph
1323 Commits
Author SHA1 Message Date
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
Spiss, Lukas 9a03f5952e Fix capitalization in settings 2019-07-13 23:33:06 +02:00
Spiss, Lukas cf6b4ac3dd Fix typo in settings 2019-07-13 23:33:06 +02:00
Ole Jørgen Brønner 2364308681 Ensure 'startup-complete' is not connected twice
Windows sometimes was registered (`registerWindow`) twice on startup (observed
on X11 3.28) causing all sorts of problems.

Seems like the extension sometimes is enabled/disabled twice on startup causing
the 'startup-complete' signal to be connected twice. Use the `Signals` class to
manage the signal to guard against this scenario.

I added a one-shot function to `Signals` since it's an error to disconnect an
already disconnected signal and that would happen on disable if the
'startup-complete' signal disconnected the signal itself.

assoc: d8069078f2
2019-07-09 18:47:06 +02:00
Ole Jørgen Brønner ea9f6c225a prefs: add note about triggering a layout to see the changes 2019-07-08 18:36:38 +02:00
Ole Jørgen Brønner 4e511e37ac Bottom margin
Kept the 'vertical-margin' key (as opposed to renaming to some variant of
top-margin) for compatibility reasons

closes #146
2019-07-08 18:36:38 +02:00
Kolloom 446f51982a readme: document paperwm conflict with desktop-icon shell extension
olejorgenb: Moved the note to the install section and did some minor rewording

closes #148
2019-07-08 00:06:38 +02:00
David Tolnay f01a5bacd0 Fix typo in enable/disable log messages 2019-07-07 12:34:51 +02:00
Ole Jørgen Brønner d8069078f2 Guard against duplicate registerWindow
Seems to happen once and a while (observed on X11 3.28)
2019-07-06 18:29:17 +02:00
Ole Jørgen Brønner f81177ff16 readme: Document using dconf-editor to change settings 2019-07-06 13:56:09 +02:00
Tor Hedin Brønner cae7458d94 navigator: do not cancel on tab
closes #149
2019-07-06 13:20:31 +02:00
Ole Jørgen Brønner 82bc64512a prefs: clear workspace background button 2019-07-06 12:23:29 +02:00