¸¶°ø¤¬¤è¤¯¤ï¤«¤é¤ó¤Î¤À¤±¤É¡¢¥¦¥£¥ó¥É¥¦ÊĤ¸¤¿¤È¤¤ËSEGV¤¹¤ë¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¡¢ ¤½¤Î¤¦¤Á¤Ê¤ó¤È¤«¤¹¤ëͽÄê¡£
evilwm¤ÇXIM¤ÎÊÑ´¹¤¹¤ë¤È¥Õ¥©¡¼¥«¥¹¤¬IM¥¦¥£¥ó¥É¥¦¤Ë°Ü¤Ã¤Á¤ã¤Ã¤Æ¤¦¤Þ¤¯ÊÑ´¹¤Ç¤¤Ê¤¤¤Î¤ò¤Ê¤ó¤È¤«¤¹¤ë¡£
events.c¤Îhandle_enter_event¤ÎÃæ¤Î12¹ÔÌܤ¢¤¿¤ê¤Ë
current_screen = find_screen(e->root);
/* if (e->window == root && !current) {
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
return;
} */
if ((c = find_client(e->window))) {
> XWMHints *hints = XGetWMHints(dpy, c->window);
>
> if ( (hints->flags&InputHint) && (hints->input==False) ) {
> XFree(hints);
> return;
> }
>
> XFree(hints);
#ifdef VWM
wdesk = c->vdesk;
if (wdesk != vdesk && wdesk != STICKY)
Äɵ: ´Ä¶¤Ë¤è¤Ã¤Æ¤Ï¡¢XGetWMHints¤¬NULL¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£Íî¤Á¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤È¤¤ÏNULL¥Á¥§¥Ã¥¯Æþ¤ì¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ó¤Ê¥³¡¼¥É¤òÆþ¤ì¤Æ¤ª¤¯¡£¤Ç¡¢¥³¥ó¥Ñ¥¤¥ë¡£½ª¤ï¤ê¡£
¥¦¥£¥ó¥É¥¦¤¬°ÌÃÖŪ¤Ë³Ê¹¥°¤¤¤Î¤ÏÊ̤ˤɤ¦¤Ç¤â¤¤¤¤¡Ä¤è¤Í¤§¡Ä
Ãí: ¤¢¤ó¤Þ¤ê¾Ü¤·¤¯ÃΤé¤Ê¤¤¤ó¤Ç¿®ÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
X¾å¤Ë¤¢¤ë¥¦¥£¥ó¥É¥¦¤Ï¥×¥í¥Ñ¥Æ¥£¤À¤«¡¢¥¢¥È¥à¤À¤«¤È¤«¤¤¤¦¤Î¤Ç¡¢ ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼(°Ê²¼WM)¤È¾ðÊó¸ò´¹¤·¤Æ¤¤¤ë´¶¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
»²¹Í: ¥¯¥é¥¤¥¢¥ó¥È´ÖÄÌ¿®
¤Ç¡¢¤½¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃæ¤Ç¤â¥Õ¥©¡¼¥«¥¹¤Î°À¤ÏWM_HINTS¤È¤«¤¤¤¦¥×¥í¥Ñ¥Æ¥£¤Ç WM¤ÈÄÌ¿®¤·¤Æ¤ë¡£¤½¤ì¤Ç¡¢IM¤ÎÎत¤Ï¤³¤³¤Ë¡¢¡Ö²¶¤Ï¥Õ¥©¡¼¥«¥¹¤Ê¤ó¤Æ¤¤¤é¤ó¡×¤Ã¤Æ¤¤¤¦¤Õ¤¦¤Ê ¥Ò¥ó¥È¤òºÜ¤»¤Æ¤¤¤ë¤ï¤±¤À¡£¤³¤Î¤Ø¤ó¤Ïxprop¤Ç³Îǧ¤Ç¤¤ë¤Ï¤º¡£
# skkinput ¤ÎÊÑ´¹¥¦¥£¥ó¥É¥¦(minibuffer¤È¤¤¤¦¤é¤·¤¤)¤Îxprop WM_STATE(WM_STATE): window state: Normal icon window: 0x0 WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW WM_TRANSIENT_FOR(WINDOW): window id # 0x400001 WM_CLIENT_LEADER(WINDOW): window id # 0x400001 WM_LOCALE_NAME(STRING) = "C" WM_CLASS(STRING) = "minibuffer", "Skkinput" WM_HINTS(WM_HINTS): Client accepts input or input focus: False # ¤³¤³ Initial state is Normal State. window id # of group leader: 0x400001 WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified size: 640 by 14 program specified minimum size: 0 by 14 program specified resize increment: 1 by 14 program specified base size: 0 by 0 window gravity: SouthWest WM_CLIENT_MACHINE(STRING) = "localhost.localdomain" WM_NAME(STRING) = "minibuffer"
¤Ç¤â¡¢evilwm¤ÏWM_HINTS¤ò¤Û¤È¤ó¤É(¥µ¥¤¥º°Ê³°¡©)̵»ë¤¹¤ë¤Î¤Ç¡¢IM¤Ë¤â¥Õ¥©¡¼¥«¥¹¤¬¤¤¤Ã¤Á¤ã¤¦¡£ ¤À¤«¤é¡¢¤½¤Î¤Ø¤ó¤ò½¤Àµ¤¹¤ì¤Ð¤É¤¦¤Ë¤Ç¤â¤Ê¤ë¡¢¤È¤¤¤¦Ïá£
¤½¤ì¤È¡¢evilwm¤Î¤Û¤¦¤Î¥½¡¼¥¹¤Ï¤½¤ó¤Ê¤ËÊ£»¨¤¸¤ã¤Ê¤¤¤Î¤Ç¡¢¤Á¤ç¤Ã¤ÈÆÉ¤à¤À¤±¤Ç·ë¹½¤Ê¤ó¤È¤«¤Ê¤ë¡£
evilwm»È¤¤°×¤¤¤ó¤À¤±¤É¡¢¥Ç¥¹¥¯¥È¥Ã¥×°Üư¤·¤¿»þ¤Ë¥¦¥£¥ó¥É¥¦¤ÎÂ礤µ¤Î´Ø·¸¤Ç ¥Õ¥©¡¼¥«¥¹¤É¤Ã¤«¤¤¤Ã¤Á¤ã¤¦¤³¤È¤¬¤¢¤ë¤ó¤À¤è¤Ê¤¡¡Ä
¤È¤«»×¤Ã¤Æ¡¢¤³¤Î¤Ø¤ó¤Ê¤ó¤È¤«¤·¤è¤¦¤È»×¤Ã¤¿¤é¡¢¤Ê¤ó¤«´û¤Ë¼ÂÁõ¤µ¤ì¤Æ¤ë¤Ý¤¤¡£
Makefile ¤Ë DEFINES += -DVWM_WARP ¤Ç¤¤¤¤´¶¤¸¤À¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤Ç¤·¤ç¤¦¡£
--
¸¦½¤¤ÎºÇÃæ¤Ë¾¡¼ê¤Ëºî¤Ã¤¿¤Î¤ÇµëÎÁÅ¥ËÀ¤À¡£¤Þ¤¢¡¢PerlÆþÌç¤ÎÏäÀ¤Ã¤¿¤ó¤Çµö¤·¤Æ¤¯¤À¤µ¤¤¡£
¤Ê¤ó¤À¤«¤ó¤À¤¤¤Ã¤Æ X ¤Ë¾Ü¤·¤¯¤Ê¤Ã¤Æ¤¤¤¯¤Ê¤¡¡Ä̵Â̤À¤Ê¤¡¡Ä