Compare commits

...

2 Commits

Author SHA1 Message Date
9780c6c439 exit on close (i.e. never daemonize) 2024-08-17 01:05:38 +00:00
aaa1703ca4 add default.nix to make the project buildable locally using nix 2024-08-17 01:05:38 +00:00
2 changed files with 59 additions and 2 deletions

46
default.nix Normal file
View File

@@ -0,0 +1,46 @@
# build with: `nix-build`
# make sure to first checkout the submodules: `git submodule update --init --recursive`
#
{ pkgs ? import <nixpkgs> {} }:
let
inherit (pkgs) stdenv;
in stdenv.mkDerivation {
pname = "calls";
version = "unstable";
src = ./.;
nativeBuildInputs = with pkgs; [
appstream-glib
dbus
desktop-file-utils
docbook-xsl-nons
docbook_xml_dtd_43
docutils
gtk-doc
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = with pkgs; [
callaudiod
evolution-data-server
feedbackd
folks
gom
gsound
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-ugly
gst_all_1.gstreamer
gtk3
libadwaita
libpeas2
libsecret
modemmanager
sofia_sip
];
}

View File

@@ -597,11 +597,16 @@ notify_window_visible_cb (GtkWidget *window,
CallsManager *manager = calls_manager_get_default (); CallsManager *manager = calls_manager_get_default ();
g_return_if_fail (CALLS_IS_APPLICATION (application)); g_return_if_fail (CALLS_IS_APPLICATION (application));
g_return_if_fail (CALLS_IS_CALL_WINDOW (window));
gboolean calls_visible = gtk_widget_is_visible (GTK_WIDGET (application->call_window));
gboolean main_visible = gtk_widget_is_visible (GTK_WIDGET (application->main_window));
/* The UI is being closed, hang up active calls */ /* The UI is being closed, hang up active calls */
if (!gtk_widget_is_visible (window)) if (!calls_visible)
calls_manager_hang_up_all_calls (manager); calls_manager_hang_up_all_calls (manager);
/* No windows (of interest) are open -> exit */
if (!main_visible && !calls_visible)
app_shutdown (G_APPLICATION (application));
} }
@@ -667,6 +672,12 @@ start_proper (CallsApplication *self)
G_CALLBACK (notify_window_visible_cb), G_CALLBACK (notify_window_visible_cb),
self, self,
G_CONNECT_AFTER); G_CONNECT_AFTER);
g_signal_connect_object (self->main_window,
"notify::visible",
G_CALLBACK (notify_window_visible_cb),
self,
G_CONNECT_AFTER);
} }