[gnome-photos/wip/rishi/collection: 1/9] searchbar: Use the more appropriate GAction API
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/rishi/collection: 1/9] searchbar: Use the more appropriate GAction API
- Date: Mon, 28 Aug 2017 19:05:30 +0000 (UTC)
commit 3ad1130fa9ad831534032fcd2f8b754d494b6e59
Author: Debarshi Ray <debarshir gnome org>
Date: Fri Aug 18 14:00:14 2017 +0200
searchbar: Use the more appropriate GAction API
PhotosSearchbar doesn't need to override the default state change
handling of the GAction. It merely needs to react to it.
Fallout from dbe9070d0cde3f60f7842b1fc9b268fdb50d7a4f
https://bugzilla.gnome.org/show_bug.cgi?id=786936
src/photos-searchbar.c | 52 +++++++++++++++++++++++++++--------------------
1 files changed, 30 insertions(+), 22 deletions(-)
---
diff --git a/src/photos-searchbar.c b/src/photos-searchbar.c
index 054b145..7b9c434 100644
--- a/src/photos-searchbar.c
+++ b/src/photos-searchbar.c
@@ -53,22 +53,6 @@ G_DEFINE_TYPE_WITH_PRIVATE (PhotosSearchbar, photos_searchbar, GTK_TYPE_SEARCH_B
static void
-photos_searchbar_change_state (PhotosSearchbar *self, GVariant *value)
-{
- PhotosSearchbarPrivate *priv;
-
- priv = photos_searchbar_get_instance_private (self);
-
- g_simple_action_set_state (G_SIMPLE_ACTION (priv->search), value);
-
- if (g_variant_get_boolean (value))
- photos_searchbar_show (self);
- else
- photos_searchbar_hide (self);
-}
-
-
-static void
photos_searchbar_default_hide (PhotosSearchbar *self)
{
PhotosSearchbarPrivate *priv;
@@ -127,12 +111,38 @@ photos_searchbar_search_changed (PhotosSearchbar *self)
static void
+photos_searchbar_update_visibility (PhotosSearchbar *self)
+{
+ PhotosSearchbarPrivate *priv;
+ GVariant *state = NULL;
+
+ priv = photos_searchbar_get_instance_private (self);
+
+ state = g_action_get_state (priv->search);
+ g_return_if_fail (state != NULL);
+
+ if (g_variant_get_boolean (state))
+ photos_searchbar_show (self);
+ else
+ photos_searchbar_hide (self);
+
+ g_variant_unref (state);
+}
+
+
+static void
+photos_searchbar_search_notify_state (PhotosSearchbar *self)
+{
+ photos_searchbar_update_visibility (self);
+}
+
+
+static void
photos_searchbar_constructed (GObject *object)
{
PhotosSearchbar *self = PHOTOS_SEARCHBAR (object);
PhotosSearchbarPrivate *priv;
GApplication *app;
- GVariant *state;
priv = photos_searchbar_get_instance_private (self);
@@ -161,12 +171,10 @@ photos_searchbar_constructed (GObject *object)
* dispose.
*/
priv->search_state_id = g_signal_connect_swapped (priv->search,
- "change-state",
- G_CALLBACK (photos_searchbar_change_state),
+ "notify::state",
+ G_CALLBACK (photos_searchbar_search_notify_state),
self);
- state = g_action_get_state (priv->search);
- photos_searchbar_change_state (self, state);
- g_variant_unref (state);
+ photos_searchbar_update_visibility (self);
gtk_widget_show_all (GTK_WIDGET (self));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]