@@ -181,6 +181,11 @@ QRect DockPanel::geometry()
181181}
182182
183183QRect DockPanel::frontendWindowRect ()
184+ {
185+ return frontendWindowRect (0 , 0 );
186+ }
187+
188+ QRect DockPanel::frontendWindowRect (int transformOffsetX, int transformOffsetY)
184189{
185190 if (!window ()) return QRect ();
186191
@@ -192,17 +197,19 @@ QRect DockPanel::frontendWindowRect()
192197 switch (position ()) {
193198 case Top:
194199 xOffset = (screenGeometry.width () - geometry.width ()) / 2 ;
200+ yOffset = transformOffsetY;
195201 break ;
196202 case Bottom:
197203 xOffset = (screenGeometry.width () - geometry.width ()) / 2 ;
198- yOffset = screenGeometry.height () - geometry.height ();
204+ yOffset = screenGeometry.height () - geometry.height () + transformOffsetY ;
199205 break ;
200206 case Right:
201- xOffset = screenGeometry.width () - geometry.width ();
207+ xOffset = screenGeometry.width () - geometry.width () + transformOffsetX ;
202208 yOffset = (screenGeometry.height () - geometry.height ()) / 2 ;
203209 break ;
204210 case Left:
205- yOffset = screenGeometry.height () - geometry.height ();
211+ xOffset = transformOffsetX;
212+ yOffset = (screenGeometry.height () - geometry.height ()) / 2 ;
206213 break ;
207214 }
208215
@@ -337,6 +344,11 @@ void DockPanel::openDockSettings() const
337344 .call ();
338345}
339346
347+ void DockPanel::notifyDockPositionChanged (int offsetX, int offsetY)
348+ {
349+ Q_EMIT frontendWindowRectChanged (frontendWindowRect (offsetX, offsetY));
350+ }
351+
340352void DockPanel::launcherVisibleChanged (bool visible)
341353{
342354 if (visible == m_launcherShown) return ;
0 commit comments