mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-09-04 00:25:17 +00:00
Fix maximize/fullscreen of pinned-to-top livestream.
This commit is contained in:
@@ -146,6 +146,23 @@ Main::Session &Show::session() const {
|
|||||||
return panel->call()->peer()->session();
|
return panel->call()->peer()->session();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
void UnpinMaximized(not_null<QWidget*> widget) {
|
||||||
|
SetWindowPos(
|
||||||
|
reinterpret_cast<HWND>(widget->window()->windowHandle()->winId()),
|
||||||
|
HWND_NOTOPMOST,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
(SWP_NOMOVE
|
||||||
|
| SWP_NOSIZE
|
||||||
|
| SWP_NOOWNERZORDER
|
||||||
|
| SWP_FRAMECHANGED
|
||||||
|
| SWP_NOACTIVATE));
|
||||||
|
}
|
||||||
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
struct Panel::ControlsBackgroundNarrow {
|
struct Panel::ControlsBackgroundNarrow {
|
||||||
@@ -1257,7 +1274,12 @@ void Panel::createPinOnTop() {
|
|||||||
|
|
||||||
_pinOnTop->setVisible(!fullScreenOrMaximized);
|
_pinOnTop->setVisible(!fullScreenOrMaximized);
|
||||||
if (fullScreenOrMaximized) {
|
if (fullScreenOrMaximized) {
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
UnpinMaximized(window());
|
||||||
|
_unpinnedMaximized = true;
|
||||||
|
#else // Q_OS_WIN
|
||||||
pin(false);
|
pin(false);
|
||||||
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
_viewport->rp()->events(
|
_viewport->rp()->events(
|
||||||
) | rpl::filter([](not_null<QEvent*> event) {
|
) | rpl::filter([](not_null<QEvent*> event) {
|
||||||
@@ -1269,6 +1291,9 @@ void Panel::createPinOnTop() {
|
|||||||
|
|
||||||
_hideControlsTimer.callOnce(kHideControlsTimeout);
|
_hideControlsTimer.callOnce(kHideControlsTimeout);
|
||||||
} else {
|
} else {
|
||||||
|
if (_unpinnedMaximized) {
|
||||||
|
pin(false);
|
||||||
|
}
|
||||||
_hideControlsTimerLifetime.destroy();
|
_hideControlsTimerLifetime.destroy();
|
||||||
_hideControlsTimer.cancel();
|
_hideControlsTimer.cancel();
|
||||||
refreshTitleGeometry();
|
refreshTitleGeometry();
|
||||||
|
@@ -228,6 +228,7 @@ private:
|
|||||||
const std::unique_ptr<Ui::LayerManager> _layerBg;
|
const std::unique_ptr<Ui::LayerManager> _layerBg;
|
||||||
rpl::variable<PanelMode> _mode;
|
rpl::variable<PanelMode> _mode;
|
||||||
rpl::variable<bool> _fullScreenOrMaximized = false;
|
rpl::variable<bool> _fullScreenOrMaximized = false;
|
||||||
|
bool _unpinnedMaximized = false;
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
rpl::variable<int> _controlsTop = 0;
|
rpl::variable<int> _controlsTop = 0;
|
||||||
|
Reference in New Issue
Block a user