windowgestures icon indicating copy to clipboard operation
windowgestures copied to clipboard

GNOME 49 issues with maximize and right/left swipe

Open ewagner12 opened this issue 3 months ago • 7 comments

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.

ewagner12 avatar Sep 23 '25 20:09 ewagner12

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.

thyttan avatar Oct 28 '25 23:10 thyttan

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.

thyttan avatar Oct 29 '25 01:10 thyttan

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

thyttan avatar Oct 29 '25 03:10 thyttan

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);

thyttan avatar Oct 29 '25 21:10 thyttan

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.

thyttan avatar Nov 04 '25 23:11 thyttan

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.

Christopher-K-Long avatar Nov 11 '25 06:11 Christopher-K-Long

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.

thyttan avatar Nov 19 '25 17:11 thyttan