{"id":59,"date":"2018-03-20T01:01:58","date_gmt":"2018-03-19T16:01:58","guid":{"rendered":"https:\/\/www.axer.jp\/?p=59"},"modified":"2024-07-14T00:54:47","modified_gmt":"2024-07-13T15:54:47","slug":"cocoainputlinux","status":"publish","type":"post","link":"https:\/\/blog.axer.jp\/?p=59","title":{"rendered":"CocoaInputLinux"},"content":{"rendered":"<p>\u5148\u6708\u3001CocoaInputLinux\u3092\u30ea\u30ea\u30fc\u30b9\u3057\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u306b\u3064\u3044\u3066\u5c11\u3057\u8a2d\u8a08\u3092\u66f8\u304d\u307e\u3059\u3002<br \/>\n\u4ee5\u524d\u79c1\u306fgist\u306b\u300clwjgl2\u30b3\u30fc\u30c9\u5185\u306e&#8221;@im=none&#8221;\u3092\u6d88\u305b\u3070\u65e5\u672c\u8a9e\u304c\u6253\u3066\u308b\u300d\u3068\u66f8\u304d\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u3060\u3051\u3067\u306f\u4e0d\u5341\u5206\u3067\u3057\u305f\u3002<br \/>\nX11\u3067IM\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u30ad\u30fc\u30a4\u30d9\u30f3\u30c8\u3092XIM(filterEvent)\u306b\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u5927\u524d\u63d0\u4e8b\u9805\u3067\u3001\u30b3\u30ec\u304c\u306a\u3055\u308c\u3066\u3044\u306a\u3044\u3068Mod\u5074\u306e\u5bfe\u51e6\u3067\u306f\u3069\u3046\u306b\u3082\u306a\u308a\u307e\u305b\u3093\u3002Mod\u3060\u3051\u3067\u3069\u3046\u306b\u3082\u306a\u3089\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u306f\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u6539\u5909\u3092\u65bd\u3059\u5fc5\u8981\u304c\u3042\u308b\u308f\u3051\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/LWJGL\/lwjgl\/blob\/master\/src\/java\/org\/lwjgl\/opengl\/LinuxDisplay.java\">https:\/\/github.com\/LWJGL\/lwjgl\/blob\/master\/src\/java\/org\/lwjgl\/opengl\/LinuxDisplay.java<\/a>\u306e\u30b3\u30fc\u30c9<br \/>\n863: <span class=\"pl-k\">if<\/span> (event_window <span class=\"pl-k\">!=<\/span> getWindow() <span class=\"pl-k\">||<\/span> event_buffer<span class=\"pl-k\">.<\/span>filterEvent(event_window) <span class=\"pl-k\">||&#8230;<br \/>\n\u4e00\u898b\u3059\u308b\u3068XIM\u306b\u30ad\u30fc\u30a4\u30d9\u30f3\u30c8\u3092\u6e21\u3057\u3066\u3044\u308b\u3088\u3046\u306b\u898b\u3048\u307e\u3059\u304c\u3001\u5b9f\u306fXIM\u306e\u5411\u3051\u306e\u30ad\u30fc\u30a4\u30d9\u30f3\u30c8\u306e\u6642\u306fevent_window != getWindow()\u304cfalse\u3092\u8fd4\u3057\u3066\u3057\u307e\u3046\u3088\u3046\u3067\u3059\u3002\u3088\u3063\u3066\u672c\u6765\u306eXIM\u306b\u30ad\u30fc\u30a4\u30d9\u30f3\u30c8\u3092\u6e21\u3059\u5b9f\u88c5\u306f<br \/>\n<\/span><span class=\"pl-k\">if<\/span> (event_buffer<span class=\"pl-k\">.<\/span>filterEvent(event_window)||event_window <span class=\"pl-k\">!=<\/span> getWindow()&#8230;<br \/>\n\u3068\u3059\u308b\u3079\u304d\u3067\u3057\u305f\u3002<\/p>\n<p>\u305d\u308c\u3067\u3053\u308c\u3089\u306e\u5bfe\u7b56\u65b9\u6cd5\u306b\u3064\u3044\u3066\u3067\u3059\u304c\u3081\u3093\u3069\u304f\u3055\u3044\u306e\u3067\u7701\u7565\u3057\u307e\u3059\u3002<br \/>\n\u7d50\u679c\u7684\u306bCocoaInputLinux\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u6642\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u308blwjgl\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5909\u66f4\u70b9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<br \/>\nLinuxEvent\u30af\u30e9\u30b9\u306b\u3064\u3044\u3066\u3001<br \/>\n\u30e1\u30f3\u30d0\u3092\u8ffd\u52a0<br \/>\nprivate boolean finalEventFiltered = false;<br \/>\npublic static boolean enableIME = false;<br \/>\n\u30e1\u30bd\u30c3\u30c9\u3092\u6539\u5909<br \/>\npublic boolean filterEvent(long paramLong){<br \/>\nreturn this.finalEventFiltered;<br \/>\n}<br \/>\npublic boolean filterEventX(long paramLong){<br \/>\nreturn enableIME ? nFilterEvent(this.event_buffer, paramLong) : false;<br \/>\n}<br \/>\npublic void nextEvent(long paramLong){<br \/>\nnNextEvent(paramLong, this.event_buffer);<br \/>\nthis.finalEventFiltered = filterEventX(0L);<br \/>\n}<br \/>\n\u3053\u306e\u6539\u5909\u304c\u5168\u3066\u3067\u3059\u3002\u3053\u3046\u3044\u3046\u306e\u3092\u3061\u3083\u3093\u3068\u66f8\u3044\u3066\u304a\u304b\u306a\u3044\u3068\u30ad\u30fc\u30ed\u30ac\u30fc\u3057\u3066\u308b\u3093\u3058\u3083\u306a\u3044\u304b\u3068\u601d\u308f\u308c\u305d\u3046\u306a\u306e\u3067\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>\u306a\u304aMinecraft 1.13\u304b\u3089\u63a1\u7528\u3055\u308c\u308blwjgl3\u306f\u3057\u3063\u304b\u308a\u3068filterEvent\u3092\u901a\u3057\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3001\u6050\u3089\u304fCocoaInputLinux\u3092mods\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5165\u308c\u308b\u3060\u3051\u3067\u52d5\u304f\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u73fe\u72b6\u306eCocoaInputLinux\u306f\u306f\u3063\u304d\u308a\u8a00\u3063\u3066IME\u3092\u8868\u793a\u3055\u305b\u305f\u6bb5\u968e\u3067\u7d42\u308f\u3063\u3066\u3044\u3066\u5229\u4fbf\u6027\u304c\u9ad8\u3044\u3068\u306f\u3044\u3048\u307e\u305b\u3093\u3002<br \/>\n\u4f55\u3088\u308a\u60c5\u5831\u304c\u975e\u5e38\u306b\u5c11\u306a\u304f\u3001\u5909\u63db\u5019\u88dc\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u8868\u793a\u4f4d\u7f6e\u306e\u5236\u5fa1\u304c\u306b\u3063\u3061\u3082\u3055\u3063\u3061\u3082\u3044\u304d\u307e\u305b\u3093\u3002<br \/>\n\u3053\u308c\u3070\u3063\u304b\u308a\u306f\u5bfe\u7b56\u3059\u308b\u306e\u306b\u306f\u6642\u9593\u304c\u304b\u304b\u308bor\u76f4\u305b\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308a\u305d\u3046\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5148\u6708\u3001CocoaInputLinux\u3092\u30ea\u30ea\u30fc\u30b9\u3057\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u306b\u3064\u3044\u3066\u5c11\u3057\u8a2d\u8a08\u3092\u66f8\u304d\u307e\u3059\u3002 \u4ee5\u524d\u79c1\u306fgist\u306b\u300clwjgl2\u30b3\u30fc\u30c9\u5185\u306e&#8221;@im=none&#8221;\u3092\u6d88\u305b\u3070\u65e5\u672c\u8a9e\u304c\u6253\u3066\u308b\u300d\u3068\u66f8\u304d\u307e\u3057\u305f\u304c\u3001\u305d &hellip; <a href=\"https:\/\/blog.axer.jp\/?p=59\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;CocoaInputLinux&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-59","post","type-post","status-publish","format-standard","hentry","category-modding"],"_links":{"self":[{"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/posts\/59","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59"}],"version-history":[{"count":1,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions"}],"predecessor-version":[{"id":170,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=\/wp\/v2\/posts\/59\/revisions\/170"}],"wp:attachment":[{"href":"https:\/\/blog.axer.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.axer.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}