rpms/perl-Tk/devel perl-Tk-XIM.patch, NONE, 1.1 perl-Tk.spec, 1.16, 1.17
Štěpán Kasal
kasal at fedoraproject.org
Thu Mar 19 14:55:04 UTC 2009
Author: kasal
Update of /cvs/extras/rpms/perl-Tk/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27274
Modified Files:
perl-Tk.spec
Added Files:
perl-Tk-XIM.patch
Log Message:
- perl-Tk-XIM.patch (#489228)
perl-Tk-XIM.patch:
--- NEW FILE perl-Tk-XIM.patch ---
2009-03-19 Stepan Kasal <skasal at redhat.com>
Fix keyboard input with XIM, r12589 from
http://svn.perl.org/modules/Tk/trunk
Index: Tk/pTk/mTk/unix/tkUnixEvent.c
===================================================================
--- Tk/pTk/mTk/unix/tkUnixEvent.c (revision 12588)
+++ Tk/pTk/mTk/unix/tkUnixEvent.c (revision 12589)
@@ -305,22 +305,26 @@
*/
static void
-TransferXEventsToTcl(display)
- Display *display;
+TransferXEventsToTcl(
+ Display *display)
{
- int numFound;
XEvent event;
- numFound = QLength(display);
-
/*
- * Transfer events from the X event queue to the Tk event queue.
+ * Transfer events from the X event queue to the Tk event queue after XIM
+ * event filtering. KeyPress and KeyRelease events are filtered in
+ * Tk_HandleEvent instead of here, so that Tk's focus management code can
+ * redirect them.
*/
- while (numFound > 0) {
+ while (QLength(display) > 0) {
XNextEvent(display, &event);
+ if (event.type != KeyPress && event.type != KeyRelease) {
+ if (XFilterEvent(&event, None)) {
+ continue;
+ }
+ }
Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL);
- numFound--;
}
}
Index: Tk/pTk/mTk/generic/tkEvent.c
===================================================================
--- Tk/pTk/mTk/generic/tkEvent.c (revision 12588)
+++ Tk/pTk/mTk/generic/tkEvent.c (revision 12589)
@@ -945,8 +945,10 @@
#endif
}
}
- if (XFilterEvent(eventPtr, None)) {
- goto done;
+ if (eventPtr->type == KeyPress || eventPtr->type == KeyRelease) {
+ if (XFilterEvent(eventPtr, None)) {
+ goto done;
+ }
}
}
#endif /* TK_USE_INPUT_METHODS */
Index: perl-Tk.spec
===================================================================
RCS file: /cvs/extras/rpms/perl-Tk/devel/perl-Tk.spec,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- perl-Tk.spec 27 Feb 2009 03:52:49 -0000 1.16
+++ perl-Tk.spec 19 Mar 2009 14:54:33 -0000 1.17
@@ -3,7 +3,7 @@
Name: perl-Tk
Version: 804.028
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Perl Graphical User Interface ToolKit
Group: Development/Libraries
@@ -15,6 +15,8 @@
Patch1: perl-Tk-debian.patch.gz
# fix segfaults as in #235666 because of broken cashing code
Patch2: perl-Tk-seg.patch
+# fix interaction with XIM, bug #489228, upstream change r12589
+Patch3: perl-Tk-XIM.patch
# fix gif overflow in tk see CVE-2006-4484 and CVE-2007-6697 or #431518 and
# #431529
@@ -57,6 +59,7 @@
%patch1 -p1
# patch to fix #235666 ... seems like caching code is broken
%patch2 -p1 -b .seg
+%patch3 -p1 -b .xim
%patch100
%build
@@ -102,6 +105,9 @@
%exclude %{perl_vendorarch}/Tk/reindex.pl
%changelog
+* Thu Mar 19 2009 Stepan Kasal <skasal at redhat.com> - 804.028-7
+- perl-Tk-XIM.patch (#489228)
+
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 804.028-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
More information about the Fedora-perl-devel-list
mailing list