mirror of
https://github.com/electron/electron.git
synced 2026-01-27 16:28:23 -05:00
Merge pull request #130 from atom/linux-notification
Guard against outside input in Linux notifications
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user