Created attachment 6221 on update reset fade as well Let me give an example: NotifyNotification *n; notify_init("Test"); n = notify_notification_new ("Summary", "Body" NULL); notify_notification_set_timeout(n, 1500); notify_notification_show (n, NULL)); sleep(1); notify_notification_update(n, "Test Timeout", "Body", NULL); notify_notification_set_timeout(n, 10000); notify_notification_show (n, NULL)): This shows "Summary / Body", then starts to fade after just half a second. After a full second the notification is updated to "Test Timeout / Body". The fade continues and after a total of one and a half second the notification has gone away. I think the correct behavior is to cancel the fade, update the timeout and show the updated notification for 10 seconds.
Created attachment 6726 on update reset fade as well Update for git master...
Hi! Sorry there was no response on your bugreport and patch for so long and thanks for updating it for the latest changes in git master. Do you have a small reproducer with which I can test this? Seems a bit like a corner-case to me (at least I don't know of any application with which I would encounter this bug), but fix-worthy nevertheless!
My first comment has a minimal example with explanation. Does that help or should I prepare source for a complete demo application?
Created attachment 6731 demo code Looks like I never tested my demo code... It does not even compile. Fixed all issues (still no error handling, though), please test with demo.c. The explanation still applies.
Thanks for the patch and the demo code. I've tested it and reproduced the problem as well as the fix. I amended one line in your patch though, which wasn't correct: gtk_widget_set_opacity(GTK_WIDGET(window), window->normal_opacity); instead of: gtk_window_set_opacity(GTK_WINDOW(window), 1.0); First of all gtk_window_set_opacity has been deprecated a while ago (Gtk3.8) and secondly it's better to reset to the opacity that all notifications have, not just a hardcoded value of 1.0. Thanks again, fix pushed to master!