NULL, NULL,
g_cclosure_marshal_generic,
G_TYPE_NONE,
- 1, EMPATHY_TYPE_CALL_HANDLER);
+ 2, EMPATHY_TYPE_CALL_HANDLER, G_TYPE_UINT64);
signals[INCOMING_CALL] =
g_signal_new ("incoming-call",
handler = empathy_call_handler_new_for_channel (call, contact);
g_signal_emit (self, signals[NEW_CALL_HANDLER], 0,
- handler);
+ handler, user_action_time);
g_object_unref (handler);
g_object_unref (contact);
static void
new_call_handler_cb (EmpathyCallFactory *factory,
EmpathyCallHandler *handler,
+ gint64 user_action_time,
gpointer user_data)
{
EmpathyCallWindow *window;
EmpathyContact *contact;
+ guint32 x11_time;
+ gboolean present;
DEBUG ("Show the call window");
window = g_hash_table_lookup (call_windows, contact);
+ present = tp_user_action_time_should_present (user_action_time,
+ &x11_time);
+
if (window != NULL)
{
empathy_call_window_present (window, handler);
G_CALLBACK (call_window_inhibit_cb), NULL);
gtk_widget_show (GTK_WIDGET (window));
+
+ if (present)
+ empathy_window_present_with_time (GTK_WINDOW (window), x11_time);
}
}