Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add double click modifier as shortcut #277

Merged
merged 13 commits into from
Dec 30, 2023
Merged

Conversation

AkaShark
Copy link
Collaborator

@AkaShark AkaShark commented Dec 26, 2023

closed #220 #154

@AkaShark
Copy link
Collaborator Author

wait for testing

@AkaShark
Copy link
Collaborator Author

wait for testing

finished test
double-click the modifier key as a shortcut, such as double-click cmd/option/control/shift
@tisfeng

@AkaShark AkaShark changed the title [WIP]feat: add double click modifier as shortcut feat: add double click modifier as shortcut Dec 27, 2023
@AkaShark
Copy link
Collaborator Author

closed #154

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

没想到你直接去改源码了,这还真是一种方式,很棒!

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

发现两个小问题:

  • 有警告没处理
  • 这种特殊双击快捷键触发查询窗口时,需要隐藏查询图标
image image

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

双击快捷键有点复杂,别的应用触发不好判断,因此你只需要处理一下 Easydict 自身的触发就好。

这种特殊双击快捷键触发查询窗口时,需要隐藏查询图标

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

快捷键显示查询窗口,好像有点问题,有时候不能正常触发,这个我稍后修复一下。

@AkaShark
Copy link
Collaborator Author

没想到你直接去改源码了,这还真是一种方式,很棒!

属于曲线救国了😂,等后续我们有规划迁移Swift的话可以再去考虑怎么维护,毕竟MAShortcut已经不维护了

@AkaShark
Copy link
Collaborator Author

双击快捷键有点复杂,别的应用触发不好判断,因此你只需要处理一下 Easydict 自身的触发就好。

这种特殊双击快捷键触发查询窗口时,需要隐藏查询图标

这个别的应用出发不好判断是指我正常操作出发双击么?我在代码里面判断是连续点击0.3s内作为一个完成的操作。

@AkaShark
Copy link
Collaborator Author

快捷键显示查询窗口,好像有点问题,有时候不能正常触发,这个我稍后修复一下。

这个也没太理解,是啥场景下呀

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

快捷键显示查询窗口,好像有点问题,有时候不能正常触发,这个我稍后修复一下。

这个也没太理解,是啥场景下呀

这个是之前遗留的一个问题,例如默认 opt+a 显示查询窗口,再按一次会关闭窗口,再次 opt+a 却没有反应,这个有问题。

@AkaShark
Copy link
Collaborator Author

快捷键显示查询窗口,好像有点问题,有时候不能正常触发,这个我稍后修复一下。

这个也没太理解,是啥场景下呀

这个是之前遗留的一个问题,例如默认 Cmd+a 显示查询窗口,再按一次会关闭窗口,再次 Cmd+a 却没有反应,这个有问题。

soga 不会是老哥你的键盘有问题吧🐶,我测试的时候竟然没触发过,隐藏悬浮icon的我晚点或者明天的

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

不是,这个问题触发条件比较怪,需要打开显示主窗口。

image

@tisfeng
Copy link
Owner

tisfeng commented Dec 27, 2023

因为发现显示主窗口会导致一些问题,所以目前默认隐藏了主窗口。

主要的问题是,如果显示主窗口,在唤起其他查询窗口时,也会将主窗口显示在前台,感觉会很怪。

我对窗口处理不是很了解,不知道如何解决,就干脆隐藏了。如果你熟悉这块,可以帮忙看一下。

@AkaShark
Copy link
Collaborator Author

AkaShark commented Dec 27, 2023

我也是刚接触MacOS开发,也不太熟,但是我理解啦你说的”快捷键显示查询窗口,好像有点问题,有时候不能正常触发“,但是对于#277 (comment) 这个comment不是很懂,我测试了下在不勾选主窗口选项后确实存在不能正常出发的情况,这个明天我在研究研究。

Easydict/Feature/Shortcut/EZShortcut.m Outdated Show resolved Hide resolved
@tisfeng
Copy link
Owner

tisfeng commented Dec 29, 2023

你好,我邀请你加入一起开发了。

image

@AkaShark
Copy link
Collaborator Author

okay

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

这个还有问题吗?

@AkaShark
Copy link
Collaborator Author

不是,这个问题触发条件比较怪,需要打开显示主窗口。

image

不勾选这个主窗口会有快捷键第二次不生效的情况,这个我今天修复下,预计今晚上可以搞定

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

ok

@AkaShark
Copy link
Collaborator Author

我发现默认开启
CleanShot 2023-12-30 at 18 00 33@2x
主窗口后(不关闭),用户触发快捷键第一次表现是符合预期的,第二次触发快捷键没有反应,这是由于
CleanShot 2023-12-30 at 17 59 55@2x
在主窗口没有关闭的情况下,第二次触发快捷键依然是会进这个if导致第二次触发快捷键没反应,这时关闭主窗口后表现正常,但是我没太看明白这是为啥么。。

@AkaShark
Copy link
Collaborator Author

我发现默认开启 CleanShot 2023-12-30 at 18 00 33@2x 主窗口后(不关闭),用户触发快捷键第一次表现是符合预期的,第二次触发快捷键没有反应,这是由于 CleanShot 2023-12-30 at 17 59 55@2x 在主窗口没有关闭的情况下,第二次触发快捷键依然是会进这个if导致第二次触发快捷键没反应,这时关闭主窗口后表现正常,但是我没太看明白这是为啥么。。

看起来好像是窗口的问题,解决方案倒是比较简单,可以直接在closeFloatingWindow中关闭掉主窗口

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

不不,我之前简单看了一下,好像是开启显示主窗口后,显示并关闭悬浮窗口后,floatingWindowType 这个值计算不正确导致。

如果你不方便解决,可以先放一下,这问题和这个 PR 关系也不大,后面我来看也行。

@AkaShark
Copy link
Collaborator Author

不不,我之前简单看了一下,好像是开启显示主窗口后,显示并关闭悬浮窗口后,floatingWindowType 这个值计算不正确导致。

如果你不方便解决,可以先放一下,这问题和这个 PR 关系也不大,后面我来看也行。

okay 我又debug了下发现如果把主窗口放在另一个屏幕上,使用快捷键关不掉呼出来的窗口(比如mini)。。。我先直接在触发除主窗口之外的窗口关闭掉主窗口
CleanShot 2023-12-30 at 21 40 52@2x
这样看起来能暂时的解决这个问题

@AkaShark
Copy link
Collaborator Author

感觉这个问题是由于
CleanShot 2023-12-30 at 21 43 21@2x
这个代理回调多次,然后关闭窗口后再获取floatingWindowType发现这个值被改掉了
CleanShot 2023-12-30 at 21 34 04@2x

@AkaShark
Copy link
Collaborator Author

可以回头再开个分支专门再一起看看这个问题的

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

不不,这里不要随便关闭 main 窗口,这是没道理的,我之前某些地方也只是将这个窗口移到图层下面。

你这里可以不用处理这个问题,后面在专门弄。

@AkaShark
Copy link
Collaborator Author

okay 我给恢复了,是的看到之前都是直接back了,不过想请教下感觉关闭了main也是OK的呀,用户体验上呼出了其他窗口后关闭main也是合理的呀

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

okay 我给恢复了,是的看到之前都是直接back了,不过想请教下感觉关闭了main也是OK的呀,用户体验上呼出了其他窗口后关闭main也是合理的呀

因为窗口类型不同, main 窗口不同于悬浮窗口,悬浮窗口设计时就是一种轻量级窗口,在未使用时需要关闭,而 main 窗口和电脑上其他应用的窗口类型一样,除非用户手动关闭,否则我们不应该莫名关掉它。

@AkaShark
Copy link
Collaborator Author

okk 理解了,那这个PR可以辛苦再帮忙Review下,我这边没啥问题啦

@AkaShark AkaShark requested a review from tisfeng December 30, 2023 14:07
@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

因为发现显示主窗口会导致一些问题,所以目前默认隐藏了主窗口。

主要的问题是,如果显示主窗口,在唤起其他查询窗口时,也会将主窗口显示在前台,感觉会很怪。

我对窗口处理不是很了解,不知道如何解决,就干脆隐藏了。如果你熟悉这块,可以帮忙看一下。

我在某些地方将 main 窗口 orderBack,是因为发现在在唤起其他查询窗口时,也会将主窗口显示在前台,这不是我期望的,但我目前不知道如何处理,只能临时将它 orderBack 了。

@tisfeng
Copy link
Owner

tisfeng commented Dec 30, 2023

这个 PR 没问题,我先合并了。

@tisfeng tisfeng merged commit 437777b into tisfeng:dev Dec 30, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants