savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2020-12-24T14:27:03Zhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1067Jami seems to be preventing Linux to shutdown or reboot.2020-12-24T14:27:03ZAndy HiscockJami seems to be preventing Linux to shutdown or reboot.Has anyone else noticed how Jami is preventing a reboot or power off of laptops?
I've tried a Lenovo, Acer and Dell. Keeping in with the Libre spirit, all running Trisquel 8. All shut down but "pause" at the point of power down or reb...Has anyone else noticed how Jami is preventing a reboot or power off of laptops?
I've tried a Lenovo, Acer and Dell. Keeping in with the Libre spirit, all running Trisquel 8. All shut down but "pause" at the point of power down or reboot. Either doing a soft reboot though the keyboard or pressing the power button to continue. The Pause can last 30 seconds, I have also left the machine overnight and it was still paused.
If I manually Quit Jami before trying to Shut Down / Reboot I never get the problem - this is why I suspect it is the jami-daemon.
Is this a known bug?https://git.jami.net/savoirfairelinux/jami-packaging/-/issues/12Debian: official distribution repository package2020-12-24T13:27:55ZFredy PulidoDebian: official distribution repository package* Analize Jami and Debian Versions and releases
* Define strategy
* Contact developer to work together
Related: https://git.jami.net/savoirfairelinux/jami-packaging/issues/8* Analize Jami and Debian Versions and releases
* Define strategy
* Contact developer to work together
Related: https://git.jami.net/savoirfairelinux/jami-packaging/issues/8Amin BandaliAmin Bandalihttps://git.jami.net/savoirfairelinux/jami-packaging/-/issues/84[Request] 32-bit Debian i386 package2020-12-24T13:27:35Z[Request] 32-bit Debian i386 packageAny chance to provide a *jami-all_i386.deb* for 32-bit Debian which can be used by
both Debian and Debian-based distros (like MX Linux, LMDE, SparkyLinux)
Debian 32bit users want to use jami too!
*P.S Ubuntu favors and Ubuntu will s...Any chance to provide a *jami-all_i386.deb* for 32-bit Debian which can be used by
both Debian and Debian-based distros (like MX Linux, LMDE, SparkyLinux)
Debian 32bit users want to use jami too!
*P.S Ubuntu favors and Ubuntu will stop official support in 2021 and 2023 respectively
while Debian, one of the most popular distros, and Debian-based distros still provide
official support for 32bit computer. Therefore users for Debian and Debian-based
distros will increase in the foreseeable future.*https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/225Swarm: removeContact should remove related swarm2020-12-23T21:43:37ZSébastien BlinSwarm: removeContact should remove related swarm# Reproduce steps
+ Right click on contact, remove contact
# Expected
+ daemon will launch conversationremoved() for swarm, swarm must be removed
# Current
+ Swarm seems to stay there# Reproduce steps
+ Right click on contact, remove contact
# Expected
+ daemon will launch conversationremoved() for swarm, swarm must be removed
# Current
+ Swarm seems to stay thereSwarm-chatKateryna KostiukAlbert Babí OllerKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/223Swarm: Conversations disappears2020-12-23T21:28:46ZSébastien BlinSwarm: Conversations disappears# Scenario
+ Create a one to one conversation between 2 accounts on same client
+ Switch from one account to another and send messages
# Current result
+ Sometimes the whole conversation disappears
# Expected
The conversation should...# Scenario
+ Create a one to one conversation between 2 accounts on same client
+ Switch from one account to another and send messages
# Current result
+ Sometimes the whole conversation disappears
# Expected
The conversation should be shownSwarm-chatAlbert Babí OllerKateryna KostiukAlbert Babí Ollerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/292Swarm: Fix build on jenkins2020-12-23T19:37:25ZSébastien BlinSwarm: Fix build on jenkinsPatches are not building for nowPatches are not building for nowSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/448i18n: transfer status not translated2020-12-22T20:19:43ZSébastien Blini18n: transfer status not translatedhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/357Make unit tests independent from each others2020-12-22T20:19:23ZSébastien BlinMake unit tests independent from each othersSee `/tests`See `/tests`Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/441Crash in renderer (linux)2020-12-22T20:18:35ZSébastien BlinCrash in renderer (linux)```
Thread 1 "jami-gnome" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=si...```
Thread 1 "jami-gnome" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff2fc6859 in __GI_abort () at abort.c:79
#2 0x00007ffff6b53aad in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3 0x00007ffff6b542aa in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4 0x00007ffff7f1adf0 in lrc::RendererPimpl::~RendererPimpl()
(this=0x55559f789b60, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:75
#5 0x00007ffff7f1af6d in lrc::RendererPimpl::~RendererPimpl()
(this=0x55559f789b60, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:235
#6 0x00007ffff7f1a83a in std::default_delete<lrc::RendererPimpl>::operator()(lrc::RendererPimpl*) const (this=0x7fffc0006820, __ptr=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:75
#7 std::unique_ptr<lrc::RendererPimpl, std::default_delete<lrc::RendererPimpl> >::~unique_ptr()
(this=0x7fffc0006820, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:292
#8 lrc::api::video::Renderer::~Renderer() (this=0x7fffc0006810, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:88
#9 0x00007ffff7f1a85d in lrc::api::video::Renderer::~Renderer()
(this=0x7fffc0006810, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:88
#10 0x00007ffff7f37eef in std::default_delete<lrc::api::video::Renderer>::operator()(lrc::api::video::Renderer*) const (this=0x55559f755c38, __ptr=<optimized out>)
at /usr/include/c++/9/bits/unique_ptr.h:75
#11 std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> >::~unique_ptr() (this=0x55559f755c38, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/unique_ptr.h:292
#12 std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >::~pair() (this=0x55559f755c30, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/stl_pair.h:208
#13 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::destroy<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >(std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >*) (this=0x55555699ae08, __p=0x55559f755c30)
at /usr/include/c++/9/ext/new_allocator.h:153
#14 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > > >::destroy<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >(std::allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >&, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >*)
(__a=..., __p=0x55559f755c30) at /usr/include/c++/9/bits/alloc_traits.h:497
#15 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >*)
(this=0x55555699ae08, __p=0x55559f755c10) at /usr/include/c++/9/bits/stl_tree.h:642
#16 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >*)
--Type <RET> for more, q to quit, c to continue without paging--
(this=0x55555699ae08, __p=0x55559f755c10) at /usr/include/c++/9/bits/stl_tree.h:650
#17 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >) (__position=..., this=0x55555699ae08) at /usr/include/c++/9/bits/stl_tree.h:2511
#18 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >)Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer':
Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer':
(__last=..., __first=..., this=0x55555699ae08)
at /usr/include/c++/9/bits/stl_tree.h:2525
#19 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::erase(QString const&)
(this=this@entry=0x55555699ae08, __x=...) at /usr/include/c++/9/bits/stl_tree.h:2536
#20 0x00007ffff7f2ff93 in std::map<QString, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::erase(QString const&) (__x=..., this=0x55555699ae08) at /usr/include/c++/9/bits/stl_map.h:1067
#21 lrc::AVModelPimpl::slotCallStateChanged(QString const&, QString const&, int)
(this=0x55555699adc0, id=..., state=..., code=<optimized out>)
at /home/sblin/ring-project/lrc/src/avmodel.cpp:832
#22 0x00007ffff6d80458 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff7e747ff in lrc::CallbacksHandler::callStateChanged(QString const&, QString const&, int) (this=<optimized out>, _t1=..., _t2=..., _t3=<optimized out>)
at /home/sblin/ring-project/lrc/build-local/ringclient_autogen/UVLADIE3JM/moc_callbackshandler.cpp:865
#24 0x00007ffff6d80d5a in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff6d54917 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff6d575b8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff6dacf67 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff7068fbd in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff7069240 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff70692e3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff7282fd5 in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#32 0x00005555555c7852 in main(int, char**) (argc=1, argv=0x7fffffffdd88)
at /home/sblin/ring-project/client-gnome/src/main.cpp:38
```Iteration 25Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/194ConnectionManager first version2020-12-22T20:06:02ZSébastien BlinConnectionManager first versionhttps://review.jami.net/c/ring-daemon/+/12744https://review.jami.net/c/ring-daemon/+/12744Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/203[Feature Request] Read Reciepts2020-12-22T20:05:19Ztrymeout[Feature Request] Read RecieptsJami has a sending indicator, and received indicator. But not a read indicator. Please add read reciepts for Jami. Here is how I picture it could work for two way conversations and even group conversations.
[Spinning Circle - Sending......Jami has a sending indicator, and received indicator. But not a read indicator. Please add read reciepts for Jami. Here is how I picture it could work for two way conversations and even group conversations.
[Spinning Circle - Sending...]
[Hollow Checkmarks - Sent]
[Filled Checkmark - Received]
[Username Icon - Read]https://git.jami.net/savoirfairelinux/jami-project/-/issues/554Fix Self Messaging2020-12-22T20:03:30ZNikhil JhaFix Self MessagingI tried to message myself, with weird consequences...
![Jami Screenshot Mac](/uploads/cb0d4a272f9c72456ece6b5a38b8fb60/Screen_Shot_2019-01-27_at_11.38.30_AM.png)
On the iOS version, I have two chats with myself that look like
```
> He...I tried to message myself, with weird consequences...
![Jami Screenshot Mac](/uploads/cb0d4a272f9c72456ece6b5a38b8fb60/Screen_Shot_2019-01-27_at_11.38.30_AM.png)
On the iOS version, I have two chats with myself that look like
```
> Hello
< Hello
```
This should either act like "saved messages" on Telegram (one sided chat), or should be blocked entirely.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/205[Feature Request] Typing Indicators2020-12-22T20:03:07Ztrymeout[Feature Request] Typing IndicatorsNot an important feature, this exists in WhatsApp and Signal and when someone is typing a message it will send an indicator to the other peer(s) show that they are typing.
If this feature is added it should be optional for each conversa...Not an important feature, this exists in WhatsApp and Signal and when someone is typing a message it will send an indicator to the other peer(s) show that they are typing.
If this feature is added it should be optional for each conversation were it can be turned on/oof since some people will like more privacy and not have the other peer know when they are typing.Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/351Swarm: cleanup current code2020-12-22T20:02:14ZSébastien BlinSwarm: cleanup current code# Done, to rebase
+ Avoid lock in testBanDevice if CPPUNIT_ASSERT(fileutils::isFile(bannedFile)); fails (just change bannedFile)
+ Add getUri() and getDeviceId() for JamiAccount to avoid multiple lookups + cleanup username_ usage => htt...# Done, to rebase
+ Avoid lock in testBanDevice if CPPUNIT_ASSERT(fileutils::isFile(bannedFile)); fails (just change bannedFile)
+ Add getUri() and getDeviceId() for JamiAccount to avoid multiple lookups + cleanup username_ usage => https://review.jami.net/c/ring-daemon/+/16424
+ Add test to assert that device certificate is there on commit
+ Add check to validate votes + commit messages (verif certificate)
+ invited create a directory instead a file
+ Some message sends to self. Avoid
+ valiadte too much commits
+ Disconnection during fetch => block the fetch, should be stopped
+ Some fetch blocked in
```
#0 0x00007ffff7a1c4e8 in pthread_cond_clockwait () from /lib64/libpthread.so.0
#1 0x0000000000671142 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7ffe10017ce8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#2 0x000000000066d8e7 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7ffe10017ce8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#3 0x000000000065fdb8 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, jami::MultiplexedSocket::waitForData(const uint16_t&, std::chrono::milliseconds, s
td::error_code&) const::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &, struct {...}) (this=0x7ffe10017ce8, __lock=..
., __atime=..., __p=...) at /usr/include/c++/10/condition_variable:158
--Type <RET> for more, q to quit, c to continue without paging--
#4 0x000000000065fb76 in std::condition_variable::wait_for<long int, std::ratio<1, 1000>, jami::MultiplexedSocket::waitForData(const uint16_t&, std::chrono::milliseconds, std::error_code&) const::<lambda()> >(std::unique_lock<std::mutex
> &, const std::chrono::duration<long, std::ratio<1, 1000> > &, struct {...}) (this=0x7ffe10017ce8, __lock=..., __rtime=..., __p=...) at /usr/include/c++/10/condition_variable:185
#5 0x000000000065e959 in jami::MultiplexedSocket::waitForData (this=0x7ffe10008400, channel=@0x7ffe100092d8: 38876, timeout=..., ec=...) at multiplexed_socket.cpp:481
#6 0x000000000065f517 in jami::ChannelSocket::waitForData (this=0x7ffe10006850, timeout=..., ec=...) at multiplexed_socket.cpp:656
#7 0x000000000073cbb1 in P2PStreamRead (stream=0x7ffe04026910, buffer=0x7ffe0402e060 "0008NAK\n", buflen=65536, read=0x7ffe727f7a08) at gittransport.cpp:104
#8 0x0000000000bc0863 in git_smart.recv_cb ()
#9 0x0000000000bc2418 in recv_pkt ()
#10 0x0000000000bc32f1 in git_smart.download_pack ()
#11 0x0000000000ba8919 in git_remote_download ()
```
+ Add account id on logs (to rebase)
+ Queue for merge (convId, device)
+ test double fetch without common refs => should merge both side ok
(a & b same repo, a add commit, b too, then start daemon)
+ Handle 3 users
+ Add locks on conversations_ & pendingFetch & avoid lock on sendMessageNotification + avoid to lock on big operations
+ Avoid multiple parrallel fetch on different remots with same repository, this cause issues
+ Clean warnings
+ Fix segv for repository_ in conversationrepository_
+ improve getMembers()
+ Doc: verify in the doc that we do not add certificates in invited
+ end blockedSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/358Swarm: add not contact member to conversation2020-12-22T20:02:05ZKateryna KostiukSwarm: add not contact member to conversationCurrently adding a contact that is not accepted contact request, as a member to conversation will fail with error "Could not add member because no certificate is found"Currently adding a contact that is not accepted contact request, as a member to conversation will fail with error "Could not add member because no certificate is found"Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/374swarm: call messages generated twice2020-12-22T20:01:21ZKateryna Kostiukswarm: call messages generated twiceSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/192button override some text2020-12-22T15:43:30ZSébastien Blinbutton override some text![jamiwindowsecran](/uploads/d84979064d16870a4a6f5746e86bef19/jamiwindowsecran.png)![jamiwindowsecran](/uploads/d84979064d16870a4a6f5746e86bef19/jamiwindowsecran.png)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/219file transfer (GNU/linux) via drag and drop is broken2020-12-22T14:47:32ZSébastien Blinfile transfer (GNU/linux) via drag and drop is broken# Reproduce step
+ Drag and drop a file into the chatview
# Expected
File should be shown
# current a file with 0Byte is shown# Reproduce step
+ Drag and drop a file into the chatview
# Expected
File should be shown
# current a file with 0Byte is shownAlbert Babí OllerAlbert Babí Ollerhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/221Media settings: VP8 checkbox is pixelized2020-12-22T14:47:22ZSébastien BlinMedia settings: VP8 checkbox is pixelizedAlbert Babí OllerAlbert Babí Ollerhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/220Dark theme: General settings: dark theme: chatview in black on black2020-12-22T14:47:15ZSébastien BlinDark theme: General settings: dark theme: chatview in black on blackAlbert Babí OllerAlbert Babí Oller