diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c index 910eb94ad..8dec9101d 100644 --- a/src/backends/meta-cursor-renderer.c +++ b/src/backends/meta-cursor-renderer.c @@ -307,8 +307,6 @@ meta_cursor_renderer_set_position (MetaCursorRenderer *renderer, { MetaCursorRendererPrivate *priv = meta_cursor_renderer_get_instance_private (renderer); - g_assert (meta_is_wayland_compositor ()); - priv->current_x = x; priv->current_y = y; diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index b37697280..fcf69aa5a 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -374,8 +374,6 @@ meta_cursor_tracker_update_position (MetaCursorTracker *tracker, MetaCursorRenderer *cursor_renderer = meta_backend_get_cursor_renderer (backend); - g_assert (meta_is_wayland_compositor ()); - meta_cursor_renderer_set_position (cursor_renderer, new_x, new_y); g_signal_emit (tracker, signals[CURSOR_MOVED], 0, new_x, new_y); diff --git a/src/backends/meta-stage.c b/src/backends/meta-stage.c index 92418331e..5acae900c 100644 --- a/src/backends/meta-stage.c +++ b/src/backends/meta-stage.c @@ -230,6 +230,14 @@ meta_stage_paint_view (ClutterStage *stage, notify_watchers_for_mode (meta_stage, view, NULL, META_STAGE_WATCH_BEFORE_PAINT); + { + CoglFramebuffer *framebuffer = clutter_stage_view_get_framebuffer (view); + + if (framebuffer && !cogl_is_onscreen (framebuffer)) + cogl_framebuffer_clear4f (framebuffer, COGL_BUFFER_BIT_COLOR, + 0.0f, 0.0f, 0.0f, 1.0f); + } + CLUTTER_STAGE_CLASS (meta_stage_parent_class)->paint_view (stage, view, redraw_clip); diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c index d6819dfd6..c1b019469 100644 --- a/src/backends/x11/meta-backend-x11.c +++ b/src/backends/x11/meta-backend-x11.c @@ -889,6 +889,10 @@ Window meta_backend_x11_get_xwindow (MetaBackendX11 *x11) { ClutterActor *stage = meta_backend_get_stage (META_BACKEND (x11)); + + if (!stage || !CLUTTER_IS_STAGE (stage)) + return None; + return meta_x11_get_stage_window (CLUTTER_STAGE (stage)); } diff --git a/src/core/display.c b/src/core/display.c index 552cdab75..9512bc970 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -1000,7 +1000,8 @@ meta_display_open (void) display->sound_player = g_object_new (META_TYPE_SOUND_PLAYER, NULL); - meta_input_settings_refresh (meta_backend_get_input_settings (backend)); + if (meta_backend_get_input_settings (backend)) + meta_input_settings_refresh (meta_backend_get_input_settings (backend)); /* Done opening new display */ display->display_opening = FALSE; @@ -3061,7 +3062,8 @@ meta_display_get_pad_action_label (MetaDisplay *display, /* First, lookup the action, as imposed by settings */ settings = meta_backend_get_input_settings (meta_get_backend ()); - label = meta_input_settings_get_pad_action_label (settings, pad, action_type, action_number); + if (settings) + label = meta_input_settings_get_pad_action_label (settings, pad, action_type, action_number); if (label) return label; diff --git a/src/core/events.c b/src/core/events.c index 1ae1e933e..8dc6bd2ed 100644 --- a/src/core/events.c +++ b/src/core/events.c @@ -265,6 +265,7 @@ meta_display_handle_event (MetaDisplay *display, handle_pad_event = !display->current_pad_osd || is_mode_switch; if (handle_pad_event && + meta_backend_get_input_settings (backend) && meta_input_settings_handle_pad_event (meta_backend_get_input_settings (backend), event)) {