Skip to content

Effects missing when activating password prompt with mouse (GNOME 48) #7

@nick-redwill

Description

@nick-redwill

On GNOME 48 (and possibly earlier versions) visual effects are not applied when switching to the password prompt by clicking the mouse button.

However the effects are applied correctly when triggering the prompt via keyboard input, which confirms the injection itself is working.

The root cause is the .bind(this) call in GNOME Shell 48's tap handler:

let tapAction = new Clutter.TapAction();
tapAction.connect('tap', this._showPrompt.bind(this));
this.add_action(tapAction);

It freezes the reference to _showPrompt before injection runs. As a result, mouse clicks always invoke the original unpatched method.

This was fixed in newer GNOME Shell versions:

const clickGesture = new Clutter.ClickGesture();
clickGesture.connect('recognize', () => this._showPrompt());
this.add_action(clickGesture);

The only viable fix is removing and recreating the TapAction after injection. Further testing is required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions