diff --git a/brightray/browser/linux/notification_presenter_linux.cc b/brightray/browser/linux/notification_presenter_linux.cc index 0c688906a7..557e527047 100644 --- a/brightray/browser/linux/notification_presenter_linux.cc +++ b/brightray/browser/linux/notification_presenter_linux.cc @@ -13,6 +13,7 @@ #include "content/public/common/platform_notification_data.h" #include "common/application_info.h" #include "dbus/dbus.h" +#include "third_party/skia/include/core/SkBitmap.h" namespace brightray { @@ -111,11 +112,12 @@ void NotificationPresenterLinux::ShowNotification( notification, "default", "View", OnNotificationViewThunk, this, nullptr); } - GdkPixbuf* pixbuf = libgtk2ui::GdkPixbufFromSkBitmap(icon); - - notify_notification_set_image_from_pixbuf(notification, pixbuf); - notify_notification_set_timeout(notification, NOTIFY_EXPIRES_DEFAULT); - g_object_unref(pixbuf); + if (!icon.drawsNothing()) { + GdkPixbuf* pixbuf = libgtk2ui::GdkPixbufFromSkBitmap(icon); + notify_notification_set_image_from_pixbuf(notification, pixbuf); + notify_notification_set_timeout(notification, NOTIFY_EXPIRES_DEFAULT); + g_object_unref(pixbuf); + } GError* error = nullptr; notify_notification_show(notification, &error); @@ -151,12 +153,16 @@ void NotificationPresenterLinux::DeleteNotification(NotifyNotification* notifica } void NotificationPresenterLinux::OnNotificationClosed(NotifyNotification* notification) { + if (!notification) + return; GetDelegateFromNotification(notification)->NotificationClosed(); DeleteNotification(notification); } void NotificationPresenterLinux::OnNotificationView( NotifyNotification* notification, char* action) { + if (!notification) + return; GetDelegateFromNotification(notification)->NotificationClick(); DeleteNotification(notification); }