替换XKeycodeToKeysym

替换XKeycodeToKeysym,第1张

概述当我尝试在Ubuntu 12.04中使用X11标头构建我的代码时 case KeyPress: xcommon_update_server_time( event.xkey.time ); /* if( event.xkey.state & ShiftMask ) arg |= I_SHIFT; */ /* this alternate approa 当我尝试在Ubuntu 12.04中使用X11标头构建我的代码时
case KeyPress:        xcommon_update_server_time( event.xkey.time );        /* if( event.xkey.state & ShiftMask ) arg |= I_SHIFT; */        /* this alternate approach allows handling of keys like '<' and '>' -- mrallen */        if( event.xkey.state & ShiftMask ) {            mykey = XKeycodetoKeysym( display,event.xkey.keycode,1 );        } else {            mykey = XKeycodetoKeysym( display,0 );        }

预期结果是什么?
编译.

会发生什么?

warning: 'XKeycodetoKeysym' is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]

由于https://bugs.freedesktop.org/show_bug.cgi?id=5349 XKeycodetoKeysym现已正确标记为已弃用.

如何修复我的代码以警告免费和正确的构建?

谢谢

解决方法 如果XKB可用,那么XKeycodetoKeysym的最简单替代是:
#include <X11/XKBlib.h>/* which declares:     KeySym XkbKeycodetoKeysym(display *dpy,KeyCode kc,unsigned int group,unsigned int level); */

…然后原始问题的代码可能变成:

mykey = XkbKeycodetoKeysym( display,event.xkey.state & ShiftMask ? 1 : 0);

笔记:

>此chromium bug report讨论了XGetKeyboardMapPing和XKB替换解决方案.
> X.org上的XkbKeyCodeToKeysym手册页

总结

以上是内存溢出为你收集整理的替换XKeycodeToKeysym全部内容,希望文章能够帮你解决替换XKeycodeToKeysym所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1241906.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存