ukui-media/0005-Solve-the-problem-of-adjusting-animation-freeze.patch

76 lines
3.4 KiB
Diff

From cee36cfdcea26d4eced49bfab0af311687393720 Mon Sep 17 00:00:00 2001
From: tanyulong <tanyulong@kylinos.cn>
Date: Mon, 12 Jul 2021 14:59:03 +0800
Subject: [PATCH] Solve the problem of adjusting animation freeze
---
.../ukmedia_device_switch_widget.cpp | 11 +++++++++--
.../ukmedia_device_switch_widget.h | 3 ++-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
index cb10ae2..3a262a3 100755
--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
+++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
@@ -411,13 +411,13 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent)
* \details
* 完整模式下,应用音量节面,当滑动条值改变时更改系统音量
*/
- connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT(advancedSystemSliderChangedSlot(int)));
+ // connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT( advancedSystemSliderChangedSlot(int)));
/*!
* \brief
* \details
* 完整模式下,系统音量界面,当滑动条值改变时更改系统音量
*/
- connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int)));
+ // connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int)));
/*!
* \brief
* \details
@@ -2507,6 +2507,7 @@ void DeviceSwitchWidget::update_icon_output (DeviceSwitchWidget *w,MateMixerCont
QSlider *slider1 = w->miniWidget->findChild<QSlider *>(w->outputControlName);
if (slider1 == nullptr)
return;
+ w->setVolume = true;
w->devWidget->outputDeviceSlider->setValue(value);
// w->miniWidget->masterVolumeSlider->setValue(value);
w->appWidget->systemVolumeSlider->setValue(value);
@@ -2734,6 +2735,11 @@ void DeviceSwitchWidget::on_control_mute_notify (MateMixerStreamControl *control
void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl *control,GParamSpec *pspec,DeviceSwitchWidget *w)
{
Q_UNUSED(pspec);
+ if (w->setVolume == true) {
+ w->setVolume = false;
+ qDebug() << "123123123123123";
+ return;
+ }
MateMixerStreamControlFlags flags;
gboolean muted = FALSE;
gdouble decibel = 0.0;
@@ -2782,6 +2788,7 @@ void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl
ca_context_create(&context);
int value = int(volume*100/65536.0 + 0.5);
if (direction == MATE_MIXER_DIRECTION_OUTPUT) {
+ w->setVolume = true;
w->devWidget->outputDeviceSlider->setValue(value);
w->appWidget->systemVolumeSlider->setValue(value);
w->miniWidget->masterVolumeSlider->setValue(value);
diff --git a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
index 5881b47..2c9b778 100755
--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
+++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
@@ -268,7 +268,8 @@ private:
QString mThemeName;
bool firstEnterSystem = true;
ca_context *caContext;
-
+
+ bool setVolume = false;
bool setOutputVolume = false;
bool setInputVolume = false;
--
2.23.0