mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
fix: resize dock and fashion system tray recursively
Change-Id: I988712e6f6081ddecf48207f9ed93096ff5598c2
This commit is contained in:
parent
40490788db
commit
738f41aa17
Notes:
gerrit
2018-11-12 13:13:02 +08:00
Verified+1: <jenkins@deepin.com> Verified+1: zhaofangfangdeepin <zhaofangfang@linuxdeepin.com> Code-Review+2: listenerri <listenerri@gmail.com> Submitted-by: listenerri <listenerri@gmail.com> Submitted-at: Mon, 12 Nov 2018 13:13:01 +0800 Reviewed-on: https://cr.deepin.io/39655 Project: dde/dde-dock Branch: refs/heads/master
@ -548,7 +548,8 @@ void MainPanel::adjustItemSize()
|
|||||||
--extraDecrease;
|
--extraDecrease;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FSTrayItem) {
|
// 如果dock的大小已经是最大的则不再调整时尚模式托盘图标的大小,以避免递归调整dock与托盘的大小
|
||||||
|
if (!DockSettings::Instance().isMaxSize() && FSTrayItem) {
|
||||||
FSTrayItem->setSuggestIconSize(FSTraySuggestIconSize);
|
FSTrayItem->setSuggestIconSize(FSTraySuggestIconSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ extern const QPoint rawXPosition(const QPoint &scaledPos);
|
|||||||
DockSettings::DockSettings(QWidget *parent)
|
DockSettings::DockSettings(QWidget *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_autoHide(true)
|
, m_autoHide(true)
|
||||||
|
, m_isMaxSize(false)
|
||||||
, m_opacity(0.4)
|
, m_opacity(0.4)
|
||||||
, m_fashionSystemTraySize(QSize(0, 0))
|
, m_fashionSystemTraySize(QSize(0, 0))
|
||||||
, m_fashionModeAct(tr("Fashion Mode"), this)
|
, m_fashionModeAct(tr("Fashion Mode"), this)
|
||||||
@ -586,20 +587,24 @@ void DockSettings::calculateWindowConfig()
|
|||||||
|
|
||||||
const int perfectWidth = visibleItemCount * defaultWidth + PANEL_BORDER * 2 + PANEL_PADDING * 2 + PANEL_MARGIN * 2 + m_fashionSystemTraySize.width();
|
const int perfectWidth = visibleItemCount * defaultWidth + PANEL_BORDER * 2 + PANEL_PADDING * 2 + PANEL_MARGIN * 2 + m_fashionSystemTraySize.width();
|
||||||
const int perfectHeight = visibleItemCount * defaultHeight + PANEL_BORDER * 2 + PANEL_PADDING * 2 + PANEL_MARGIN * 2 + m_fashionSystemTraySize.height();
|
const int perfectHeight = visibleItemCount * defaultHeight + PANEL_BORDER * 2 + PANEL_PADDING * 2 + PANEL_MARGIN * 2 + m_fashionSystemTraySize.height();
|
||||||
const int calcWidth = qMin(m_primaryRect.width() - FASHION_MODE_PADDING * 2, perfectWidth);
|
const int maxWidth = m_primaryRect.width() - FASHION_MODE_PADDING * 2;
|
||||||
const int calcHeight = qMin(m_primaryRect.height() - FASHION_MODE_PADDING * 2, perfectHeight);
|
const int maxHeight = m_primaryRect.height() - FASHION_MODE_PADDING * 2;
|
||||||
|
const int calcWidth = qMin(maxWidth, perfectWidth);
|
||||||
|
const int calcHeight = qMin(maxHeight, perfectHeight);
|
||||||
switch (m_position)
|
switch (m_position)
|
||||||
{
|
{
|
||||||
case Top:
|
case Top:
|
||||||
case Bottom:
|
case Bottom:
|
||||||
m_mainWindowSize.setHeight(defaultHeight + PANEL_BORDER);
|
m_mainWindowSize.setHeight(defaultHeight + PANEL_BORDER);
|
||||||
m_mainWindowSize.setWidth(calcWidth);
|
m_mainWindowSize.setWidth(calcWidth);
|
||||||
|
m_isMaxSize = (calcWidth == maxWidth);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Left:
|
case Left:
|
||||||
case Right:
|
case Right:
|
||||||
m_mainWindowSize.setHeight(calcHeight);
|
m_mainWindowSize.setHeight(calcHeight);
|
||||||
m_mainWindowSize.setWidth(defaultWidth + PANEL_BORDER);
|
m_mainWindowSize.setWidth(defaultWidth + PANEL_BORDER);
|
||||||
|
m_isMaxSize = (calcHeight == maxHeight);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -72,6 +72,7 @@ public:
|
|||||||
inline int expandTimeout() const { return m_dockInter->showTimeout(); }
|
inline int expandTimeout() const { return m_dockInter->showTimeout(); }
|
||||||
inline int narrowTimeout() const { return 100; }
|
inline int narrowTimeout() const { return 100; }
|
||||||
inline bool autoHide() const { return m_autoHide; }
|
inline bool autoHide() const { return m_autoHide; }
|
||||||
|
inline bool isMaxSize() const { return m_isMaxSize; }
|
||||||
inline const QRect primaryRect() const { return m_primaryRect; }
|
inline const QRect primaryRect() const { return m_primaryRect; }
|
||||||
inline const QRect primaryRawRect() const { return m_primaryRawRect; }
|
inline const QRect primaryRawRect() const { return m_primaryRawRect; }
|
||||||
inline const QRect frontendWindowRect() const { return m_frontendRect; }
|
inline const QRect frontendWindowRect() const { return m_frontendRect; }
|
||||||
@ -124,6 +125,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
int m_iconSize;
|
int m_iconSize;
|
||||||
bool m_autoHide;
|
bool m_autoHide;
|
||||||
|
bool m_isMaxSize;
|
||||||
int m_screenRawHeight;
|
int m_screenRawHeight;
|
||||||
int m_screenRawWidth;
|
int m_screenRawWidth;
|
||||||
double m_opacity;
|
double m_opacity;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user