summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-10-23 17:25:33 +0000
committerMatthias Clasen <mclasen@redhat.com>2020-10-23 17:25:33 +0000
commit83fbdcd5e60308bb2b8b3b7dd98618a4d1d87572 (patch)
treec7708b7aaa8e4802e8d0b61f0fa2e016402d23a0
parentb973f7f375d4d0602437d4c5ab30a850cfab5f6a (diff)
parentcb8bf6540ce5541aa236b7ab2f4158cf55d7fae9 (diff)
downloadgtk+-83fbdcd5e60308bb2b8b3b7dd98618a4d1d87572.tar.gz
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master Closes #3226 See merge request GNOME/gtk!2739
-rw-r--r--docs/reference/gtk/images/search-entry.pngbin2418 -> 2990 bytes
-rw-r--r--gtk/gtkdropdown.c10
-rw-r--r--gtk/gtkeditablelabel.c3
-rw-r--r--gtk/gtksearchentry.c9
-rw-r--r--gtk/gtkwindow.c7
5 files changed, 18 insertions, 11 deletions
diff --git a/docs/reference/gtk/images/search-entry.png b/docs/reference/gtk/images/search-entry.png
index 22549fc093..4ecdbfe8c4 100644
--- a/docs/reference/gtk/images/search-entry.png
+++ b/docs/reference/gtk/images/search-entry.png
Binary files differ
diff --git a/gtk/gtkdropdown.c b/gtk/gtkdropdown.c
index d33f1e9524..80dc7a1ae6 100644
--- a/gtk/gtkdropdown.c
+++ b/gtk/gtkdropdown.c
@@ -251,8 +251,6 @@ gtk_drop_down_dispose (GObject *object)
{
GtkDropDown *self = GTK_DROP_DOWN (object);
- gtk_widget_unparent (gtk_widget_get_first_child (self->search_entry));
-
g_clear_pointer (&self->popup, gtk_widget_unparent);
g_clear_pointer (&self->button, gtk_widget_unparent);
@@ -596,19 +594,11 @@ set_default_factory (GtkDropDown *self)
static void
gtk_drop_down_init (GtkDropDown *self)
{
- GtkWidget *icon;
-
g_type_ensure (GTK_TYPE_BUILTIN_ICON);
g_type_ensure (GTK_TYPE_LIST_ITEM_WIDGET);
gtk_widget_init_template (GTK_WIDGET (self));
- icon = g_object_new (GTK_TYPE_IMAGE,
- "accessible-role", GTK_ACCESSIBLE_ROLE_NONE,
- "icon-name", "system-search-symbolic",
- NULL);
- gtk_widget_insert_after (icon, self->search_entry, NULL);
-
set_default_factory (self);
}
diff --git a/gtk/gtkeditablelabel.c b/gtk/gtkeditablelabel.c
index 959d0428d8..103b125649 100644
--- a/gtk/gtkeditablelabel.c
+++ b/gtk/gtkeditablelabel.c
@@ -341,6 +341,9 @@ gtk_editable_label_dispose (GObject *object)
g_clear_pointer (&self->stack, gtk_widget_unparent);
+ self->entry = NULL;
+ self->label = NULL;
+
G_OBJECT_CLASS (gtk_editable_label_parent_class)->dispose (object);
}
diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c
index 78268113c8..5c227f6853 100644
--- a/gtk/gtksearchentry.c
+++ b/gtk/gtksearchentry.c
@@ -160,6 +160,8 @@ gtk_search_entry_finalize (GObject *object)
gtk_editable_finish_delegate (GTK_EDITABLE (entry));
+ gtk_widget_unparent (gtk_widget_get_first_child (GTK_WIDGET (entry)));
+
g_clear_pointer (&entry->entry, gtk_widget_unparent);
g_clear_pointer (&entry->icon, gtk_widget_unparent);
@@ -549,8 +551,15 @@ activate_cb (GtkText *text,
static void
gtk_search_entry_init (GtkSearchEntry *entry)
{
+ GtkWidget *icon;
GtkGesture *press;
+ icon = g_object_new (GTK_TYPE_IMAGE,
+ "accessible-role", GTK_ACCESSIBLE_ROLE_NONE,
+ "icon-name", "system-search-symbolic",
+ NULL);
+ gtk_widget_set_parent (icon, GTK_WIDGET (entry));
+
entry->entry = gtk_text_new ();
gtk_widget_set_parent (entry->entry, GTK_WIDGET (entry));
gtk_widget_set_hexpand (entry->entry, TRUE);
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 3f59e4e02c..feec52aa22 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -4702,11 +4702,16 @@ surface_state_changed (GtkWidget *widget)
}
if (changed_mask & GDK_TOPLEVEL_STATE_FULLSCREEN)
- priv->fullscreen = (new_surface_state & GDK_TOPLEVEL_STATE_FULLSCREEN) ? TRUE : FALSE;
+ {
+ priv->fullscreen = (new_surface_state & GDK_TOPLEVEL_STATE_FULLSCREEN) ? TRUE : FALSE;
+ priv->fullscreen_initially = priv->fullscreen;
+ }
if (changed_mask & GDK_TOPLEVEL_STATE_MAXIMIZED)
{
priv->maximized = (new_surface_state & GDK_TOPLEVEL_STATE_MAXIMIZED) ? TRUE : FALSE;
+ priv->maximize_initially = priv->maximized;
+
g_object_notify_by_pspec (G_OBJECT (widget), window_props[PROP_IS_MAXIMIZED]);
}