signal-desktop/js
Danny Lin c8261814fd
Add setting to toggle notification attention drawing (#4457)
In many GNU/Linux setups, drawing attention when a notification arrives
causes the Signal window to steal focus immediately and interrupt the
user from what they were doing before the notification arrived. GNOME
Shell is the most prominent example of this behavior, but there are
likely other cases as well. Suddenly stealing focus on external events
like this can even pose a security problem in some cases, e.g. if the
user is in the middle of a typing a sudo password on one monitor while a
notification arrives and focuses Signal on another monitor. See #4452
for more information.

Disabling attention drawing entirely for Linux is also problematic
because some users rely on it as the sole indication of a new message,
as seen in #3582 and #3611.

Commit f790694559 improved the situation
by adding a hidden "--disable-flash-frame" command-line argument, but
this argument is undocumented and manually adding command-line arguments
to the application's .desktop file is not user-friendly.

This commit adds a settings option for whether to draw attention when a
new notification arrives to make it easy for all Linux users to obtain
the appropriate behavior without relying on an undocumented
command-line argument.

Fixes #4452.
2020-08-24 14:45:31 -07:00
..
models Fix conversation last activity calculation 2020-08-13 17:47:50 -05:00
modules Calling: Show call event summaries in left pane 2020-08-12 19:52:34 -04:00
views Add setting to toggle notification attention drawing (#4457) 2020-08-24 14:45:31 -07:00
.eslintrc Auto-fixes: UX Improvements (#2077) 2018-03-02 15:54:15 -05:00
about_start.js Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
background.js Add setting to toggle notification attention drawing (#4457) 2020-08-24 14:45:31 -07:00
chromium.js Remove jshint - move everything over to eslint 2018-07-17 15:54:32 -07:00
database.js Remove all IndexedDB migration code 2020-04-29 17:42:41 -07:00
debug_log_start.js Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
deletes.js Delete right away if we already have the message 2020-07-27 14:39:19 -07:00
delivery_receipts.js Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
expiring_messages.js Refactor: Move data-access code to Typescript w/ shared interface 2020-04-15 14:45:11 -07:00
expiring_tap_to_view_messages.js Improve message download performance 2019-10-10 14:56:14 -07:00
keychange_listener.js Improve safety number logic in group conversations 2020-06-10 14:39:45 -07:00
libphonenumber-util.js Upgrade Prettier 2020-01-08 09:44:54 -08:00
libsignal-protocol-worker.js Fix asm.js errors in emscripten-generated functions 2019-02-13 16:04:58 -08:00
loading_start.js Introduce dialog for long database migrations 2020-03-25 16:47:42 -07:00
logging.js Improve message download performance 2019-10-10 14:56:14 -07:00
message_controller.js Improve message download performance 2019-10-10 14:56:14 -07:00
message_requests.js Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
Mp3LameEncoder.min.js Fix ASM warnings in MP3 library 2019-03-12 17:44:14 -07:00
notifications.js Add setting to toggle notification attention drawing (#4457) 2020-08-24 14:45:31 -07:00
permissions_popup_start.js Calling support 2020-07-30 13:08:47 -07:00
reactions.js Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
read_receipts.js Improve message download performance 2019-10-10 14:56:14 -07:00
read_syncs.js Sync messages: Additional debugging info, consistent ids 2020-08-06 13:28:56 -04:00
reliable_trigger.js Use window.log in browser context, turn on console eslint rule 2018-07-21 14:52:43 -07:00
rotate_signed_prekey_listener.js Don't start rotation mechanisms until queue is empty 2020-07-27 14:39:19 -07:00
settings_start.js Add setting to toggle notification attention drawing (#4457) 2020-08-24 14:45:31 -07:00
signal_protocol_store.js Harden UUID-handling code paths 2020-07-30 13:10:03 -07:00
storage.js Run yarn format 2019-07-08 16:29:45 -04:00
view_syncs.js Fix application of incoming view syncs 2020-04-29 17:42:41 -07:00
wall_clock_listener.js Remove jshint - move everything over to eslint 2018-07-17 15:54:32 -07:00
WebAudioRecorderMp3.js Copy audio-related files into js/ instead of symlinking them (#1456) 2017-09-14 17:03:18 -07:00