0
#include <glib-object.h>
0
+#include <libnm_glib.h>
0
#include <clutter/clutter.h>
0
@@ -92,6 +96,11 @@ struct _TweetWindowPrivate
0
+ libnm_glib_ctx *nm_context;
0
G_DEFINE_TYPE (TweetWindow, tweet_window, GTK_TYPE_WINDOW);
0
@@ -132,6 +141,15 @@ tweet_window_dispose (GObject *gobject)
0
priv->action_group = NULL;
0
+ libnm_glib_unregister_callback (priv->nm_context, priv->nm_id);
0
+ libnm_glib_shutdown (priv->nm_context);
0
+ priv->nm_context = NULL;
0
G_OBJECT_CLASS (tweet_window_parent_class)->dispose (gobject);
0
@@ -474,6 +492,45 @@ refresh_timeout (gpointer data)
0
+nm_context_callback (libnm_glib_ctx *libnm_ctx,
0
+ TweetWindow *window = user_data;
0
+ TweetWindowPrivate *priv = window->priv;
0
+ libnm_glib_state nm_state;
0
+ nm_state = libnm_glib_get_network_state (libnm_ctx);
0
+ case LIBNM_ACTIVE_NETWORK_CONNECTION:
0
+ twitter_client_get_user_timeline (priv->client, NULL, 0, NULL);
0
+ if (tweet_config_get_refresh_time (priv->config) > 0)
0
+ g_timeout_add_seconds (tweet_config_get_refresh_time (priv->config),
0
+ case LIBNM_NO_NETWORKMANAGER:
0
+ g_critical ("No NetworkManager running");
0
+ case LIBNM_NO_NETWORK_CONNECTION:
0
+ g_source_remove (priv->refresh_id);
0
+ case LIBNM_INVALID_CONTEXT:
0
+ g_critical ("Invalid NetworkManager-GLib context");
0
+#endif /* HAVE_NM_GLIB */
0
tweet_window_constructed (GObject *gobject)
0
@@ -481,6 +538,7 @@ tweet_window_constructed (GObject *gobject)
0
TweetWindowPrivate *priv = window->priv;
0
+ libnm_glib_state nm_state;
0
stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (priv->canvas));
0
@@ -506,6 +564,26 @@ tweet_window_constructed (GObject *gobject)
0
gtk_widget_show_all (GTK_WIDGET (window));
0
+ priv->nm_context = libnm_glib_init ();
0
+ nm_state = libnm_glib_get_network_state (priv->nm_context);
0
+ if (nm_state == LIBNM_ACTIVE_NETWORK_CONNECTION)
0
+ twitter_client_get_user_timeline (priv->client, NULL, 0, NULL);
0
+ if (tweet_config_get_refresh_time (priv->config) > 0)
0
+ g_timeout_add_seconds (tweet_config_get_refresh_time (priv->config),
0
+ priv->nm_id = libnm_glib_register_callback (priv->nm_context,
0
twitter_client_get_user_timeline (priv->client, NULL, 0, NULL);
0
if (tweet_config_get_refresh_time (priv->config) > 0)
0
@@ -513,6 +591,7 @@ tweet_window_constructed (GObject *gobject)
0
g_timeout_add_seconds (tweet_config_get_refresh_time (priv->config),
0
+#endif /* HAVE_NM_GLIB */
Comments
No one has commented yet.