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  <ska...@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 <ska...@redhat.com> - 804.028-7
+- perl-Tk-XIM.patch (#489228)
+
 * Thu Feb 26 2009 Fedora Release Engineering <rel-...@lists.fedoraproject.org> 
- 804.028-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
 

--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
Fedora-perl-devel-list mailing list
Fedora-perl-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-perl-devel-list

Reply via email to