summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2019-04-08 17:43:03 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2019-04-08 17:44:55 +0100
commit0ceb2cd22a4f44e15756c41f820ac009886cb209 (patch)
tree4cb7af125b38c821a72632f126d93c0b69f559b5
parente12cc435afbd71e260892c491c71cef739f95f34 (diff)
downloadgtk+-0ceb2cd22a4f44e15756c41f820ac009886cb209.tar.gz
Port GtkHeaderBar to GtkCustomLayoutwip/ebassi/custom-layouts
-rw-r--r--gtk/gtkheaderbar.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index 42a2300810..d672b05613 100644
--- a/gtk/gtkheaderbar.c
+++ b/gtk/gtkheaderbar.c
@@ -26,6 +26,7 @@
#include "gtkbuildable.h"
#include "gtkcontainerprivate.h"
#include "gtkcssnodeprivate.h"
+#include "gtkcustomlayout.h"
#include "gtkimage.h"
#include "gtkintl.h"
#include "gtklabel.h"
@@ -894,10 +895,10 @@ gtk_header_bar_measure (GtkWidget *widget,
}
static void
-gtk_header_bar_size_allocate (GtkWidget *widget,
- int widget_width,
- int widget_height,
- int baseline)
+gtk_header_bar_allocate (GtkWidget *widget,
+ int widget_width,
+ int widget_height,
+ int baseline)
{
GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (GTK_HEADER_BAR (widget));
GtkWidget *title_widget;
@@ -1711,8 +1712,6 @@ gtk_header_bar_class_init (GtkHeaderBarClass *class)
object_class->set_property = gtk_header_bar_set_property;
widget_class->destroy = gtk_header_bar_destroy;
- widget_class->size_allocate = gtk_header_bar_size_allocate;
- widget_class->measure = gtk_header_bar_measure;
widget_class->realize = gtk_header_bar_realize;
widget_class->unrealize = gtk_header_bar_unrealize;
widget_class->root = gtk_header_bar_root;
@@ -1820,11 +1819,17 @@ static void
gtk_header_bar_init (GtkHeaderBar *bar)
{
GtkHeaderBarPrivate *priv;
+ GtkLayoutManager *manager;
priv = gtk_header_bar_get_instance_private (bar);
gtk_widget_set_has_surface (GTK_WIDGET (bar), FALSE);
+ manager = gtk_custom_layout_new (NULL,
+ gtk_header_bar_measure,
+ gtk_header_bar_allocate);
+ gtk_widget_set_layout_manager (GTK_WIDGET (bar), manager);
+
priv->title = NULL;
priv->subtitle = NULL;
priv->custom_title = NULL;