优化显示后的键盘焦点问题

This commit is contained in:
liufei
2022-04-12 16:57:29 +08:00
parent f763ba7565
commit dcb2f24f2f
2 changed files with 20 additions and 11 deletions

View File

@@ -17,6 +17,7 @@ using static GeekDesk.Util.ShowWindowFollowMouse;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using NPinyin; using NPinyin;
using GeekDesk.ViewModel.Temp; using GeekDesk.ViewModel.Temp;
using System.Threading;
namespace GeekDesk namespace GeekDesk
{ {
@@ -97,9 +98,9 @@ namespace GeekDesk
public void HidedSearchBox() public void HidedSearchBox()
{ {
RunTimeStatus.SEARCH_BOX_SHOW = false; RunTimeStatus.SEARCH_BOX_SHOW = false;
SearchBox.Visibility = Visibility.Collapsed;
SearchIconList.IconList.Clear(); SearchIconList.IconList.Clear();
RightCard.VisibilitySearchCard(Visibility.Collapsed); RightCard.VisibilitySearchCard(Visibility.Collapsed);
SearchBox.Visibility = Visibility.Collapsed;
SearchBox.Text = ""; SearchBox.Text = "";
} }
@@ -120,6 +121,7 @@ namespace GeekDesk
this.Height = appData.AppConfig.WindowHeight; this.Height = appData.AppConfig.WindowHeight;
} }
/// <summary> /// <summary>
/// 窗口加载完毕 执行方法 /// 窗口加载完毕 执行方法
/// </summary> /// </summary>
@@ -338,7 +340,7 @@ namespace GeekDesk
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void ShowApp(object sender, RoutedEventArgs e) public void ShowApp(object sender, RoutedEventArgs e)
{ {
ShowApp(); ShowApp();
} }
@@ -350,20 +352,27 @@ namespace GeekDesk
// return; // return;
//} //}
//修改贴边隐藏状态为未隐藏 //修改贴边隐藏状态为未隐藏
mainWindow.Activate();
MarginHide.IS_HIDE = false; MarginHide.IS_HIDE = false;
if (appData.AppConfig.FollowMouse) if (appData.AppConfig.FollowMouse)
{ {
ShowWindowFollowMouse.Show(mainWindow, MousePosition.CENTER, 0, 0, false); ShowWindowFollowMouse.Show(mainWindow, MousePosition.CENTER, 0, 0, false);
} }
FadeStoryBoard(1, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Visible); FadeStoryBoard(1, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Visible);
mainWindow.Focus(); Keyboard.Focus(mainWindow.EmptyTextBox);
} }
public static void HideApp() public static void HideApp()
{ {
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed); if (RunTimeStatus.SEARCH_BOX_SHOW) mainWindow.HidedSearchBox();
new Thread(() =>
{
Thread.Sleep(100);
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
FadeStoryBoard(0, (int)CommonEnum.WINDOW_ANIMATION_TIME, Visibility.Collapsed);
}));
}).Start();
} }
/// <summary> /// <summary>

View File

@@ -26,13 +26,13 @@ namespace GeekDesk.MyThread
dispatcher = DispatcherBuild.Build(); dispatcher = DispatcherBuild.Build();
dispatcher.Invoke((Action)(() => dispatcher.Invoke((Action)(() =>
{ {
m_GlobalHook.MouseDownExt += M_GlobalHook_MouseDownExt; m_GlobalHook.MouseUpExt += M_GlobalHook_MouseUpExt;
})); }));
} }
public static void Dispose() public static void Dispose()
{ {
m_GlobalHook.MouseDownExt -= M_GlobalHook_MouseDownExt; m_GlobalHook.MouseUpExt -= M_GlobalHook_MouseUpExt;
m_GlobalHook.Dispose(); m_GlobalHook.Dispose();
dispatcher.InvokeShutdown(); dispatcher.InvokeShutdown();
} }
@@ -42,14 +42,14 @@ namespace GeekDesk.MyThread
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private static void M_GlobalHook_MouseDownExt(object sender, System.Windows.Forms.MouseEventArgs e) private static void M_GlobalHook_MouseUpExt(object sender, System.Windows.Forms.MouseEventArgs e)
{ {
if (appConfig.MouseMiddleShow && e.Button == System.Windows.Forms.MouseButtons.Middle) if (appConfig.MouseMiddleShow && e.Button == System.Windows.Forms.MouseButtons.Middle)
{ {
if (MotionControl.hotkeyFinished) if (MotionControl.hotkeyFinished)
{ {
MainWindow.mainWindow.Dispatcher.Invoke((Action)(() => App.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() =>
{ {
if (MainWindow.mainWindow.Visibility == Visibility.Collapsed || MainWindow.mainWindow.Opacity == 0) if (MainWindow.mainWindow.Visibility == Visibility.Collapsed || MainWindow.mainWindow.Opacity == 0)
{ {
MainWindow.ShowApp(); MainWindow.ShowApp();