diff options
-rw-r--r-- | src/empathy-call-window.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 6c7f4f2f0..64cda3d01 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -104,6 +104,13 @@ enum { PROP_CALL_HANDLER = 1, }; +enum { + SIG_INHIBIT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + typedef enum { RINGING, /* Incoming call */ CONNECTING, /* Outgoing call */ @@ -2355,6 +2362,13 @@ empathy_call_window_class_init ( G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); g_object_class_install_property (object_class, PROP_CALL_HANDLER, param_spec); + + signals[SIG_INHIBIT] = g_signal_new ("inhibit", + G_OBJECT_CLASS_TYPE (empathy_call_window_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, + 1, G_TYPE_BOOLEAN); } void @@ -2598,6 +2612,8 @@ empathy_call_window_disconnected (EmpathyCallWindow *self, /* Leave full screen mode if needed */ gtk_window_unfullscreen (GTK_WINDOW (self)); + g_signal_emit (self, signals[SIG_INHIBIT], 0, FALSE); + gtk_action_set_sensitive (priv->menu_fullscreen, FALSE); gtk_widget_set_sensitive (priv->dtmf_panel, FALSE); @@ -3635,6 +3651,8 @@ start_call (EmpathyCallWindow *self) { EmpathyCallWindowPriv *priv = GET_PRIV (self); + g_signal_emit (self, signals[SIG_INHIBIT], 0, TRUE); + priv->call_started = TRUE; empathy_call_handler_start_call (priv->handler, gtk_get_current_event_time ()); |