From owner-FreeBSD-users-jp@jp.freebsd.org  Wed Jul  1 16:25:47 1998
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) id QAA14832;
	Wed, 1 Jul 1998 16:25:47 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from diana.infonets.hiroshima-u.ac.jp (diana.infonets.hiroshima-u.ac.jp [133.41.33.53])
	by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) with ESMTP id QAA14814;
	Wed, 1 Jul 1998 16:25:38 +0900 (JST)
	(envelope-from taoka@infonets.hiroshima-u.ac.jp)
Received: from cal.infonets.hiroshima-u.ac.jp (cal.infonets.hiroshima-u.ac.jp [133.41.33.61]) by diana.infonets.hiroshima-u.ac.jp (8.8.5/3.5Wpl5) with ESMTP id QAA04503; Wed, 1 Jul 1998 16:25:38 +0900 (JST)
Received: from localhost (localhost.infonets.hiroshima-u.ac.jp [127.0.0.1]) by cal.infonets.hiroshima-u.ac.jp (8.8.8/3.5Wpl5) with ESMTP id QAA00725; Wed, 1 Jul 1998 16:25:37 +0900 (JST)
To: ports-jp@jp.freebsd.org
Cc: FreeBSD-users-jp@jp.freebsd.org
From: Satoshi Taoka <taoka@infonets.hiroshima-u.ac.jp>
X-Mailer: Mew version 1.92.4 on XEmacs 20.4 (Emerald)
X-Prom-Mew: Prom-Mew 1.92.9 (procmail reader for Mew)
X-URL: http://www.infonets.hiroshima-u.ac.jp/~taoka/
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
	boundary="--Next_Part(Wed_Jul__1_16:25:26_1998_809)--"
Content-Transfer-Encoding: 7bit
Message-Id: <19980701162536E.taoka@infonets.hiroshima-u.ac.jp>
Date: Wed, 01 Jul 1998 16:25:36 +0900
X-Dispatcher: imput version 971024
Lines: 197
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-users-jp 30299
Subject: [FreeBSD-users-jp 30299] ports of kinput2 & Filter Event patch
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

----Next_Part(Wed_Jul__1_16:25:26_1998_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit


$BED2,$G$9!#(B

$B:rF|!"(Bkinput2-v2-fix4$B$N(Bports$B$,(Bcommit$B$5$l$^$7$?!#$G!"AaB.$J$N$G$9$,!"(B

http://nug.nasu-net.or.jp/~honma/linux/download/kinput2-FilterEvent.tar.gz

$B$N%Q%C%A$rF~$l$h$&$+$J$H9M$($F$$$^$9!J;HMQ5v2D$O4{$K<h$C$F$"$j$^$9!K!#$?(B
$B$@$7!">e5-$N(Btarball$B$NFbMF$O(Blinux$BMQ$N%P%$%J%j(B &
lib/imlib/{imattr.c,im.h}$B$=$N$b$N$H$$$&$b$N$G$9!#$G!"$^$@!"(Bpatch$B7A<0$NG[(B
$BIU$O$5$l$F$^$;$s$N$G!"$=$l$^$G$O!"(Bpatches$B$KF~$l9~$`7A$K$7$h$&$H;W$$$^$9!#(B

$B$G!"(Bcurrent$B$N(Bports tree$BCf$G!"E:IU$7$?%U%!%$%k$r(B

/usr/ports/japanese/kinput2-wnn4/patches/patch-az

$B$H$7$FF~$l$F!"?'!9;n$7$F$/$@$5$$!#;d$O!"(B

% kinput2 -version
kinput2 version 2.0 fix 4  (1997/12/09)
        options: [Wnn] [Canna2] 

$B$N(BWnn$B$N$_$r$D$+$C$F$$$^$9!#$3$l$G(BNetscape$B$KF~NO$G$-$k$h$&$K$O$J$C$?$N$G(B
$B$9$,!J$?$@$7!"(B[$B$"(B]$B$N>uBV$G2~9T$,$G$-$J$$!K!"(BNetscape$B$N=*N;;~$K(Bcore$BEG$$$A$c(B
$B$$$^$9$M!#3'$5$s$O$I$&$G$7$g$&$+!)(B

$B:#$^$G@5>o$K;H$($F$$$?$b$N!JNc$($P(Btgif$B$J$I!K$KBP$7$F$OIT6q9g$K$O$"$C$F$^(B
$B$;$s!#(B

# $B$H$3$m$G!"(Bvje$B$r;n$7$F$_$^$7$?$,!"%-!<F~NO$N%9%T!<%I$KIU$$$F$-$F$/$l$^(B
# $B$;$s!#(BXIM$B$C$F!"$=$&$$$&$b$N$J$N$G$7$g$&$+!)(Bxwnmo$B$r$A$g$C$H;H$C$?$3$H$"(B
# $B$j$^$7$?$,!"$=$N$H$-$O!V(Bxwnmo$B$OCY$$!*!*!W$H;W$C$F$^$7$?!#$7$+$7!"(BXIM$B$N(B
# $B$;$$$J$N$G$9$M!)>\$7$$J}$$$i$C$7$c$$$^$;$s$+!)(B

 $BED2,(B $BCR;V(B    $B9-EgBg3X9)3XItBhFsN`2sO)%7%9%F%`9)3X(B
             taoka@infonets.hiroshima-u.ac.jp

----Next_Part(Wed_Jul__1_16:25:26_1998_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Description: patch-az

--- ../work/lib/imlib/imattr.c	Tue Dec  9 17:38:08 1997
+++ lib/imlib/imattr.c	Sat Mar 14 00:50:26 1998
@@ -127,6 +127,11 @@
 static int getLineSpace _Pt_((IMIC *, unsigned int, int, int, char *, int));
 static int getCursor _Pt_((IMIC *, unsigned int, int, int, char *, int));
 
+#ifndef	ORIGINAL
+static int setFilterEvents _Pt_((IMIC *, char *, int, int, int, int));
+static int getFilterEvents _Pt_((IMIC *, unsigned int, int, int, char *, int));
+#endif
+
 static ICAttribute icAttributes[] = {
     { XNInputStyle, TYPE_CARD32, OP_C|OP_G,
 	  setInputStyle, getInputStyle },
@@ -134,6 +139,8 @@
 	  setClientWindow, getClientWindow },
     { XNFocusWindow, TYPE_WINDOW, OP_C|OP_S|OP_G,
 	  setFocusWindow, getFocusWindow },
+    { XNFilterEvents, TYPE_CARD32, OP_C|OP_S|OP_G,
+	  setFilterEvents, getFilterEvents },
     { XNPreeditAttributes, TYPE_NESTED_LIST, OP_C|OP_S|OP_G,
 	  setPreeditAttributes, getPreeditAttributes },
     { XNStatusAttributes, TYPE_NESTED_LIST, OP_C|OP_S|OP_G,
@@ -543,6 +550,34 @@
     return 0;
 }
 
+#ifndef	ORIGINAL
+/* ARGSUSED */
+static int
+setFilterEvents(icp, value, len, order, nest, op)
+IMIC *icp;
+char *value;
+int len;
+int order;
+int nest;
+int op;
+{
+    unsigned long filter_events;
+
+    TRACE(("imlib:setFilterEvents()\n"));
+
+    CHECK_ICATTR_SIZE(4, IMBadSomething);
+
+    filter_events = (unsigned long)getC32(value, order);
+    TRACE(("\tfilter events: %08lx\n", filter_events));
+
+    if (!(icp->common_attr.set_mask & ATTR_MASK_FILTER_EVENTS) ||
+	filter_events != icp->common_attr.filter_events) {
+	icp->common_attr.change_mask |= ATTR_MASK_FILTER_EVENTS;
+    }
+    return 0;
+}
+#endif
+
 /* ARGSUSED */
 static int
 setPreeditAttributes(icp, value, len, order, nest, op)
@@ -1261,6 +1296,42 @@
     }
 }
 
+#ifndef	ORIGINAL
+/* ARGSUSED */
+static int
+getFilterEvents(icp, id, nest, offset, data, len)
+IMIC *icp;
+unsigned int id;
+int nest;
+int offset;
+char *data;
+int len;
+{
+    IMConnection *conn = icp->im->connection;
+
+    TRACE(("imlib:getFilterEvents()\n"));
+
+    if (!(icp->common_attr.set_mask & ATTR_MASK_FILTER_EVENTS)) {
+    	/* fill default value */
+    	fillCommonDefault(icp, (unsigned long)ATTR_MASK_FILTER_EVENTS);
+    }
+
+    if (icp->common_attr.set_mask & ATTR_MASK_FILTER_EVENTS) {
+    	IMPutC16(conn, id);		/* attribute ID */
+    	IMPutC16(conn, 4);		/* value length */
+    	IMPutC32(conn, icp->common_attr.filter_events);
+    }
+    else {
+	/* no default is available */
+	DPRINT(("getFilterEvents without setting\n"));
+	IMCancelRequest(conn, offset);
+	IMSendError(conn, IMBadSomething, icp->im->id, icp->id,
+		    "filter events not specified yet");
+	return -1;
+    }
+}
+#endif
+
 /* ARGSUSED */
 static int
 getArea(icp, id, nest, offset, data, len)
@@ -1679,6 +1750,13 @@
 	    TRACE(("\tdefault focus window: %08lx\n", ap->focus));
 	}
     }
+#ifndef	ORIGINAL
+    if (mask & ATTR_MASK_FILTER_EVENTS) {
+    	ap->filter_events = NoEventMask;
+    	ap->set_mask |= ATTR_MASK_FILTER_EVENTS;
+	TRACE(("\tdefault filter events: %08lx\n", ap->filter_events));
+    }
+#endif
 }
 
 static int
@@ -1848,6 +1926,12 @@
 	    SENDERROR(IMBadFocusWindow, "invalid focus window ID");
 	}
     }
+#ifndef	ORIGINAL
+    if (mask & ATTR_MASK_FILTER_EVENTS) {
+	DPRINT(("filter events not support\n"));
+	SENDERROR(IMBadSomething, "filter events not support");
+    }
+#endif
 
     return ret;
 #undef SENDERROR
@@ -2070,7 +2154,6 @@
 	sattr->area = sattr->area_needed;
     }
 }
-
 
 /*
  * Public functions
--- ../work/lib/imlib/im.h	Tue Dec  9 17:38:07 1997
+++ lib/imlib/im.h	Fri Mar 13 21:12:00 1998
@@ -158,6 +158,10 @@
     XIMStyle input_style;
     Window client;			/* client window */
     Window focus;			/* focus window */
+#ifndef	ORIGINAL
+#define ATTR_MASK_FILTER_EVENTS	(1<<3)
+    unsigned long filter_events;	/* Event mask that IM need */
+#endif
 } IMCommonAttributes;
 
 typedef struct {

----Next_Part(Wed_Jul__1_16:25:26_1998_809)----
