[gtk+] levelbar: loop over all block gadgets to determine min size
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] levelbar: loop over all block gadgets to determine min size
- Date: Tue, 5 Jan 2016 02:16:17 +0000 (UTC)
commit 637ade656aac2a9ed0e211477bb9ccf77529e908
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Mon Jan 4 18:14:33 2016 -0800
levelbar: loop over all block gadgets to determine min size
Instead of just picking the first. This is because the theme might set a
border on only one of them, like the HighContrast theme does.
gtk/gtklevelbar.c | 46 +++++++++++++++++++++++++++++-----------------
1 files changed, 29 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c
index aad1876..f681680 100644
--- a/gtk/gtklevelbar.c
+++ b/gtk/gtklevelbar.c
@@ -255,23 +255,6 @@ gtk_level_bar_value_in_interval (GtkLevelBar *self,
(value <= self->priv->max_value));
}
-static void
-gtk_level_bar_get_min_block_size (GtkLevelBar *self,
- gint *block_width,
- gint *block_height)
-{
- gtk_css_gadget_get_preferred_size (self->priv->block_gadget[0],
- GTK_ORIENTATION_HORIZONTAL,
- -1,
- block_width, NULL,
- NULL, NULL);
- gtk_css_gadget_get_preferred_size (self->priv->block_gadget[0],
- GTK_ORIENTATION_VERTICAL,
- -1,
- block_height, NULL,
- NULL, NULL);
-}
-
static gint
gtk_level_bar_get_num_blocks (GtkLevelBar *self)
{
@@ -292,6 +275,35 @@ gtk_level_bar_get_num_block_nodes (GtkLevelBar *self)
return gtk_level_bar_get_num_blocks (self);
}
+static void
+gtk_level_bar_get_min_block_size (GtkLevelBar *self,
+ gint *block_width,
+ gint *block_height)
+{
+ guint i, n_blocks;
+ gint width, height;
+
+ *block_width = *block_height = 0;
+ n_blocks = gtk_level_bar_get_num_block_nodes (self);
+
+ for (i = 0; i < n_blocks; i++)
+ {
+ gtk_css_gadget_get_preferred_size (self->priv->block_gadget[i],
+ GTK_ORIENTATION_HORIZONTAL,
+ -1,
+ &width, NULL,
+ NULL, NULL);
+ gtk_css_gadget_get_preferred_size (self->priv->block_gadget[i],
+ GTK_ORIENTATION_VERTICAL,
+ -1,
+ &height, NULL,
+ NULL, NULL);
+
+ *block_width = MAX (width, *block_width);
+ *block_height = MAX (height, *block_height);
+ }
+}
+
static gboolean
gtk_level_bar_get_real_inverted (GtkLevelBar *self)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]