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

焦点偶尔有误 #1

Open
Jial08 opened this issue Aug 11, 2020 · 11 comments
Open

焦点偶尔有误 #1

Jial08 opened this issue Aug 11, 2020 · 11 comments

Comments

@Jial08
Copy link

Jial08 commented Aug 11, 2020

系统版本
manjaro20.0.3
idea版本
2020.2

您好,有时候在使用过程中会出现焦点定位有误的问题,在代码编辑区不能删除和回车,用方向键控制移动,焦点的移动实际不是在代码区,而是在项目左侧的文件列表区;还有markdown文件没有预览了,感谢作者的无私付出,现在使用大题没问题了,还望作者查看下这个问题的根源,再次感谢!

@prehonor
Copy link
Owner

prehonor commented Aug 17, 2020

不好意思,刚看到,我一般会关注csdn上提问,不太注意这里,markdown 没有预览是因为jetbrainsruntime 使用的jdk11,而它没有把JavaFX 编译进jdk, markdown模块恰恰需要javafx,我后续会写一个jdk11如何整合javafx模块的教程,因为这里有一些坑,另外,.在代码编辑区不能删除和回车,用方向键控制移动,焦点的移动实际不是在代码区,而是在项目左侧的文件列表区 ,具体是如何操作的,能否把复现的操作方式详细告诉我, 另外 ,你的fcitx 用的什么版本,以及用的什么输入法,我争取复现你说的问题,否则我不好调试

@Jial08
Copy link
Author

Jial08 commented Aug 18, 2020

您好:
fcitx version: 4.2.9.8
aur/fcitx-sogoupinyin 2.3.1.0112-1 (+100 0.04)
编译的 jb11_0_7-b944 分支,跟 idea 2020.2 保持一个版本;
其实这个问题在 idea 偶尔复现,就是偶尔切到其它项目再切回来就不能删除代码和回车了,用键盘移动光标,项目左侧文件列表区会显示选中并移动,在 DataGrip 大概率复现,连接一个数据库,选中一个表右键 Modify Table...,对具体某一列删除操作的时候没反应,如下图所示
Snipaste_2020-08-18_09-25-27

@prehonor
Copy link
Owner

您好:
fcitx version: 4.2.9.8
aur/fcitx-sogoupinyin 2.3.1.0112-1 (+100 0.04)
编译的 jb11_0_7-b944 分支,跟 idea 2020.2 保持一个版本;
其实这个问题在 idea 偶尔复现,就是偶尔切到其它项目再切回来就不能删除代码和回车了,用键盘移动光标,项目左侧文件列表区会显示选中并移动,在 DataGrip 大概率复现,连接一个数据库,选中一个表右键 Modify Table...,对具体某一列删除操作的时候没反应,如下图所示
Snipaste_2020-08-18_09-25-27

“切换项目” 这个操作我不太明白, datagrip 的 问题 我会 本地测试并作出改正。

@Jial08
Copy link
Author

Jial08 commented Aug 19, 2020

您好,就是 Alt+Tab 操作^_^

@prehonor
Copy link
Owner

prehonor commented Aug 23, 2020

您好,就是 Alt+Tab 操作^_^

如果,你着急用,可以改一处地方,在这个类/.../JetBrainsRuntime/src/java.desktop/unix/classes/sun/awt/X11/XInputMethod.java的 getOffXYRelateToFrame 方法:
// Point2D.Double.Double pd = (Point2D.Double)point.get(locations[0]); //注释掉这三行,并添加下面三行,然后重新编译
// caret_x = (int)pd.x;
// caret_y = (int)pd.y;

Point2D pd = (Point2D)point.get(locations[0]);
caret_x = (int)pd.getX();
caret_y = (int)pd.getY();

另外,
我用的kde桌面,你那个切换项目,我这是切换不同的应用程序,搞不出你那个操作,你可以通过终端启动idea,或datagrid,然后正常操作,如果出现bug,一般终端会用error报错,如果有,你可以发给我,向上面那个错误就有类型转化的报错

@Jial08
Copy link
Author

Jial08 commented Aug 24, 2020

我的是 xfce 桌面,可能我表述有误,我也是切换应用程序,按照您说的操作后再编译确实有效,如果再有问题,我会把具体日志贴出来的,感谢!

@moxi-born
Copy link

@Jial08 能否请教下你是如何编译的,类似libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev 这些依赖库我在manjaro下找不到

@Jial08
Copy link
Author

Jial08 commented Aug 27, 2020

@dejin0916 我是用的 docker 装载的 Ubuntu20.04 编译的,具体可以参考我的两篇文章
Docker 日常使用
manjaro xfce 环境配置

@moxi-born
Copy link

@Jial08 十分感谢

@ferstar
Copy link

ferstar commented Sep 17, 2021

我也有一样的问题,删除操作也是无效
image

PyCharm版本:
image

OS info

OS: Ubuntu 20.04.3 LTS x86_64
Host: 82DM Lenovo XiaoXinPro-13ARE 2020
Kernel: 5.14.3-xanmod1-edge
Uptime: 20 hours, 42 mins
Packages: 2618 (dpkg), 11 (brew)
Shell: zsh 5.8
Resolution: 2560x1600, 1920x1080
DE: GNOME
WM: Mutter
WM Theme: Yaru-dark
Theme: Yaru [GTK2/3]
Icons: Yaru [GTK2/3]
CPU: AMD Ryzen 7 4800U with Radeon Graphics (16) @ 1.800GHz
GPU: AMD ATI 03:00.0 Renoir
Memory: 7773MiB / 15359MiB

日志:

2021-09-17 10:58:46,023 [  27737]  ERROR - llij.ide.plugins.PluginManager - class java.awt.Point cannot be cast to class java.awt.geom.Point2D$Double (java.awt.Point and java.awt.geom.Point2D$Double are in module java.desktop of loader 'bootstrap') 
java.lang.ClassCastException: class java.awt.Point cannot be cast to class java.awt.geom.Point2D$Double (java.awt.Point and java.awt.geom.Point2D$Double are in module java.desktop of loader 'bootstrap')
	at java.desktop/sun.awt.X11.XInputMethod.getOffXYRelateToFrame(XInputMethod.java:216)
	at java.desktop/sun.awt.X11.XInputMethod.setXICFocus(XInputMethod.java:119)
	at java.desktop/sun.awt.X11InputMethod.activate(X11InputMethod.java:125)
	at java.desktop/sun.awt.im.InputContext.activateInputMethod(InputContext.java:470)
	at java.desktop/sun.awt.im.InputContext.focusGained(InputContext.java:354)
	at java.desktop/sun.awt.im.InputContext.dispatchEvent(InputContext.java:248)
	at java.desktop/sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:196)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4971)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2325)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1962)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1061)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:680)
	at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:42)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4910)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2325)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:887)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:443)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:442)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:494)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:699)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:435)
	at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1726)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1685)
	at com.intellij.database.view.ui.AbstractDbRefactoringDialog.finishAndShow(AbstractDbRefactoringDialog.java:150)
	at com.intellij.database.actions.DatabaseObjectRefactoring.showDialog(DatabaseObjectRefactoring.java:181)
	at com.intellij.database.actions.DatabaseObjectRefactoring$1.invoke(DatabaseObjectRefactoring.java:203)
	at com.intellij.refactoring.actions.BaseRefactoringAction.performRefactoringAction(BaseRefactoringAction.java:160)
	at com.intellij.refactoring.actions.BaseRefactoringAction.lambda$actionPerformed$0(BaseRefactoringAction.java:109)
	at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:152)
	at com.intellij.refactoring.actions.BaseRefactoringAction.actionPerformed(BaseRefactoringAction.java:109)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:240)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:261)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:240)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:248)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:236)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:67)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:240)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:90)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:90)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:515)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:545)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
	at java.desktop/java.awt.Component.processEvent(Component.java:6419)
	at java.desktop/java.awt.Container.processEvent(Container.java:2267)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2325)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4922)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4551)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4492)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2311)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:887)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:816)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:443)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:442)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:494)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2021-09-17 10:58:46,027 [  27741]  ERROR - llij.ide.plugins.PluginManager - PyCharm 2021.2.1  Build #PY-212.5080.64 
2021-09-17 10:58:46,027 [  27741]  ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.12-internal; VM: OpenJDK 64-Bit Server VM; Vendor: Oracle Corporation 
2021-09-17 10:58:46,027 [  27741]  ERROR - llij.ide.plugins.PluginManager - OS: Linux 
2021-09-17 10:58:46,028 [  27742]  ERROR - llij.ide.plugins.PluginManager - Last Action: ModifyObject 

@ghost
Copy link

ghost commented Dec 27, 2021

ping @prehonor 大神牛逼,这个patch是不是可以以 contributor的身份提交给JDK team呢?您如果能给JDK打这个补丁。相信全球用户都可以从中受益。

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

No branches or pull requests

4 participants