From 46885b7f9f9297b14b0da7a1a956921fb293365b Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 11 Aug 2021 11:06:34 +0300 Subject: [PATCH] Fix mouse input in layers in call window. --- Telegram/SourceFiles/calls/calls_panel.cpp | 13 ++++++++++--- .../SourceFiles/calls/group/calls_group_panel.cpp | 9 +++++++-- Telegram/lib_ui | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_panel.cpp b/Telegram/SourceFiles/calls/calls_panel.cpp index 03a14e74c..f66ede2c8 100644 --- a/Telegram/SourceFiles/calls/calls_panel.cpp +++ b/Telegram/SourceFiles/calls/calls_panel.cpp @@ -77,6 +77,9 @@ Panel::Panel(not_null call) , _mute(widget(), st::callMicrophoneMute, &st::callMicrophoneUnmute) , _name(widget(), st::callName) , _status(widget(), st::callStatus) { + _layerBg->setStyleOverrides(&st::groupCallBox, &st::groupCallLayerBox); + _layerBg->setHideByBackgroundClick(true); + _decline->setDuration(st::callPanelDuration); _decline->entity()->setText(tr::lng_call_decline()); _cancel->setDuration(st::callPanelDuration); @@ -158,9 +161,13 @@ void Panel::initWindow() { _answerHangupRedial->height()).contains(widgetPoint) || (!_outgoingPreviewInBody && _outgoingVideoBubble->geometry().contains(widgetPoint)); - return inControls - ? Flag::None - : (Flag::Move | Flag::FullScreen); + if (inControls) { + return Flag::None | Flag(0); + } + const auto shown = _layerBg->topShownLayer(); + return (!shown || !shown->geometry().contains(widgetPoint)) + ? (Flag::Move | Flag::FullScreen) + : Flag::None; }); // Don't do that, it looks awful :( diff --git a/Telegram/SourceFiles/calls/group/calls_group_panel.cpp b/Telegram/SourceFiles/calls/group/calls_group_panel.cpp index 3f3d431c1..6a5a1a2f9 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_panel.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_panel.cpp @@ -268,11 +268,16 @@ void Panel::initWindow() { 0, widget()->width(), st::groupCallMembersTop); - return (titleRect.contains(widgetPoint) + const auto moveable = (titleRect.contains(widgetPoint) && (!_menuToggle || !_menuToggle->geometry().contains(widgetPoint)) && (!_menu || !_menu->geometry().contains(widgetPoint)) && (!_recordingMark || !_recordingMark->geometry().contains(widgetPoint)) - && (!_joinAsToggle || !_joinAsToggle->geometry().contains(widgetPoint))) + && (!_joinAsToggle || !_joinAsToggle->geometry().contains(widgetPoint))); + if (!moveable) { + return (Flag::None | Flag(0)); + } + const auto shown = _layerBg->topShownLayer(); + return (!shown || !shown->geometry().contains(widgetPoint)) ? (Flag::Move | Flag::Maximize) : Flag::None; }); diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 024f6fc1a..1b590f9e1 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 024f6fc1a970778a5a6393a8fcd847fd52760097 +Subproject commit 1b590f9e16eb9571a039f072d6fea66c607e419f