| Commit message (Collapse) | Author | Age | Lines |
... | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It's customary for applications embedding themselves in the system tray
to offer a "Show/Hide window" menu entry on right-click, even for those
applications which offer the same functionality via a single left-click.
(Thanks to qBittorrent for the idea of using QMenu::aboutToShow to
update the label of this menu entry.)
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Left-clicking on the system tray icon should always result in toggling
the visibility of the main window; if the icon is visible and clickble,
then the window can always be hidden via --hide, or on startup via the
"Startup hidden in system tray" option. (In the latter case, this
previously resulted in a hidden and inaccessible window, as reported in
issue #121.)
|
| |\ \ \
| | | | |
| | | | | |
Fix QML binding loop in TextImageButton (used in incoming call popup)
|
| | |/ / |
|
| |\ \ \
| | | | |
| | | | | |
Respond immediately to a "quit" command while in CLI mode
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Now that we are no longer blocking on Readline calls, we can set up a
self-pipe that will let us break out of the Readline loop upon receiving
a "quit" command on our local socket, thus (finally) fixing issue #143.
(Thanks to https://stackoverflow.com/a/27662212 for the tip!)
Fixes #143
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
By only invoking rl_callback_read_char() when there is actual input on
stdin, we can now avoid blocking on Readline calls.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When using Readline's callback interface, signals are (by default) only
captured within the duration of the rl_callback_read_char() call. It is
therefore expected of the application to capture SIGWINCH on its own,
and notify Readline of the fact.
(While it's possible to change this with rl_persistent_signal_handlers,
some signals, such as SIGHUP, will still only be *processed* during that
call, making it a somewhat unappealing solution. This all could be
alleviated by calling rl_check_signals() periodically, but that function
was only introduced in Readline 8.0, which is far too recent.)
Note that we are using signal(2) and not sigaction(2), depite the
various warnings that come with it, mostly because it's what is already
present in the codebase.
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When Twinkle is running in CLI mode and is sent a "quit" command to its
local socket, it will currently not respond immediately, but rather wait
until the next line has been read from its standard input (issue #143).
This is due to the blocking nature of readline(), which only returns
once a complete line has been read. Switching to Readline's "alternate"
callback interface is the first step in addressing this issue.
(As a bonus, this also fixes a bug where the line pointer returned by
readline() was not freed correctly.)
|
| |\ \ \
| | | | |
| | | | | |
Add twinkle-console option --sip-port --rtp-port
|
| | |/ / |
|
| |\ \ \
| | | | |
| | | | | |
Prevent recursive locking of phone_users_mtx in add_phone_user()
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When encountering two users with the same contact name, attempting to
differentiate them using USER_HOST(), a.k.a. get_ip_sip(), would result
in EDEADLK since phone_users_mtx was already locked by add_phone_user().
Closes #88
|
| |\ \ \
| | | | |
| | | | | |
resolve nat_public_ip hostname for dyndns to work
|
| | |/ / |
|
| |\ \ \
| | | |/
| | |/| |
Simple fixes for two deadlocks
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`t_phone::mutex_3way` can be locked twice when hanging up a conference
call:
- `t_phone::cleanup_3way_state()` acquires a lock
- `t_audio_session::stop_3way()` is called
- `t_audio_session::get_peer_3way()` is called
- `t_phone::get_3way_peer_line()` is called
- which acquires another lock
Making that mutex recursive is a simple way to work around this issue.
|
| | |/
| | |
| | |
| | |
| | | |
A write lock on `lines_mtx` has already been acquired at the beginning
of `end_call()`.
|
| |\ \
| | | |
| | | | |
Switch Travis CI distribution to bionic
|
| | | |
| | | |
| | | |
| | | | |
(These are present in bionic-updates, which I had forgotten about.)
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Twinkle didn't compile with Clang back on trusty (due to libucommon);
now that we've upgraded to bionic, we can finally test building with it.
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Older versions of ccrtp under trusty/xenial do not compile with g++ 7+,
so moving on to bionic will finally allow us to test modern compilers.
(Ironically, current ccrtp will no longer compile with g++ 4.9.)
Note that libzrtpcpp is no longer available on bionic, so it was
disabled from the tests.
|
| |\ \
| | | |
| | | | |
Add -DDEBUG to non-release builds, to prevent uCommon from adding NDEBUG
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Including <ucommon/ucommon.h> will (as of uCommon 7.0.0) unilaterally
define NDEBUG, and thus compile away any assert(), unless DEBUG has been
previously defined.[1] Until this is fixed, the easiest way around this
is simply to automatically define DEBUG for non-release builds.
Note that there are a few other header files that check for the presence
of DEBUG[2], but the net effect appears to be non-significant. (It *is*
a debug build, after all!)
[1] https://lists.gnu.org/archive/html/bug-commoncpp/2019-12/msg00000.html
[2] - libxml2/libxml/xmlmemory.h
- X11/Xthreads.h
- X11/extensions/lbxproto.h
- FLAC/assert.h
|
| |\ \
| | | |
| | | | |
let gui set MAX_PTIME cutoff 80ms
|
| | |/ |
|
| |\ \
| | | |
| | | | |
Update and fix Czech and Slovak translations
|
| |/ / |
|
| |\ \
| | | |
| | | | |
Run lupdate on lang files
|
| |/ / |
|
| |\ \
| | | |
| | | | |
Fix spelling errors
|
| |/ / |
|
| |\ \
| | | |
| | | | |
Add Slovak translation
|
| | |/ |
|
| |\ \
| | |/
| |/| |
Fix typos in Czech translation
|
| |/ |
|
| | |
|
| | |
|
|/ |
|
| |
|
|\
| |
| | |
Case insensivity in WWW-Authenticate header
|
|/ |
|
| |
|
|\
| |
| | |
audio: Fix parameter setting failure with alsa v1.1.7
|
|/ |
|
|\
| |
| | |
fix simple typo
|
|/ |
|
|\
| |
| | |
Update Russian translation
|
|/ |
|
|\
| |
| | |
fix Qt 5.11 build (issue #124)
|