[PR]¡“ú‚ÌÆ­°½‚Í
¢Infoseek ÓÊÞ²Ù£

evilwm¤Çskkinput¤Î¥Õ¥©¡¼¥«¥¹¤¬¤ª¤«¤·¤¤¤Î¤ò¤É¤¦¤Ë¤«¤¹¤ë

Ãí°Õ

¸¶°ø¤¬¤è¤¯¤ï¤«¤é¤ó¤Î¤À¤±¤É¡¢¥¦¥£¥ó¥É¥¦ÊĤ¸¤¿¤È¤­¤ËSEGV¤¹¤ë¤³¤È¤¬¤¢¤ë¤è¤¦¤Ç¡¢ ¤½¤Î¤¦¤Á¤Ê¤ó¤È¤«¤¹¤ëͽÄê¡£

what?

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 ¤Ë¾Ü¤·¤¯¤Ê¤Ã¤Æ¤¤¤¯¤Ê¤¡¡Ä̵Â̤À¤Ê¤¡¡Ä