diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-09-09 15:02:56 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-09-09 17:19:18 +0900 |
commit | 843be48572e00d20e927cfb6f11ad4abba6e8e15 (patch) | |
tree | f4ee5b0d3933320de6d25de183e191fd4d1fb4b4 /gtk/gtkprivate.h | |
parent | f76fddb8a7d260dff2ce8b87965ab4f41006a592 (diff) | |
download | gtk+-843be48572e00d20e927cfb6f11ad4abba6e8e15.tar.gz |
Moved GtkSizeRequest cache to GtkWidget->priv
Now that we have a private data installed directly on
the GtkWidget instance it makes no sense to cache the size
requests on widget qdata. This change will generally make
GTK+ memory less fragmented as well as significantly speed
up the size request process.
Diffstat (limited to 'gtk/gtkprivate.h')
-rw-r--r-- | gtk/gtkprivate.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index e4505420fc..9e5b4cf141 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -114,6 +114,28 @@ gboolean _gtk_fnmatch (const char *pattern, #define GTK_DEFAULT_ACCEL_MOD_MASK GDK_META_MASK #endif + +/* With GtkSizeRequest, a widget may be requested + * its width for 2 or maximum 3 heights in one resize + */ +#define GTK_SIZE_REQUEST_CACHED_SIZES 3 + +typedef struct +{ + guint age; + gint for_size; + gint minimum_size; + gint natural_size; +} SizeRequest; + +typedef struct { + SizeRequest widths[GTK_SIZE_REQUEST_CACHED_SIZES]; + SizeRequest heights[GTK_SIZE_REQUEST_CACHED_SIZES]; + guint8 cached_width_age; + guint8 cached_height_age; +} SizeRequestCache; + + G_END_DECLS #endif /* __GTK_PRIVATE_H__ */ |