Bug 1337369 - [Wayland] Expose moz_container_get_wl_surface() to get MozContainer overlayfrom compositor widget, r?jhorak
MozReview-Commit-ID: 9Q4yJ1W0miE
--- a/widget/gtk/mozcontainer.cpp
+++ b/widget/gtk/mozcontainer.cpp
@@ -528,8 +528,24 @@ moz_container_get_child (MozContainer *c
return NULL;
}
static void
moz_container_add(GtkContainer *container, GtkWidget *widget)
{
moz_container_put(MOZ_CONTAINER(container), widget, 0, 0);
}
+
+#ifdef MOZ_WAYLAND
+struct wl_surface*
+moz_container_get_wl_surface(MozContainer *container)
+{
+ if (!container->subsurface || !container->surface) {
+ GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
+ if (!gdk_window_is_visible(window))
+ return nullptr;
+
+ moz_container_map_surface(container);
+ }
+
+ return container->surface;
+}
+#endif
--- a/widget/gtk/mozcontainer.h
+++ b/widget/gtk/mozcontainer.h
@@ -88,9 +88,13 @@ void moz_container_put (MozCo
gint y);
void moz_container_move (MozContainer *container,
GtkWidget *child_widget,
gint x,
gint y,
gint width,
gint height);
+#ifdef MOZ_WAYLAND
+struct wl_surface* moz_container_get_wl_surface(MozContainer *container);
+#endif
+
#endif /* __MOZ_CONTAINER_H__ */