@@ -246,8 +246,11 @@ private bool CopyText(string text)
246
246
PopupWindowUtils . HidePopups ( FirstPopupWindow ) ;
247
247
}
248
248
249
- UpdatePosition ( ) ;
250
- BringToFront ( ) ;
249
+ if ( notMinimized )
250
+ {
251
+ UpdatePosition ( ) ;
252
+ BringToFront ( ) ;
253
+ }
251
254
252
255
if ( ! configManager . StopIncreasingTimeAndCharStatsWhenMinimized || notMinimized )
253
256
{
@@ -1373,8 +1376,7 @@ private void TitleBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
1373
1376
}
1374
1377
1375
1378
ConfigManager configManager = ConfigManager . Instance ;
1376
- if ( e . ClickCount is 2
1377
- && configManager is { MainWindowDynamicWidth : false , MainWindowDynamicHeight : true } )
1379
+ if ( e . ClickCount is 2 )
1378
1380
{
1379
1381
DpiScale dpi = WindowsUtils . Dpi ;
1380
1382
double xPosition ;
@@ -1385,8 +1387,6 @@ private void TitleBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
1385
1387
if ( ! MagpieUtils . IsMagpieScaling )
1386
1388
{
1387
1389
Rectangle workingArea = WindowsUtils . ActiveScreen . WorkingArea ;
1388
- xPosition = workingArea . X ;
1389
-
1390
1390
if ( configManager . PositionPopupAboveCursor )
1391
1391
{
1392
1392
yPosition = workingArea . Bottom - maxDynamicHeight ;
@@ -1400,12 +1400,24 @@ private void TitleBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
1400
1400
yPosition = workingArea . Y ;
1401
1401
}
1402
1402
1403
- width = workingArea . Width / dpi . DpiScaleX ;
1403
+
1404
+ double dpiAwareWidth = workingArea . Width / dpi . DpiScaleX ;
1405
+ width = ! configManager . MainWindowDynamicWidth || Width > dpiAwareWidth
1406
+ ? dpiAwareWidth
1407
+ : Width ;
1408
+
1409
+ if ( configManager . MainWindowFixedRightPosition is 0 )
1410
+ {
1411
+ double dpiUnawareWidth = width * dpi . DpiScaleX ;
1412
+ xPosition = ( ( workingArea . Right + workingArea . Left + dpiUnawareWidth ) / 2 ) - dpiUnawareWidth ;
1413
+ }
1414
+ else
1415
+ {
1416
+ xPosition = workingArea . X ;
1417
+ }
1404
1418
}
1405
1419
else
1406
1420
{
1407
- xPosition = MagpieUtils . MagpieWindowLeftEdgePosition ;
1408
-
1409
1421
if ( configManager . PositionPopupAboveCursor
1410
1422
|| configManager is { RepositionMainWindowOnTextChangeByBottomPosition : true , MainWindowDynamicHeight : true , MainWindowFixedBottomPosition : - 2 or - 1 } )
1411
1423
{
@@ -1420,7 +1432,19 @@ private void TitleBar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
1420
1432
yPosition = MagpieUtils . MagpieWindowTopEdgePosition ;
1421
1433
}
1422
1434
1423
- width = MagpieUtils . DpiAwareMagpieWindowWidth ;
1435
+ width = ! configManager . MainWindowDynamicWidth || Width > MagpieUtils . DpiAwareMagpieWindowWidth
1436
+ ? MagpieUtils . DpiAwareMagpieWindowWidth
1437
+ : Width ;
1438
+
1439
+ if ( configManager . MainWindowFixedRightPosition is 0 )
1440
+ {
1441
+ double dpiUnawareWidth = width * dpi . DpiScaleX ;
1442
+ xPosition = ( ( MagpieUtils . MagpieWindowRightEdgePosition + MagpieUtils . MagpieWindowLeftEdgePosition + dpiUnawareWidth ) / 2 ) - dpiUnawareWidth ;
1443
+ }
1444
+ else
1445
+ {
1446
+ xPosition = MagpieUtils . MagpieWindowLeftEdgePosition ;
1447
+ }
1424
1448
}
1425
1449
1426
1450
WinApi . MoveWindowToPosition ( WindowHandle , xPosition , yPosition ) ;
@@ -1647,6 +1671,8 @@ private void Window_StateChanged(object sender, EventArgs e)
1647
1671
SetSizeToContent ( configManager . MainWindowDynamicWidth , configManager . MainWindowDynamicHeight , configManager . MainWindowMaxDynamicWidth , configManager . MainWindowMaxDynamicHeight , configManager . MainWindowMinDynamicWidth , configManager . MainWindowMinDynamicHeight , configManager . MainWindowWidth , configManager . MainWindowHeight ) ;
1648
1672
}
1649
1673
1674
+ UpdatePosition ( ) ;
1675
+
1650
1676
if ( configManager . AlwaysOnTop )
1651
1677
{
1652
1678
WinApi . BringToFront ( WindowHandle ) ;
0 commit comments