28
28
using CommunityToolkit . Mvvm . DependencyInjection ;
29
29
using System . Windows . Threading ;
30
30
using System . Windows . Interop ;
31
- using System . Runtime . InteropServices ;
32
31
33
32
namespace Flow . Launcher . ViewModel
34
33
{
@@ -1389,13 +1388,12 @@ public void Show()
1389
1388
{
1390
1389
IntPtr hWnd = new WindowInteropHelper ( mainWindow ) . Handle ;
1391
1390
1392
- // 📌 DWM Cloak 해제 (창을 정상적으로 표시)
1393
- int cloak = 0 ;
1394
- DwmSetWindowAttribute ( hWnd , 13 , ref cloak , sizeof ( int ) ) ;
1391
+ // 📌 창을 보이도록 설정 (Cloak 사용 안 함)
1392
+ //ShowWindow(hWnd, SW_SHOW);
1395
1393
1396
1394
// 📌 UI 요소 복원
1397
1395
mainWindow . ClockPanel . Visibility = Visibility . Visible ;
1398
- mainWindow . ClockPanel . Opacity = 1 ;
1396
+ // mainWindow.SearchIcon.Visibility = Visibility.Visible ;
1399
1397
SearchIconVisibility = Visibility . Visible ;
1400
1398
}
1401
1399
@@ -1421,24 +1419,21 @@ public async void Hide()
1421
1419
1422
1420
if ( Application . Current . MainWindow is MainWindow mainWindow )
1423
1421
{
1424
- IntPtr hWnd = new WindowInteropHelper ( mainWindow ) . Handle ;
1425
-
1426
- // 📌 UI 요소 숨기기
1422
+ // 📌 아이콘과 시계 Opacity를 0으로 설정하고 Visibility.Hidden 적용
1427
1423
Application . Current . Dispatcher . Invoke ( ( ) =>
1428
1424
{
1429
1425
mainWindow . ClockPanel . Opacity = 0 ;
1430
1426
mainWindow . SearchIcon . Opacity = 0 ;
1431
1427
mainWindow . ClockPanel . Visibility = Visibility . Hidden ;
1428
+ //mainWindow.SearchIcon.Visibility = Visibility.Hidden;
1432
1429
SearchIconVisibility = Visibility . Hidden ;
1433
1430
1434
1431
// 강제 UI 업데이트
1435
1432
mainWindow . ClockPanel . UpdateLayout ( ) ;
1436
1433
mainWindow . SearchIcon . UpdateLayout ( ) ;
1437
1434
} , DispatcherPriority . Render ) ;
1438
1435
1439
- // 📌 DWM Cloak 적용 (창을 완전히 숨김)
1440
- int cloak = 1 ;
1441
- DwmSetWindowAttribute ( hWnd , 13 , ref cloak , sizeof ( int ) ) ;
1436
+ //await Task.Delay(10); // UI 반영 대기
1442
1437
}
1443
1438
1444
1439
// 📌 텍스트 초기화 즉시 적용 + UI 강제 업데이트
@@ -1471,16 +1466,20 @@ public async void Hide()
1471
1466
break ;
1472
1467
}
1473
1468
1469
+ //if (Application.Current.MainWindow is MainWindow mainWindow2)
1470
+ //{
1471
+ // IntPtr hWnd = new WindowInteropHelper(mainWindow2).Handle;
1472
+
1473
+ // // 📌 Cloak을 사용하지 않고 일반적인 `ShowWindow(SW_HIDE)` 사용 → Mica/Acrylic 유지됨
1474
+ // ShowWindow(hWnd, SW_HIDE);
1475
+ //}
1476
+
1474
1477
// WPF 속성 업데이트
1475
1478
MainWindowVisibilityStatus = false ;
1476
1479
MainWindowVisibility = Visibility . Collapsed ;
1477
1480
VisibilityChanged ? . Invoke ( this , new VisibilityChangedEventArgs { IsVisible = false } ) ;
1478
1481
}
1479
1482
1480
- // 📌 DWM API 추가 (P/Invoke)
1481
- [ DllImport ( "dwmapi.dll" ) ]
1482
- private static extern int DwmSetWindowAttribute ( IntPtr hwnd , int dwAttribute , ref int pvAttribute , int cbAttribute ) ;
1483
-
1484
1483
/// <summary>
1485
1484
/// Checks if Flow Launcher should ignore any hotkeys
1486
1485
/// </summary>
0 commit comments