[mutter/wayland] cursor: Move cursor caching layer to meta_cursor_reference_from_theme
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] cursor: Move cursor caching layer to meta_cursor_reference_from_theme
- Date: Mon, 31 Mar 2014 23:15:51 +0000 (UTC)
commit 0efb0b47ebb2712cbd021d26027d8244414dd5c8
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Mar 31 16:10:58 2014 -0400
cursor: Move cursor caching layer to meta_cursor_reference_from_theme
src/core/meta-cursor-tracker-private.h | 2 +-
src/core/meta-cursor-tracker.c | 22 ++++------------------
src/core/meta-cursor.c | 3 +++
3 files changed, 8 insertions(+), 19 deletions(-)
---
diff --git a/src/core/meta-cursor-tracker-private.h b/src/core/meta-cursor-tracker-private.h
index 62b32d3..9da347a 100644
--- a/src/core/meta-cursor-tracker-private.h
+++ b/src/core/meta-cursor-tracker-private.h
@@ -61,7 +61,7 @@ struct _MetaCursorTracker {
MetaCursorReference *root_cursor;
- MetaCursorReference *default_cursors[META_CURSOR_LAST];
+ MetaCursorReference *theme_cursors[META_CURSOR_LAST];
int current_x, current_y;
MetaRectangle current_rect;
diff --git a/src/core/meta-cursor-tracker.c b/src/core/meta-cursor-tracker.c
index 7338e2a..ebc661b 100644
--- a/src/core/meta-cursor-tracker.c
+++ b/src/core/meta-cursor-tracker.c
@@ -85,8 +85,8 @@ meta_cursor_tracker_finalize (GObject *object)
meta_cursor_reference_unref (self->root_cursor);
for (i = 0; i < META_CURSOR_LAST; i++)
- if (self->default_cursors[i])
- meta_cursor_reference_unref (self->default_cursors[i]);
+ if (self->theme_cursors[i])
+ meta_cursor_reference_unref (self->theme_cursors[i]);
if (self->pipeline)
cogl_object_unref (self->pipeline);
@@ -371,27 +371,13 @@ meta_cursor_tracker_get_hot (MetaCursorTracker *tracker,
}
}
-static MetaCursorReference *
-ensure_wayland_cursor (MetaCursorTracker *tracker,
- MetaCursor cursor)
-{
- if (!tracker->default_cursors[cursor])
- {
- tracker->default_cursors[cursor] = meta_cursor_reference_from_theme (tracker, cursor);
- if (!tracker->default_cursors[cursor])
- meta_warning ("Failed to load cursor from theme\n");
- }
-
- return meta_cursor_reference_ref (tracker->default_cursors[cursor]);
-}
-
void
meta_cursor_tracker_set_grab_cursor (MetaCursorTracker *tracker,
MetaCursor cursor)
{
g_clear_pointer (&tracker->grab_cursor, meta_cursor_reference_unref);
if (cursor != META_CURSOR_DEFAULT)
- tracker->grab_cursor = ensure_wayland_cursor (tracker, cursor);
+ tracker->grab_cursor = meta_cursor_reference_from_theme (tracker, cursor);
sync_cursor (tracker);
}
@@ -435,7 +421,7 @@ meta_cursor_tracker_set_root_cursor (MetaCursorTracker *tracker,
if (meta_is_wayland_compositor ())
{
g_clear_pointer (&tracker->root_cursor, meta_cursor_reference_unref);
- tracker->root_cursor = ensure_wayland_cursor (tracker, cursor);
+ tracker->root_cursor = meta_cursor_reference_from_theme (tracker, cursor);
sync_cursor (tracker);
}
}
diff --git a/src/core/meta-cursor.c b/src/core/meta-cursor.c
index 94cf341..021a206 100644
--- a/src/core/meta-cursor.c
+++ b/src/core/meta-cursor.c
@@ -255,6 +255,9 @@ meta_cursor_reference_from_theme (MetaCursorTracker *tracker,
MetaCursorReference *self;
XcursorImage *image;
+ if (tracker->theme_cursors[cursor])
+ return meta_cursor_reference_ref (tracker->theme_cursors[cursor]);
+
image = load_cursor_on_client (tracker->screen->display, cursor);
if (!image)
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]