mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
fix: 设置时间字体陷入死循环
根据bug日志可以看出,任务栏在设置字体的时候陷入了死循环。增加判断,如果字体的大小出现了异常(<=1),则退出循环。 这个问题很难复现,此处修改不一定修复了bug,但起码能规避死循环的问题。 Log: 修复设置时间字体异常的问题 Bug: https://pms.uniontech.com/bug-view-125007.html Influence: 没有实际功能性影响,只是规避可能出现卡死的风险。 Change-Id: I14fa6ce8cd70d52bc6b54b7461798c10ed48667c (cherry picked from commit 4939a61c1eb9618e5430d46d83785f656501288f)
This commit is contained in:
parent
e16944a99f
commit
bf490aeda3
@ -152,7 +152,7 @@ QSize DatetimeWidget::curTimeSize() const
|
||||
dateSize.setWidth(maxWidth);
|
||||
|
||||
if (position == Dock::Bottom || position == Dock::Top) {
|
||||
while (QFontMetrics(m_timeFont).boundingRect(timeString).height() + QFontMetrics(m_dateFont).boundingRect(dateString).height() > height()) {
|
||||
while (QFontMetrics(m_timeFont).boundingRect(timeString).height() + QFontMetrics(m_dateFont).boundingRect(dateString).height() > height() && m_timeFont.pixelSize() > 1) {
|
||||
m_timeFont.setPixelSize(m_timeFont.pixelSize() - 1);
|
||||
maxWidth = std::max(QFontMetrics(m_timeFont).boundingRect(timeString).size().width(), QFontMetrics(m_timeFont).horizontalAdvance(timeString));
|
||||
timeSize.setWidth(maxWidth);
|
||||
@ -164,7 +164,7 @@ QSize DatetimeWidget::curTimeSize() const
|
||||
}
|
||||
return QSize(std::max(timeSize.width(), dateSize.width()), timeSize.height() + dateSize.height());
|
||||
} else {
|
||||
while (std::max(QFontMetrics(m_timeFont).boundingRect(timeString).size().width(), QFontMetrics(m_dateFont).boundingRect(dateString).size().width()) > (width() - 4)) {
|
||||
while (std::max(QFontMetrics(m_timeFont).boundingRect(timeString).size().width(), QFontMetrics(m_dateFont).boundingRect(dateString).size().width()) > (width() - 4) && m_timeFont.pixelSize() > 1) {
|
||||
m_timeFont.setPixelSize(m_timeFont.pixelSize() - 1);
|
||||
if (m_24HourFormat) {
|
||||
timeSize.setHeight(QFontMetrics(m_timeFont).boundingRect(timeString).size().height());
|
||||
|
Loading…
x
Reference in New Issue
Block a user