2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-06 09:35:12 +00:00

Add support for G-S-D's media-keys extension

This fixes media keys handling on (but not limited to, probably):
* GNOME
* Cinnamon
* MATE
* Budgie
* Pantheon (elementaryOS)
* Unity
This commit is contained in:
Ilya Fedin
2020-12-27 15:30:19 +04:00
committed by John Preston
parent 486424af4f
commit 28f857f763
5 changed files with 250 additions and 0 deletions

View File

@@ -23,8 +23,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "storage/localstorage.h"
#include "window/window_controller.h"
#include "window/window_session_controller.h"
#include "media/player/media_player_instance.h"
#include "media/audio/media_audio.h"
#include "base/platform/base_platform_info.h"
#include "base/platform/linux/base_xcb_utilities_linux.h"
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
#include "platform/linux/linux_gsd_media_keys.h"
#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION
#include "base/call_delayed.h"
#include "ui/widgets/input_fields.h"
#include "facades.h"
@@ -572,6 +577,17 @@ void MainWindow::initHook() {
} else {
LOG(("Not using Unity launcher counter."));
}
Media::Player::instance()->updatedNotifier(
) | rpl::start_with_next([=](const Media::Player::TrackState &state) {
if (!Media::Player::IsStoppedOrStopping(state.state)) {
if (!_gsdMediaKeys) {
_gsdMediaKeys = std::make_unique<internal::GSDMediaKeys>();
}
} else if (_gsdMediaKeys) {
_gsdMediaKeys = nullptr;
}
}, lifetime());
#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION
updateWaylandDecorationColors();