
Kubuntu 14.04 (64 ビット)、KDE 4.13.3、Java Oracle 1.7.0_80-b15
この問題は 12.04 で初めて発生し、現在も続いています。Java のバージョンは動作に影響しません。つまり、1.6 から 1.8 でも同じことが起こります。
再現:
- Firefox/Chrome/Kate などの「通常の」プログラムを 2 ~ 3 個起動します。
- Java Swing アプリケーションを起動します (Intellij Idea / jvisualvm / Visual paradigm / その他)
- 「デスクトップを表示」をクリックします
- 「通常の」プログラム(Firefox)を起動すると、全画面で表示されます
問題: キーボード フォーカスはまだ Swing アプリにあり、入力しようとすると入力がそれに送信されます。
Intelij ファミリーの IDE を使用している場合、これは非常に面倒です。他のアプリ用に意図された入力がソース ファイル内に残ってしまうことがよくあるからです。
KDE の「フォーカス盗難防止」のさまざまな設定 (システム設定 -> ウィンドウの動作) をすでに試しましたが、効果はありませんでした。
Swing を使用していない Java アプリ (Eclipse など) ではこの問題は発生しません。Swing アプリのみに発生します。
この問題の解決策を持っている人はいますか、少なくとも:
- それを確かめることができる
- 適切なバグトラッカー(Swing? KDE?)に案内して、報告できるようにしてください
スイング アプリの xprop (Intellij のアイデア):
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
WM_CLIENT_LEADER(WINDOW): window id # 0x1e0003c
_NET_WM_PID(CARDINAL) = 3581
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DESKTOP
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x0, 0x0, 0x0
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NAME(STRING) = "plasma-desktop"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "Plasma", "Plasma"
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x1e00235
window id # of group leader: 0x1e0003c
WM_NORMAL_HINTS(WM_SIZE_HINTS):
user specified location: 0, 0
program specified location: 0, 0
user specified size: 1920 by 1080
program specified size: 1920 by 1080
window gravity: Static
WM_CLIENT_MACHINE(STRING) = "OgrePC"
WM_COMMAND(STRING) = { "/usr/bin/plasma-desktop" }
ogre@OgrePC:~/aprojects-src/as_projects/besenica/besenica_core$ xprop
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x45, 0x0, 0x40, 0x3, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_WM_ICON_GEOMETRY(CARDINAL) = 107, 1011, 202, 34
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 20, 0
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 20, 0
_NET_WM_DESKTOP(CARDINAL) = 0
_KDE_NET_WM_ACTIVITIES(STRING) = "5c2b1a8d-8274-46bf-abfa-a0db6a775d03"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
WM_HINTS(WM_HINTS):
Client accepts input or input focus: False
Initial state is Normal State.
_NET_WM_ICON(CARDINAL) = Icon (128 x 128):
_NET_WM_PID(CARDINAL) = 9027
WM_CLIENT_MACHINE(STRING) = "OgrePC"
WM_PROTOCOLS(ATOM): protocols WM_TAKE_FOCUS, WM_DELETE_WINDOW
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 35443779
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jetbrains-idea-ce"
WM_CLIENT_LEADER(WINDOW): window id # 0x3400005
_NET_WM_ICON_NAME(UTF8_STRING) = "gg_platform - [~/aprojects-src/as_projects/gg_platform] - gg_platform_kryo_server - IntelliJ IDEA 14.1.2"
WM_ICON_NAME(STRING) = "gg_platform - [~/aprojects-src/as_projects/gg_platform] - gg_platform_kryo_server - IntelliJ IDEA 14.1.2"
_NET_WM_NAME(UTF8_STRING) = "gg_platform - [~/aprojects-src/as_projects/gg_platform] - gg_platform_kryo_server - IntelliJ IDEA 14.1.2"
WM_NAME(STRING) = "gg_platform - [~/aprojects-src/as_projects/gg_platform] - gg_platform_kryo_server - IntelliJ IDEA 14.1.2"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
user specified location: -3, -3
program specified location: -3, -3
program specified size: 1916 by 984
window gravity: NorthWest
デスクトップのxprop:
_NET_WM_USER_TIME(CARDINAL) = 43963890
_KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_STATE(ATOM) =
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 31457847
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 133564
_NET_STARTUP_ID(UTF8_STRING) = "0"
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_ICON(CARDINAL) = Icon (16 x 16):
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
WM_CLIENT_LEADER(WINDOW): window id # 0x1e0003c
_NET_WM_PID(CARDINAL) = 3581
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DESKTOP
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x0, 0x0, 0x0
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NAME(STRING) = "plasma-desktop"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "Plasma", "Plasma"
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x1e00235
window id # of group leader: 0x1e0003c
WM_NORMAL_HINTS(WM_SIZE_HINTS):
user specified location: 0, 0
program specified location: 0, 0
user specified size: 1920 by 1080
program specified size: 1920 by 1080
window gravity: Static
WM_CLIENT_MACHINE(STRING) = "OgrePC"
WM_COMMAND(STRING) = { "/usr/bin/plasma-desktop" }
「デスクトップを表示」後に起動したプログラム(Firefox)のxprop
_NET_WM_ICON_GEOMETRY(CARDINAL) = 1163, 1045, 176, 34
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACT
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 3, 3, 23, 4
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 23, 4
_NET_WM_DESKTOP(CARDINAL) = 0
_KDE_NET_WM_ACTIVITIES(STRING) = "5c2b1a8d-8274-46bf-abfa-a0db6a775d03"
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x3e6967d
bitmap id # of mask for icon: 0x3e6967e
window id # of group leader: 0x3e00001
WM_WINDOW_ROLE(STRING) = "browser"
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 44424608
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0
_NET_WM_ICON(CARDINAL) = Icon (16 x 16):
_NET_WM_ICON_GEOMETRY(CARDINAL) = 1163, 1045, 176, 34
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 3, 3, 23, 4
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 23, 4
_NET_WM_DESKTOP(CARDINAL) = 0
_KDE_NET_WM_ACTIVITIES(STRING) = "5c2b1a8d-8274-46bf-abfa-a0db6a775d03"
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x3e59b19
bitmap id # of mask for icon: 0x3e59b1a
window id # of group leader: 0x3e00001
_NET_STARTUP_ID(UTF8_STRING) = "OgrePC;1430761118;209192;3581_TIME42982583"
WM_WINDOW_ROLE(STRING) = "browser"
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 42982594
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
_NET_WM_ICON(CARDINAL) = Icon (16 x 16):
░░░░
░▒░░░░░
░▒▒░▒░░░▒░
▒░░░▒▒▒▒▒▒
░░░░░░░▒▒▒▒░
░▒░░░▒▒▒▒▒▒░ ░
▒▒░▒▒▒▒▒▓▓▓ ░
▒▒▒▒▒▓▒▒▓▓▓ ░
▒▒▒▒░░░▒▒▓▒ ░
░▒▒▒▒▒▓▓▓▓░░░░
▒▒▒▒▒▒▒▒░░░▒
▒▒▒▒▒▒░░░▒░
░▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒░
░░
Icon (32 x 32):
░░░░
░░░░░░░░░░░░
░░░░░░░░░░░░░░
░░▒▒▒░░░░░░░░░░░ ░
░ ░▒▒▒▒░░░░░░░░░░░░▒ ░
░▒▒▒▒░░░░░░░░░░░▒▒▒▒░░ ░
▒▒▒░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒ ░
▒░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░▒░░░▒▒▒▒▒▒▒▒▒▒
░░░░░░░░░▒▒▒░▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░ ░▒▒▒▒▒▒▒▒▒▒▒
░▒▒░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒
░▒▒▒░░░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒░ ░
░▒▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒ ▒
░▒▒▒░░░▒▒▒▓▒▒▒▒▒▒▓▓▓▓▓▓▒ ░▒
░▒▒▒▒░▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ░░
░▒▒▒▒▒▒▒░░▒▒▓▓▒▒▒▒▓▓▓▓▓▒ ░
░▒▒▒▒▒▒▒░░░░▒░░░░░▓▓▓▓▒░░ ░
▒▒▒▒▒▒▒▒░░░░░░▒▒▒▓▓▓▓▒░░ ░░░
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓░░░░░░░
░▒▒▒▒▒▒▒░░▒▓▓▓▓▓▓▓▓▓▒░░░░░░░
▒▒▒▒▒▒▒▒▒░▒▒▓▓▓▓▓▒▒░░░░░░▒░
░▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒░░░░░░░▒▒
▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░▒░
▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒░
Icon (48 x 48):
░░░░
░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░ ░
░░░░░░░░░░░░░░░░░░░░░▒░
░ ░░░▒▒▒▒▒░░░░░░░░░░░░░░░▒░ ░░
░░ ░░▒▒▒▒▒░░░░░░░░░░░░░░░░░░▒░ ░
░░▒░▒▒▒▒▒▒░░░░▒░░░░░░░░▒▒▒▒▒▒░▒░ ░
░▒▒▒▒░░░░░░░░▒▒▒░░░░░░▒▒▒▒▒▒▒░ ░░ ░░
▒▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ░
▒▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
░░░░░░░░░░░░▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░░░░░░░░░░░░▒▒▒░▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
░░░░░░░░░░░░░░▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
░░░░░░░░░░░░░░░░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓░
░░▒▒░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░░▒▒▒░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒ ▒ ░░
░░▒▒▒▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒ ░ ░▒
░▒▒▒▒▒░░░░░░▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▒ ▒▒
░▒▒▒▒▒░░░░░▒▒▒▓▓▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▒ ▒░
░▒▒▒▒▒▒░░░▒▒▒▒▓▓▓▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▒ ▒░
░▒▒▒▒▒▒▒░▒▒▒▒░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ░░
░▒▒▒▒▒▒▒▒▒▒▒░░░▒▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▒░ ░░
░▒▒▒▒▒▒▒▒▒▒▒░░░░░▒▒▒▒░░░░░▒▓▓▓▓▓▓▒░░ ░░
▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░▓▓▓▓▓▓░░░ ░░
░▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▒▓▓▓▓▓▓▓░░░ ░░░░░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▒ ░░ ░░░░░
▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░
▒▒▒▒▒▒▒▒▒▒▒▒░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░▒▒
▒▒▒▒▒▒▒▒▒▒▒▒░░▒▓▓▓▓▓▓▓▓▓▓▓▒▓░░░░░░░░░▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▒▒▓▓▓▓▓▓▓▒░░░░░░░░░░▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▒░░░░░░░░░░░▒▓▒
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░▒▒▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
░░░▒▒▒▒▒▒▒▒▒▒░░░
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 65379096
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_USER_TIME(CARDINAL) = 42982583
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x3e59b17
WM_CLIENT_LEADER(WINDOW): window id # 0x3e00001
_NET_WM_PID(CARDINAL) = 9597
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "OgrePC"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 300 by 154
program specified maximum size: 32767 by 32767
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "Navigator", "Firefox"
WM_ICON_NAME(STRING) = "Mozilla Firefox"
_NET_WM_ICON_NAME(UTF8_STRING) = "Mozilla Firefox"
WM_NAME(STRING) = "Mozilla Firefox"
_NET_WM_NAME(UTF8_STRING) = "Mozilla Firefox"
答え1
私はKDEユーザーではありませんが、検索してみたところ、このフォーラムスレッド同じ問題を抱えていた人からの回答です。解決策は次のとおりです。
ウィンドウ ルール (「kcmshell4 kwinrules」) を追加し、「外観と修正」タブで、「フォーカスを受け入れる」を「強制」および「はい」に設定してください。
答え2
Intelij 製品でも同じ問題がありますが、私は Gnome 3 を使用しています。たとえば、RubyMine を起動してターミナルに切り替えて作業を続けると、Rubymine は起動中に少なくとも 2 回フォーカスを奪います。また、何らかのイベントが発生したときにもフォーカスを奪います。これは通常、Rubymine で編集用に開かれたソース コード内のシェル コマンドの一部で終わります。数分前まで完璧に動作していたコードで構文エラーを探すというエロい経験をすでにしました。善意でそれを私に与えてくれた未知の英雄に感謝します。
KDE だけが影響を受けるわけではないので、これは X サーバーのバグだと思います。