messageTray: "Undo" action cannot emit 'done-displaying' signal
Affected version
Shell master and also last stable branch (gnome-3-34
)
Bug summary
In the case of "Undo" as notification action, it was realized that done-displaying
signal was not getting emitted.
The _onUndoClicked
seems to destroy the NotificationBanner
in _hideNotificationCompleted
hence, the emission of done-displaying
after the callback is completed, in action-button clicked
handler gives a stack-trace:
Jan 21 18:26:04 localhost.localdomain gnome-shell[1832]: Registering session with GDM
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: Object .Gjs_ui_messageTray_NotificationBanner (0x1740d20), has been already deallocated — impossible to emit any signal on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: == Stack trace for context 0x1303720 ==
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: #0 37551a0 i resource:///org/gnome/shell/ui/messageTray.js:602 (7f6b392cf940 @ 49)
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: == Stack trace for context 0x1303720 ==
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: #0 3755238 i resource:///org/gnome/shell/ui/messageTray.js:516 (7f6b392cf430 @ 111)
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: #1 37551a0 i resource:///org/gnome/shell/ui/messageTray.js:603 (7f6b392cf940 @ 70)
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: == Stack trace for context 0x1303720 ==
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: #0 3755238 i resource:///org/gnome/shell/ui/messageTray.js:517 (7f6b392cf430 @ 126)
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: #1 37551a0 i resource:///org/gnome/shell/ui/messageTray.js:603 (7f6b392cf940 @ 70)
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: Object .Gjs_ui_messageTray_Notification (0x1acdae0), has been already deallocated — impossible to emit any signal on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: Object .Gjs_ui_messageTray_Notification (0x1acdae0), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 21 18:26:25 localhost.localdomain gnome-shell[1832]: g_object_run_dispose: assertion 'G_IS_OBJECT (object)' failed
Steps to reproduce
- Install current shell master or gnome-3-34
- Open terminal with
journalctl --follow
- Remove an icon from `Favorites side-bar and watch for "removed X" notification
- Hover over the notification to click
Undo
button.