mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
GFileMonitor: support specifying a context
Add a new "context" construct-only property to allow explicitly specifying the context in which events should be dispatched. https://bugzilla.gnome.org/show_bug.cgi?id=704887
This commit is contained in:
parent
700677de51
commit
5409d7827e
@ -89,7 +89,8 @@ struct _GFileMonitorPrivate {
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_RATE_LIMIT,
|
||||
PROP_CANCELLED
|
||||
PROP_CANCELLED,
|
||||
PROP_CONTEXT
|
||||
};
|
||||
|
||||
/* work around a limitation of the aliasing foo */
|
||||
@ -113,6 +114,12 @@ g_file_monitor_set_property (GObject *object,
|
||||
g_file_monitor_set_rate_limit (monitor, g_value_get_int (value));
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
monitor->priv->context = g_value_dup_boxed (value);
|
||||
if (monitor->priv->context == NULL)
|
||||
monitor->priv->context = g_main_context_ref_thread_default ();
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@ -260,6 +267,14 @@ g_file_monitor_class_init (GFileMonitorClass *klass)
|
||||
FALSE,
|
||||
G_PARAM_READABLE|
|
||||
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_CONTEXT,
|
||||
g_param_spec_boxed ("context",
|
||||
P_("Context"),
|
||||
P_("The main context to dispatch from"),
|
||||
G_TYPE_MAIN_CONTEXT, G_PARAM_WRITABLE |
|
||||
G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -269,7 +284,6 @@ g_file_monitor_init (GFileMonitor *monitor)
|
||||
monitor->priv->rate_limit_msec = DEFAULT_RATE_LIMIT_MSECS;
|
||||
monitor->priv->rate_limiter = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal,
|
||||
NULL, (GDestroyNotify) rate_limiter_free);
|
||||
monitor->priv->context = g_main_context_ref_thread_default ();
|
||||
g_mutex_init (&monitor->priv->mutex);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user