Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: components/exo/display.cc

Issue 2065133002: exo: Implement notification surface support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@notification-wayland-protocol
Patch Set: fix compile Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/exo/display.h ('k') | components/exo/notification_surface.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/exo/display.cc
diff --git a/components/exo/display.cc b/components/exo/display.cc
index 7039936a1db49b11a4de1b0ff40cd987806c3a5f..03261baf3f1269b14b7534fb9d57a3e999c1e12a 100644
--- a/components/exo/display.cc
+++ b/components/exo/display.cc
@@ -12,6 +12,8 @@
#include "base/memory/ptr_util.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/trace_event_argument.h"
+#include "components/exo/notification_surface.h"
+#include "components/exo/notification_surface_manager.h"
#include "components/exo/shared_memory.h"
#include "components/exo/shell_surface.h"
#include "components/exo/sub_surface.h"
@@ -32,7 +34,10 @@ namespace exo {
////////////////////////////////////////////////////////////////////////////////
// Display, public:
-Display::Display() {}
+Display::Display() : notification_surface_manager_(nullptr) {}
+
+Display::Display(NotificationSurfaceManager* notification_surface_manager)
+ : notification_surface_manager_(notification_surface_manager) {}
Display::~Display() {}
@@ -179,4 +184,20 @@ std::unique_ptr<SubSurface> Display::CreateSubSurface(Surface* surface,
return base::WrapUnique(new SubSurface(surface, parent));
}
+std::unique_ptr<NotificationSurface> Display::CreateNotificationSurface(
+ Surface* surface,
+ const std::string& notification_id) {
+ TRACE_EVENT2("exo", "Display::CreateNotificationSurface", "surface",
+ surface->AsTracedValue(), "notification_id", notification_id);
+
+ if (!notification_surface_manager_ ||
+ notification_surface_manager_->GetSurface(notification_id)) {
+ DLOG(ERROR) << "Invalid notification id, id=" << notification_id;
+ return nullptr;
+ }
+
+ return base::MakeUnique<NotificationSurface>(notification_surface_manager_,
+ surface, notification_id);
+}
+
} // namespace exo
« no previous file with comments | « components/exo/display.h ('k') | components/exo/notification_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698