summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hua <william.hua@canonical.com>2017-03-04 10:13:01 -0500
committerWilliam Hua <william.hua@canonical.com>2017-03-06 10:36:45 -0500
commitdbb3f847960c954d702daf83174d711f552ac745 (patch)
treefee2a25edb1ed4a68367a2f39559d15d5a9f4fca
parent24b966f6e7e7819bbd31c0205baf6eef9e8effe1 (diff)
downloadgtk+-dbb3f847960c954d702daf83174d711f552ac745.tar.gz
mir: don't create GDK_INPUT_ONLY windowswip/attente/mir
-rw-r--r--gdk/mir/gdkmirwindowimpl.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
index b47e4eaa98..0b7a80b516 100644
--- a/gdk/mir/gdkmirwindowimpl.c
+++ b/gdk/mir/gdkmirwindowimpl.c
@@ -543,6 +543,9 @@ ensure_mir_window_full (GdkWindow *window,
GdkMirWindowReference *window_ref;
MirWindowSpec *spec;
+ if (window->input_only)
+ return;
+
if (impl->mir_window)
{
if (impl->pending_spec_update)
@@ -632,7 +635,8 @@ send_buffer (GdkWindow *window)
GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);
/* Send the completed buffer to Mir */
- mir_buffer_stream_swap_buffers_sync (mir_window_get_buffer_stream (impl->mir_window));
+ if (impl->mir_window)
+ mir_buffer_stream_swap_buffers_sync (mir_window_get_buffer_stream (impl->mir_window));
/* The Cairo context is no longer valid */
g_clear_pointer (&impl->cairo_surface, cairo_surface_destroy);
@@ -658,6 +662,9 @@ gdk_mir_window_impl_ref_cairo_surface (GdkWindow *window)
ensure_mir_window (window);
+ if (!impl->mir_window)
+ return NULL;
+
if (window->gl_paint_context)
{
cairo_surface = cairo_image_surface_create (pixel_format, window->width, window->height);
@@ -755,12 +762,12 @@ gdk_mir_window_impl_show (GdkWindow *window,
ensure_mir_window (window);
if (!window->gl_paint_context)
- {
- /* Make sure something is rendered and then show first frame */
- s = gdk_mir_window_impl_ref_cairo_surface (window);
- send_buffer (window);
- cairo_surface_destroy (s);
- }
+ {
+ /* Make sure something is rendered and then show first frame */
+ s = gdk_mir_window_impl_ref_cairo_surface (window);
+ send_buffer (window);
+ cairo_surface_destroy (s);
+ }
}
static void