diff --git a/src/calls-call-record-row.c b/src/calls-call-record-row.c
index 60a0f99..b850b58 100644
--- a/src/calls-call-record-row.c
+++ b/src/calls-call-record-row.c
@@ -598,9 +598,30 @@ delete_call_activated (GSimpleAction *action,
}
+static void
+copy_number_activated (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer data)
+{
+ CallsCallRecordRow *self = CALLS_CALL_RECORD_ROW (data);
+ g_autofree gchar *target = NULL;
+
+ g_object_get (G_OBJECT (self->record),
+ "target", &target,
+ NULL);
+
+ g_return_if_fail (target);
+
+ g_action_group_activate_action (G_ACTION_GROUP (g_application_get_default ()),
+ "copy-number",
+ g_variant_new_string (target));
+}
+
+
static GActionEntry entries[] =
{
{ "delete-call", delete_call_activated, NULL, NULL, NULL},
+ { "copy-number", copy_number_activated, NULL, NULL, NULL},
};
@@ -627,6 +648,9 @@ calls_call_record_row_init (CallsCallRecordRow *self)
act = g_action_map_lookup_action (self->action_map, "delete-call");
g_simple_action_set_enabled (G_SIMPLE_ACTION (act), TRUE);
+ act = g_action_map_lookup_action (self->action_map, "copy-number");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (act), TRUE);
+
self->gesture = gtk_gesture_long_press_new (GTK_WIDGET (self->event_box));
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (self->gesture), TRUE);
g_signal_connect (self->gesture, "pressed", G_CALLBACK (long_pressed), self);
diff --git a/src/ui/call-record-row.ui b/src/ui/call-record-row.ui
index 6ac37aa..929d465 100644
--- a/src/ui/call-record-row.ui
+++ b/src/ui/call-record-row.ui
@@ -112,6 +112,11 @@
_Delete Call
delete-call
+ -
+
+ _Copy number
+ copy-number
+