mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2025-01-08 04:45:31 +00:00
ringer: Take ui-active property into account
Only start ringing once the UI is deemed active, i.e. the "pre-ring" phase has passed. Fixes #371
This commit is contained in:
parent
1d5c8952ad
commit
93cf894a8c
2 changed files with 12 additions and 10 deletions
|
@ -340,7 +340,8 @@ has_incoming_call (CallsRinger *self)
|
||||||
CallsUiCallData *call = node->data;
|
CallsUiCallData *call = node->data;
|
||||||
|
|
||||||
if (is_ring_state (cui_call_get_state (CUI_CALL (call))) &&
|
if (is_ring_state (cui_call_get_state (CUI_CALL (call))) &&
|
||||||
!calls_ui_call_data_get_silenced (call))
|
!calls_ui_call_data_get_silenced (call) &&
|
||||||
|
calls_ui_call_data_get_ui_active (call))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -373,14 +374,12 @@ call_added_cb (CallsRinger *self,
|
||||||
|
|
||||||
self->calls = g_list_append (self->calls, call);
|
self->calls = g_list_append (self->calls, call);
|
||||||
|
|
||||||
g_signal_connect_swapped (call,
|
g_object_connect (call,
|
||||||
"notify::state",
|
"swapped-signal::notify::state", G_CALLBACK (update_ring), self,
|
||||||
G_CALLBACK (update_ring),
|
"swapped-signal::notify::silenced", G_CALLBACK (update_ring), self,
|
||||||
self);
|
"swapped-signal::notify::ui-active", G_CALLBACK (update_ring), self,
|
||||||
g_signal_connect_swapped (call,
|
NULL);
|
||||||
"notify::silenced",
|
|
||||||
G_CALLBACK (update_ring),
|
|
||||||
self);
|
|
||||||
update_ring (self);
|
update_ring (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -356,7 +356,10 @@ test_ringing_hang_up_call_ringer_cancelled (void **state)
|
||||||
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
|
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
|
||||||
add_call (data->manager, data->ui_call_one);
|
add_call (data->manager, data->ui_call_one);
|
||||||
|
|
||||||
g_timeout_add (10, G_SOURCE_FUNC (t3_on_ringer_timeout), data);
|
/** this timeout needs to be longer than the delay for activating the UI/ringer,
|
||||||
|
* see DELAY_UI_MS in calls-ui-call-data.c
|
||||||
|
*/
|
||||||
|
g_timeout_add (20, G_SOURCE_FUNC (t3_on_ringer_timeout), data);
|
||||||
|
|
||||||
/* main loop will quit in t3_on_ringer_timeout() */
|
/* main loop will quit in t3_on_ringer_timeout() */
|
||||||
g_main_loop_run (data->loop);
|
g_main_loop_run (data->loop);
|
||||||
|
|
Loading…
Reference in a new issue