consulo / consulo

Platform repository of Consulo. Plugins implementation hold in their repositories
https://consulo.io
Apache License 2.0
673 stars 41 forks source link

Arrow Key Navigation Broken #444

Open TCROC opened 3 years ago

TCROC commented 3 years ago

image

Expected Behaviour: Navigate to "Cancel" with arrow keys and hit the "Enter / Return" key. This should cancel the close process.

Actual Behaviour: Consulo closes as if I clicked the "Exit" button.

About Info:

 Consulo:
  version = 2020.12
  build number = 2810
  build date = December 7, 2020
 Plugins:
  com.intellij = 2810
  com.intellij.git = 1238
  com.intellij.xml = 2659
  com.intellij.properties = 2763
  consulo.dotnet = 3288
  consulo.dotnet.mono = 3839
  consulo.csharp = 4836
  consulo.javascript = 3070
  consulo.java = 4359
  com.intellij.uiDesigner = 5398
  consulo.nunit = 4368
  consulo.platform.desktop = 2810
  mobi.hsz.idea.gitignore = 393
  org.jetbrains.idea.maven = 5325
  org.jetbrains.plugins.yaml = 2129
  consulo.devkit = 8581
  consulo.unity3d = 7522
 JVM:
  vendor = JetBrains s.r.o
  version = 11.0.4
  runtimeVersion = 11.0.4+10-b304.77
  locale = en_US
 JVM Env:
  __idea.mac.env.lock = unlocked
  awt.toolkit = sun.awt.X11.XToolkit
  java.specification.version = 11
  sun.cpu.isalist = 
  sun.jnu.encoding = UTF-8
  log4j.shutdownHookEnabled = false
  sun.arch.data.model = 64
  consulo.properties.file = /home/t-croc/Applications/Consulo/consulo.properties
  sun.font.fontmanager = sun.awt.X11FontManager
  idea.properties.file = /home/t-croc/Applications/Consulo/consulo.properties
  java.vendor.url = https://www.jetbrains.com/
  consulo.home.path = /home/t-croc/Applications/Consulo/platform/build2810
  sun.java2d.uiScale.enabled = true
  log4j2.messageFactory = org.apache.logging.log4j.message.SimpleMessageFactory
  sun.io.useCanonCaches = false
  sun.boot.library.path = /home/t-croc/Applications/Consulo/platform/build2810/jre/lib
  jna.tmpdir = /home/t-croc/.consulo_settings/system/tmp
  sun.java.command = consulo.desktop.bootstrap/consulo.desktop.boot.main.Main
  jdk.debug = release
  sun.awt.exception.handler = com.intellij.openapi.application.impl.AWTExceptionHandler
  java.specification.vendor = Oracle Corporation
  jdk.module.path = /home/t-croc/Applications/Consulo/platform/build2810/boot
  java.version.date = 2019-07-16
  java.home = /home/t-croc/Applications/Consulo/platform/build2810/jre
  file.separator = /
  java.vm.compressedOopsMode = 32-bit
  line.separator = \n
  java.specification.name = Java Platform API Specification
  java.vm.specification.vendor = Oracle Corporation
  idea.home.path = /home/t-croc/Applications/Consulo/platform/build2810
  jdk.module.main.class = consulo.desktop.boot.main.Main
  awt.useSystemAAFontSettings = lcd
  sun.management.compiler = HotSpot 64-Bit Tiered Compilers
  jb.restart.code = 88
  java.runtime.version = 11.0.4+10-b304.77
  user.name = t-croc
  javax.swing.rebaseCssSizeMap = true
  sun.java2d.pmoffscreen = false
  sun.awt.noerasebackground = true
  file.encoding = UTF-8
  sun.java2d.noddraw = true
  jnidispatch.path = /home/t-croc/.consulo_settings/system/tmp/jna23612650709688240.tmp
  idea.popup.weight = heavy
  jna.loaded = true
  java.io.tmpdir = /tmp
  java.version = 11.0.4
  java.vm.specification.name = Java Virtual Machine Specification
  java.awt.printerjob = sun.print.PSPrinterJob
  sun.os.patch.level = unknown
  consulo.vm.options.file = /home/t-croc/Applications/Consulo/consulo64.vmoptions
  java.library.path = /home/t-croc/Applications/Consulo/platform/build2810/bin::/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
  java.vendor = JetBrains s.r.o
  io.netty.processId = 16812
  sun.io.unicode.encoding = UnicodeLittle
  java.rmi.server.disableHttp = true
  io.netty.machineId = 28:f0:76:ff:fe:16:65:0e
  java.util.concurrent.ForkJoinPool.common.parallelism = 8
  sun.desktop = gnome
  java.class.path = 
  sun.awt.enableExtraMouseButtons = true
  java.vm.vendor = JetBrains s.r.o
  consulo.module.path.boot = true
  user.timezone = America/New_York
  jb.vmOptionsFile = /home/t-croc/Applications/Consulo/consulo64.vmoptions
  idea.no.launcher = false
  swing.bufferPerWindow = false
  os.name = Linux
  java.vm.specification.version = 11
  sun.java.launcher = SUN_STANDARD
  user.country = US
  sun.cpu.endian = little
  user.home = /home/t-croc
  user.language = en
  idea.cycle.buffer.size = 1024
  java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
  jdk.module.main = consulo.desktop.bootstrap
  idea.max.intellisense.filesize = 2500
  sun.java2d.d3d = false
  java.net.preferIPv4Stack = true
  path.separator = :
  idea.use.default.antialiasing.in.editor = false
  os.version = 5.4.0-56-generic
  jna.nosys = true
  java.runtime.name = OpenJDK Runtime Environment
  sun.nio.ch.bugLevel = 
  java.vm.name = OpenJDK 64-Bit Server VM
  jna.platform.library.path = /usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/lib64:/usr/lib:/lib:/usr/lib/i386-linux-gnu:/lib/i386-linux-gnu:/lib32:/usr/lib32
  java.vendor.url.bug = https://youtrack.jetbrains.com
  java.util.concurrent.ForkJoinPool.common.threadFactory = consulo.bootstrap.concurrent.IdeaForkJoinWorkerThreadFactory
  user.dir = /home/t-croc
  os.arch = amd64
  io.netty.serviceThreadPrefix = Netty 
  idea.dynamic.classpath = false
  java.vm.info = mixed mode
  java.vm.version = 11.0.4+10-b304.77
  java.rmi.server.hostname = localhost
  sun.awt.datatransfer.timeout = 2000
  java.class.version = 55.0
 OS:
  name = Linux
  version = 5.4.0-56-generic
  arch = amd64
 Env:
  PATH = /usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/t-croc/.dotnet/tools
  XAUTHORITY = /run/user/1000/gdm/Xauthority
  XMODIFIERS = @im=ibus
  XDG_DATA_DIRS = /usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
  GDMSESSION = ubuntu
  MANDATORY_PATH = /usr/share/gconf/ubuntu.mandatory.path
  TEXTDOMAINDIR = /usr/share/locale/
  GTK_IM_MODULE = ibus
  DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus
  DEFAULTS_PATH = /usr/share/gconf/ubuntu.default.path
  XDG_CURRENT_DESKTOP = ubuntu:GNOME
  SSH_AGENT_PID = 1573
  LD_LIBRARY_PATH = /home/t-croc/Applications/Consulo/platform/build2810/bin:
  QT4_IM_MODULE = xim
  SESSION_MANAGER = local/tcroc-Z390-UD:@/tmp/.ICE-unix/1477,unix/tcroc-Z390-UD:/tmp/.ICE-unix/1477
  USERNAME = t-croc
  LOGNAME = t-croc
  PWD = /home/t-croc
  IM_CONFIG_PHASE = 2
  GJS_DEBUG_TOPICS = JS ERROR;JS LOG
  SHELL = /bin/bash
  GIO_LAUNCHED_DESKTOP_FILE = /home/t-croc/.local/share/applications/alacarte-made-3.desktop
  GNOME_DESKTOP_SESSION_ID = this-is-deprecated
  GTK_MODULES = gail:atk-bridge
  CLUTTER_IM_MODULE = xim
  TEXTDOMAIN = im-config
  ALL_JVM_ARGS = --add-opens=java.desktop/sun.awt=consulo.container.impl --add-opens=java.desktop/sun.awt.image=consulo.container.impl --add-opens=java.desktop/sun.java2d=consulo.container.impl --add-opens=java.desktop/sun.font=consulo.container.impl --add-opens=java.desktop/java.awt=consulo.container.impl --add-opens=java.desktop/javax.swing=consulo.container.impl --add-opens=java.desktop/javax.swing.plaf.basic=consulo.container.impl --add-opens=java.base/java.lang=consulo.container.impl --add-opens=java.desktop/javax.swing.text.html=consulo.container.impl --add-opens=java.desktop/java.awt.peer=consulo.container.impl  -Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=240m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+HeapDumpOnOutOfMemoryError -Dawt.useSystemAAFontSettings=lcd  -Djb.vmOptionsFile="/home/t-croc/Applications/Consulo/consulo64.vmoptions" -Dconsulo.vm.options.file="/home/t-croc/Applications/Consulo/consulo64.vmoptions" -p "/home/t-croc/Applications/Consulo/platform/build2810/boot" -Dconsulo.module.path.boot=true -Dconsulo.home.path="/home/t-croc/Applications/Consulo/platform/build2810" -Didea.home.path="/home/t-croc/Applications/Consulo/platform/build2810" -Didea.properties.file="/home/t-croc/Applications/Consulo/consulo.properties" -Dconsulo.properties.file="/home/t-croc/Applications/Consulo/consulo.properties"   
  XDG_SESSION_DESKTOP = ubuntu
  CONSULO_HOME = /home/t-croc/Applications/Consulo/platform/build2810
  SHLVL = 0
  QT_IM_MODULE = xim
  XDG_CONFIG_DIRS = /etc/xdg/xdg-ubuntu:/etc/xdg
  LANG = en_US.UTF-8
  XDG_SESSION_ID = 3
  XDG_SESSION_TYPE = x11
  JDK = /home/t-croc/Applications/Consulo/platform/build2810/jre
  DISPLAY = :1
  ROOT_DIR = /home/t-croc/Applications/Consulo
  MAIN_CLASS_NAME = -m consulo.desktop.bootstrap/consulo.desktop.boot.main.Main
  GPG_AGENT_INFO = /run/user/1000/gnupg/S.gpg-agent:0:1
  DESKTOP_SESSION = ubuntu
  USER = t-croc
  XDG_MENU_PREFIX = gnome-
  GIO_LAUNCHED_DESKTOP_FILE_PID = 8096
  QT_ACCESSIBILITY = 1
  WINDOWPATH = 2
  GJS_DEBUG_OUTPUT = stderr
  SSH_AUTH_SOCK = /run/user/1000/keyring/ssh
  XDG_SEAT = seat0
  GNOME_SHELL_SESSION_MODE = ubuntu
  XDG_VTNR = 2
  XDG_RUNTIME_DIR = /run/user/1000
  HOME = /home/t-croc
TCROC commented 3 years ago

This occurs for me when using arrow keys to navigate any popup windows

TCROC commented 3 years ago

This seems like a relatively low priority issue. Can I try to fix it? I don't have much time to work on consulo (mainly just an hour or 2 before bed. Otherwise I'm developing for work or for our game), but I'd like to start contributing when I can. This might allow me to start getting an understanding of how the consulo works. If not this issue, is there a different small / low priority issue you would rather me give a try?

TCROC commented 3 years ago

I'm going through the code and realizing this may not be a bug. It may be a design choice. I see that "ENTER" is used as the key that invokes the "default action" in different places throughout the code. And that the "Spacebar" can be used to select individual items. However, this did confused me. I suggest that "Enter" and "Space" both should select the currently highlighted option. And "Ctrl + Enter" should be used to select the "default" option. What do you think?

VISTALL commented 3 years ago

Strange thing. Arrows must be controlled focus (blue border). And Enter will press focused button. At initial show of dialog, default button focused by default

VISTALL commented 3 years ago

On Windows. On other OSes, can be different logic (if understand correct)

TCROC commented 3 years ago

Strange thing. Arrows must be controlled focus (blue border). And Enter will press focused button. At initial show of dialog, default button focused by default

Ok cool. I'll add in that behavior :)

On Windows. On other OSes, can be different logic (if understand correct)

Is there a standard somewhere I can refer to? I can add that logic in as well. So far in my personal experience, I've found Windows and LInux to be "Ctrl + Enter" and MacOS to be either "Ctrl + Enter" or "Command + Enter".

VISTALL commented 3 years ago

Ok cool. I'll add in that behavior :)

It must exists already. Focus at ubuntu not controlled? I will test at weekends

TCROC commented 3 years ago

Nope. Focus + Space selects the focused item. Focus + Enter selects the default item.

TCROC commented 3 years ago

It must exists already. Focus at ubuntu not controlled? I will test at weekends

If you are going to test the issue this weekend, I'll let you work on this issue :)