[gnome-shell/wip/fmuellner/window-app-icon-size: 1/4] texture-cache: Load bound surfaces into StWidgets
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/window-app-icon-size: 1/4] texture-cache: Load bound surfaces into StWidgets
- Date: Fri, 8 Mar 2019 15:20:44 +0000 (UTC)
commit 6f794738e82a33f356f5069c36cbffff846c7acf
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Mar 8 14:06:38 2019 +0100
texture-cache: Load bound surfaces into StWidgets
Using widgets instead of plain actors will allow us to set the size
from CSS.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/1027
src/shell-app.c | 14 ++++++++------
src/st/st-texture-cache.c | 19 +++++++++++--------
src/st/st-texture-cache.h | 9 +++++----
3 files changed, 24 insertions(+), 18 deletions(-)
---
diff --git a/src/shell-app.c b/src/shell-app.c
index 3f91613fa..e0b925b5f 100644
--- a/src/shell-app.c
+++ b/src/shell-app.c
@@ -184,7 +184,7 @@ window_backed_app_get_icon (ShellApp *app,
int size)
{
MetaWindow *window = NULL;
- ClutterActor *actor;
+ StWidget *widget;
gint scale;
ShellGlobal *global;
StThemeContext *context;
@@ -204,16 +204,18 @@ window_backed_app_get_icon (ShellApp *app,
if (window == NULL)
{
+ ClutterActor *actor;
+
actor = clutter_actor_new ();
g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL);
return actor;
}
- actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
- G_OBJECT (window),
- "icon",
- size);
- return actor;
+ widget = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
+ G_OBJECT (window),
+ "icon",
+ size);
+ return CLUTTER_ACTOR (widget);
}
/**
diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c
index a9688ec60..fa5b1f04a 100644
--- a/src/st/st-texture-cache.c
+++ b/src/st/st-texture-cache.c
@@ -767,27 +767,30 @@ st_texture_cache_free_bind (gpointer data)
* If the source object is destroyed, the texture will continue to show the last
* value of the property.
*
- * Return value: (transfer none): A new #ClutterActor
+ * Return value: (transfer none): A new #StWidget
*/
-ClutterActor *
+StWidget *
st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
GObject *object,
const char *property_name,
gint size)
{
- ClutterActor *actor;
+ StWidget *widget;
gchar *notify_key;
StTextureCachePropertyBind *bind;
- actor = create_invisible_actor ();
- clutter_actor_set_size (actor, size, size);
+ widget = g_object_new (ST_TYPE_WIDGET,
+ "opacity", 0,
+ "width", (float)size,
+ "height", (float)size,
+ NULL);
bind = g_slice_new0 (StTextureCachePropertyBind);
bind->cache = cache;
- bind->actor = actor;
+ bind->actor = CLUTTER_ACTOR (widget);
bind->size = size;
bind->source = object;
- g_object_weak_ref (G_OBJECT (actor), st_texture_cache_bind_weak_notify, bind);
+ g_object_weak_ref (G_OBJECT (widget), st_texture_cache_bind_weak_notify, bind);
bind->weakref_active = TRUE;
st_texture_cache_reset_texture (bind, property_name);
@@ -797,7 +800,7 @@ st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
bind, (GClosureNotify)st_texture_cache_free_bind, 0);
g_free (notify_key);
- return actor;
+ return widget;
}
/**
diff --git a/src/st/st-texture-cache.h b/src/st/st-texture-cache.h
index a3311a862..11d1c4e64 100644
--- a/src/st/st-texture-cache.h
+++ b/src/st/st-texture-cache.h
@@ -32,6 +32,7 @@
#include <st/st-types.h>
#include <st/st-theme-node.h>
+#include <st/st-widget.h>
#define ST_TYPE_TEXTURE_CACHE (st_texture_cache_get_type ())
G_DECLARE_FINAL_TYPE (StTextureCache, st_texture_cache,
@@ -63,10 +64,10 @@ st_texture_cache_load_sliced_image (StTextureCache *cache,
GFunc load_callback,
gpointer user_data);
-ClutterActor *st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
- GObject *object,
- const char *property_name,
- gint size);
+StWidget *st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
+ GObject *object,
+ const char *property_name,
+ gint size);
ClutterActor *st_texture_cache_load_gicon (StTextureCache *cache,
StThemeNode *theme_node,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]