GNOME 49 issues with maximize and right/left swipe
Hi, thanks for the extension, it's been really great and useful to me.
I tested the latest version of the extension on Fedora 43 Silverblue with GNOME 49 and I'm seeing the following.
What's working: 3 finger up and 3 finger down works, 3 finger down > up works, 4 finger swipe down works no problem with these gestures.
What's not working:
- Maximize window is not working with any gesture. Shows error:
JS ERROR: TypeError: activeWin.get_maximized is not a function
_runAction@file:///var/home/eric/.local/share/gnome-shell/extensions/[email protected]/extension.js:2505:44
_swipeEnd@file:///var/home/eric/.local/share/gnome-shell/extensions/[email protected]/extension.js:1373:22
_swipeEventHandler@file:///var/home/eric/.local/share/gnome-shell/extensions/[email protected]/extension.js:1399:21
_touchpadEvent@file:///var/home/eric/.local/share/gnome-shell/extensions/[email protected]/extension.js:1614:25
@resource:///org/gnome/shell/ui/init.js:21:20
Seems possible that the solution is to replace get_maximized with is_maximized as described here: https://gjs.guide/extensions/upgrading/gnome-shell-49.html#meta-window
- 3 finger down > right/left, 3 finger left/right and 4 finger left/right are not working and give following errors in journalctl:
JS ERROR: TypeError: can't access property "children", this._pages[pageIndex] is undefined
getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:922:17
getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:1440:30
_translatePreviousPageIcons@resource:///org/gnome/shell/ui/appDisplay.js:314:34
_syncPageIndicators@resource:///org/gnome/shell/ui/appDisplay.js:387:14
goToPage@resource:///org/gnome/shell/ui/appDisplay.js:436:14
goToPage@resource:///org/gnome/shell/ui/appDisplay.js:1250:29
onComplete@resource:///org/gnome/shell/ui/appDisplay.js:731:36
_makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:68:13
_easeActorProperty@resource:///org/gnome/shell/ui/environment.js:225:17
St.Adjustment.prototype.ease@resource:///org/gnome/shell/ui/environment.js:311:23
_swipeEnd@resource:///org/gnome/shell/ui/appDisplay.js:728:20
_endGesture@resource:///org/gnome/shell/ui/swipeTracker.js:651:14
_endTouchpadGesture@resource:///org/gnome/shell/ui/swipeTracker.js:672:14
_handleEvent@resource:///org/gnome/shell/ui/swipeTracker.js:196:18
@resource:///org/gnome/shell/ui/init.js:21:20
Not sure where this is pointing or if these messages are useful.
Let me know if there's anything I can do to help testing. I'm not experienced in JS, but I can help with testing and debug.
JS ERROR: TypeError: can't access property "children", this._pages[pageIndex] is undefined getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:922:17 getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:1440:30 _translatePreviousPageIcons@resource:///org/gnome/shell/ui/appDisplay.js:314:34 _syncPageIndicators@resource:///org/gnome/shell/ui/appDisplay.js:387:14 goToPage@resource:///org/gnome/shell/ui/appDisplay.js:436:14 goToPage@resource:///org/gnome/shell/ui/appDisplay.js:1250:29 onComplete@resource:///org/gnome/shell/ui/appDisplay.js:731:36 _makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:68:13 _easeActorProperty@resource:///org/gnome/shell/ui/environment.js:225:17 St.Adjustment.prototype.ease@resource:///org/gnome/shell/ui/environment.js:311:23 _swipeEnd@resource:///org/gnome/shell/ui/appDisplay.js:728:20 _endGesture@resource:///org/gnome/shell/ui/swipeTracker.js:651:14 _endTouchpadGesture@resource:///org/gnome/shell/ui/swipeTracker.js:672:14 _handleEvent@resource:///org/gnome/shell/ui/swipeTracker.js:196:18 @resource:///org/gnome/shell/ui/init.js:21:20
seems to indicate these lines as problematic:
src/extension.js|217 col 31-43| ._appDisplay._swipeTracker._touchpadGesture
https://github.com/amarullz/windowgestures/blob/0925f57929ed36116e8c8ad50cad7c2acf1ce919/src/extension.js#L216-L217
That's the only place that mentions both appDisplay and swipeTracker.
But I'm not certain that's it.
Maximizing windows is fixed in the branch diffed here:
https://github.com/amarullz/windowgestures/compare/main...thyttan:windowgestures:fix-gnome-49?expand=1
Still not worked out left/right swipe motions.
Can it be that it's expected that swipeTracker-s should now have debug names set and window gestures does not do that?
reference: https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/deede8ccfe30163aebdc29f5b7fb2103396bfeef
Looking at the stack trace and git blame-ing
_endTouchpadGesture@resource:///org/gnome/shell/ui/swipeTracker.js:672:14
is the only line among the listed ones that was updated since Gnome 48.1, as far as I can tell.
It looks like this:
this._endGesture(velocity, distance, true);
paperWM seems to have a similar problem according to this reddit comment:
- https://www.reddit.com/r/gnome/s/SjQrjHldeU
- https://www.reddit.com/r/gnome/s/UeVjuuavUF (edit)
I also saw it happen when using gesture improvements.
The first part of the error @ewagner12 shows,
3 finger down > right/left, 3 finger left/right and 4 finger left/right are not working and give following errors in journalctl:
JS ERROR: TypeError: can't access property "children", this._pages[pageIndex] is undefined getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:922:17 getItemsAtPage@resource:///org/gnome/shell/ui/iconGrid.js:1440:30 _translatePreviousPageIcons@resource:///org/gnome/shell/ui/appDisplay.js:314:34 _syncPageIndicators@resource:///org/gnome/shell/ui/appDisplay.js:387:14 goToPage@resource:///org/gnome/shell/ui/appDisplay.js:436:14 goToPage@resource:///org/gnome/shell/ui/appDisplay.js:1250:29
appears also in https://github.com/HieuTNg/touchpad-gesture-customization/issues/22#issuecomment-3324030437, which also broke for GNOME 49. Fixing one might help the other.
Work under way to fix paperWM (as written above) scroll problem at https://github.com/paperwm/PaperWM/pull/1106
will be helpful to inform this issue as well. Probably.