iimage-data hint causes mako to stop rendering all following notifications
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 173
- PR merge metrics
- No merged PRs in 30d
Description
When mako receives a notification containing the image-data hint (inline raw RGBA pixel data), it silently stops rendering all following notifications. mako remains registered on D-Bus, continues to accept notifications and return valid IDs, and even emits `NotificationClosed` signals after the configured timeout, but nothing is displayed on screen.
Running makoctl reload restores normal behavior. Disabling icons entirely (icons = false) prevents the issue.
## Environment
- mako 1.10.0
- Wayland compositor: river
- Triggered by: Thunderbird email notifications
## Steps to reproduce
1. Start mako normally
2. Use the Python script below (I noticed this first when receiving Thunderbird notifications)
No notification is rendered and any following notification (notify-send "test" "hello") is also not rendered
3. Run makoctl reload: `notify-send "test" "hello"` renders the notification again
## Other observations
- makoctl list shows following notifications as pending
- Notifications are closed via timeout (D-Bus NotificationClosed signal is emitted normally)
- No errors are printed to stderr
The issue appears specific to the image-data hint (inline pixel data). Notifications with icon file paths (app-icon or image-path) do not trigger the freeze.
## Script to Reproduce
```python
import dbus
bus = dbus.SessionBus()
notify = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
notify_iface = dbus.Interface(notify, 'org.freedesktop.Notifications')
width, height, channels = 48, 48, 4
rowstride = width * channels
data = [230, 126, 34, 255] * (width * height)
image_data = dbus.Struct(
[dbus.Int32(width), dbus.Int32(height), dbus.Int32(rowstride),
dbus.Boolean(True), dbus.Int32(8), dbus.Int32(channels),
dbus.Array(data, signature='y')],
signature='iiibiiay'
)
notify_iface.Notify(
'Thunderbird', dbus.UInt32(0), '',
'New message', 'Test body',
dbus.Array(['default', 'Activate', 'mark-as-read-moz', 'Mark as Read', 'delete-moz', 'Delete'], signature='s'),
{'image-data': image_data, 'desktop-entry': 'Thunderbird', 'suppress-sound': False},
dbus.Int32(-1)
)
```
## Workaround
Set icons = false in ~/.config/mako/config. This prevents mako from processing the image-data hint and the rendering freeze does not occur.
Contributor guide
Assessment
This issue has not been assessed yet.