GIFs get paused if some other layer is displayed above.
Media preview > Box or layer > Saved GIFs panel > Inline bot results.
If any of those is displayed, GIFs inside message history pause too.
Sometimes you don't need shared ownership (shared_ptr), but you
still need to be able to have weak pointers to an object.
Now you can derive the object from base::enable_weak_from_this
and use base::weak_unique_ptr<T> after that.
Ubuntu 17.04 launch results in segfault if the build was done
by GCC 6.2 (works fine with GCC 4.9). Backtrace shows that it
crashes in gtk_init_check() call somewhere in libmirclient and
tests show that it works fine with GDK_BACKEND=x11.
So we use gdk_set_allowed_backends() method to explicitly state
that we support only "x11" GDK backend, that way it doesn't try
to use libmirclient and it does not crash.
Fix#3176#3162
WebDocument size field is not a reliable information,
it can be > 0 and != upload.WebFile size field, so just ignore it
and load all WebDocument files as files with unknown size.
Also replacing the Buy keyboard button with Receipt if the invoice
was payed already (like in mobile apps). This required to move the
inline markup apply before the media apply in message editing.
We load a WebDocument with an unknown size the same way as we load
normal photos with FileLocation, that doesn't contain size as well.
If the size information from WebDocument and upload.WebFile is
inconsistent we still fail to load the file.
New button type keyboardButtonBuy just shows a box with information.
WebDocument photo type is not supported yet, 'photo' is ignored.
Also HistoryMediaPtr is now implemented as a std::unique_ptr wrapper.
What has been done:
* Removed deprecated Encoding key
* Specified correct WM class for StartupWMClass key
* Fixed icon name
I also fixed restarting when language is changed and there is no Updater
Signed-off-by: Nicholas Guriev <guriev-ns@ya.ru> (github: mymedia2)
base::lambda_guarded may destroy the lambda after the owner. In case
of SelfDestructionBox it lead to a dtor of a dangling object_ptr.
MTP::Sender destroys the lambda handlers together with itself.
Now group of Ui::Radiobutton instances share Ui::RadiobuttonGroup.
All value management is done through the group instance, not through
separate radio buttons. Also a template for groups over enums added.