diff options
author | Milan Crha <mcrha@redhat.com> | 2014-03-06 22:30:55 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2014-03-06 22:30:55 +0800 |
commit | 3048de0d913db3a3ca16856e7b0c1e99512b22c5 (patch) | |
tree | 3a452318b2e79ab0aa9c2a75385332f271616559 /e-util | |
parent | ddffaf3bcef9daf894e85911cd6179b9458ee502 (diff) | |
download | gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar.gz gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar.bz2 gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar.lz gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar.xz gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.tar.zst gsoc2013-evolution-3048de0d913db3a3ca16856e7b0c1e99512b22c5.zip |
Bug #711658 - Time zone for new events sometimes defaults to UTC
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/e-client-cache.c | 30 | ||||
-rw-r--r-- | e-util/e-client-cache.h | 3 |
2 files changed, 32 insertions, 1 deletions
diff --git a/e-util/e-client-cache.c b/e-util/e-client-cache.c index 9aedf4e5e8..215c470a88 100644 --- a/e-util/e-client-cache.c +++ b/e-util/e-client-cache.c @@ -92,6 +92,7 @@ enum { enum { BACKEND_DIED, BACKEND_ERROR, + CLIENT_CONNECTED, CLIENT_CREATED, CLIENT_NOTIFY, LAST_SIGNAL @@ -572,6 +573,8 @@ client_cache_process_results (ClientData *client_data, 0); client_data->notify_handler_id = handler_id; + g_signal_emit (client_cache, signals[CLIENT_CONNECTED], 0, client); + signal_closure = g_slice_new0 (SignalClosure); signal_closure->client_cache = g_object_ref (client_cache); @@ -886,12 +889,37 @@ e_client_cache_class_init (EClientCacheClass *class) E_TYPE_ALERT); /** + * EClientCache::client-connected: + * @client_cache: the #EClientCache that received the signal + * @client: the newly-created #EClient + * + * This signal is emitted when a call to e_client_cache_get_client() + * triggers the creation of a new #EClient instance, immediately after + * the client's opening phase is over. + * + * See the difference with EClientCache::client-created, which is + * called on idle. + **/ + signals[CLIENT_CONNECTED] = g_signal_new ( + "client-connected", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_FIRST, + 0 /* G_STRUCT_OFFSET (EClientCacheClass, client_connected) */, + NULL, NULL, NULL, + G_TYPE_NONE, 1, + E_TYPE_CLIENT); + + /** * EClientCache::client-created: * @client_cache: the #EClientCache that received the signal * @client: the newly-created #EClient * * This signal is emitted when a call to e_client_cache_get_client() - * triggers the creation of a new #EClient instance. + * triggers the creation of a new #EClient instance, invoked in an idle + * callback. + * + * See the difference with EClientCache::client-connected, which is + * called immediately. **/ signals[CLIENT_CREATED] = g_signal_new ( "client-created", diff --git a/e-util/e-client-cache.h b/e-util/e-client-cache.h index bcb1e03c4b..c3c45ed261 100644 --- a/e-util/e-client-cache.h +++ b/e-util/e-client-cache.h @@ -76,6 +76,9 @@ struct _EClientCacheClass { GParamSpec *pspec); void (*client_created) (EClientCache *client_cache, EClient *client); + /* Do not break ABI right now + void (*client_connected) (EClientCache *client_cache, + EClient *client); */ }; GType e_client_cache_get_type (void) G_GNUC_CONST; |