]> git.0d.be Git - empathy.git/commitdiff
call-window: add 'inhibit' signal
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 28 Sep 2012 08:33:04 +0000 (10:33 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 2 Nov 2012 11:35:50 +0000 (12:35 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=684979

src/empathy-call-window.c

index 6c7f4f2f011d39618367e0ae5a9262fc4efe1416..64cda3d017884d6dc31e5dec7a0c1c62e6f54fe1 100644 (file)
@@ -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 ());