Hide controls in full screen stream by timeout.
This commit is contained in:
		
							parent
							
								
									dd5aeeb65a
								
							
						
					
					
						commit
						5ad2900c9c
					
				
					 2 changed files with 17 additions and 1 deletions
				
			
		| 
						 | 
					@ -71,6 +71,7 @@ constexpr auto kRecordingOpacity = 0.6;
 | 
				
			||||||
constexpr auto kStartNoConfirmation = TimeId(10);
 | 
					constexpr auto kStartNoConfirmation = TimeId(10);
 | 
				
			||||||
constexpr auto kControlsBackgroundOpacity = 0.8;
 | 
					constexpr auto kControlsBackgroundOpacity = 0.8;
 | 
				
			||||||
constexpr auto kOverrideActiveColorBgAlpha = 172;
 | 
					constexpr auto kOverrideActiveColorBgAlpha = 172;
 | 
				
			||||||
 | 
					constexpr auto kHideControlsTimeout = 5 * crl::time(1000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // namespace
 | 
					} // namespace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -121,7 +122,8 @@ Panel::Panel(not_null<GroupCall*> call)
 | 
				
			||||||
, _hangup(widget(), st::groupCallHangup)
 | 
					, _hangup(widget(), st::groupCallHangup)
 | 
				
			||||||
, _stickedTooltipsShown(Core::App().settings().hiddenGroupCallTooltips()
 | 
					, _stickedTooltipsShown(Core::App().settings().hiddenGroupCallTooltips()
 | 
				
			||||||
	& ~StickedTooltip::Microphone) // Always show tooltip about mic.
 | 
						& ~StickedTooltip::Microphone) // Always show tooltip about mic.
 | 
				
			||||||
, _toasts(std::make_unique<Toasts>(this)) {
 | 
					, _toasts(std::make_unique<Toasts>(this))
 | 
				
			||||||
 | 
					, _hideControlsTimer([=] { toggleWideControls(false); }) {
 | 
				
			||||||
	_layerBg->setStyleOverrides(&st::groupCallBox, &st::groupCallLayerBox);
 | 
						_layerBg->setStyleOverrides(&st::groupCallBox, &st::groupCallLayerBox);
 | 
				
			||||||
	_layerBg->setHideByBackgroundClick(true);
 | 
						_layerBg->setHideByBackgroundClick(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1170,6 +1172,17 @@ void Panel::createPinOnTop() {
 | 
				
			||||||
		_pinOnTop->setVisible(!fullscreen);
 | 
							_pinOnTop->setVisible(!fullscreen);
 | 
				
			||||||
		if (fullscreen) {
 | 
							if (fullscreen) {
 | 
				
			||||||
			pin(false);
 | 
								pin(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								_viewport->rp()->events(
 | 
				
			||||||
 | 
								) | rpl::filter([](not_null<QEvent*> event) {
 | 
				
			||||||
 | 
									return (event->type() == QEvent::MouseMove);
 | 
				
			||||||
 | 
								}) | rpl::start_with_next([=] {
 | 
				
			||||||
 | 
									_hideControlsTimer.callOnce(kHideControlsTimeout);
 | 
				
			||||||
 | 
									toggleWideControls(true);
 | 
				
			||||||
 | 
								}, _hideControlsTimerLifetime);
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								_hideControlsTimerLifetime.destroy();
 | 
				
			||||||
 | 
								_hideControlsTimer.cancel();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}, _pinOnTop->lifetime());
 | 
						}, _pinOnTop->lifetime());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -256,6 +256,9 @@ private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	std::unique_ptr<MicLevelTester> _micLevelTester;
 | 
						std::unique_ptr<MicLevelTester> _micLevelTester;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						base::Timer _hideControlsTimer;
 | 
				
			||||||
 | 
						rpl::lifetime _hideControlsTimerLifetime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rpl::lifetime _peerLifetime;
 | 
						rpl::lifetime _peerLifetime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue