cursor: Correct switching between fallback and backend cursors

When switching from the stage cursor to the native cursor, we
forgot to repaint the stage to get rid of the old cursor. Fix
this by having the abstract cursor renderer class track whether
we're using the backend, rather than doing chain-up shenanigans.
This commit is contained in:
Jasper St. Pierre
2014-05-17 11:22:05 -04:00
parent fb9f22c02f
commit 3a0de6a4f1
3 changed files with 24 additions and 12 deletions

View File

@ -140,7 +140,7 @@ should_have_hw_cursor (MetaCursorRenderer *renderer)
return FALSE;
}
static void
static gboolean
meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *renderer)
{
MetaCursorRendererNative *native = META_CURSOR_RENDERER_NATIVE (renderer);
@ -148,10 +148,7 @@ meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *renderer)
priv->has_hw_cursor = should_have_hw_cursor (renderer);
update_hw_cursor (native, FALSE);
/* Fall back to the stage-based cursor if we don't have HW cursors. */
if (!priv->has_hw_cursor)
META_CURSOR_RENDERER_CLASS (meta_cursor_renderer_native_parent_class)->update_cursor (renderer);
return priv->has_hw_cursor;
}
static void