ports/179397: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Wed Jun 26 20:10:01 UTC 2013


The following reply was made to PR ports/179397; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: ports/179397: commit references a PR
Date: Wed, 26 Jun 2013 20:00:47 +0000 (UTC)

 Author: zeising
 Date: Wed Jun 26 20:00:39 2013
 New Revision: 321811
 URL: http://svnweb.freebsd.org/changeset/ports/321811
 
 Log:
   Readd the dix_events.c patch that was removed with the xorg update.
   There have been some reports of problems with pointer focus and other
   related issues in Mwm and open-motif without this patch.
   Bump portrevision for old xorg.
   
   PR:		ports/179397
   Submitted by:	William Bulley <web at umich.edu>
 
 Added:
   head/x11-servers/xorg-server/files/extra-dix_events.c
      - copied unchanged from r319054, head/x11-servers/xorg-server/files/extra-dix_events.c
 Modified:
   head/x11-servers/xorg-server/Makefile
 
 Modified: head/x11-servers/xorg-server/Makefile
 ==============================================================================
 --- head/x11-servers/xorg-server/Makefile	Wed Jun 26 19:25:10 2013	(r321810)
 +++ head/x11-servers/xorg-server/Makefile	Wed Jun 26 20:00:39 2013	(r321811)
 @@ -27,14 +27,15 @@ PLIST_SUB+=	OLD="@comment " NEW=""
  EXTRA_PATCHES+=	${FILESDIR}/extra-clang
  .else
  XORG_VERSION=	1.7.7
 -XORG_REVISION=	7
 +XORG_REVISION=	8
  PLIST_SUB+=	OLD="" NEW="@comment "
  EXTRA_PATCHES+=	${FILESDIR}/extra-Xext-xace.c \
  		${FILESDIR}/extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c \
  		${FILESDIR}/extra-Xserver-os-xprintf.c \
  		${FILESDIR}/extra-include_eventstr.h \
  		${FILESDIR}/extra-os-utils.c \
 -		${FILESDIR}/extra-servermd.h
 +		${FILESDIR}/extra-servermd.h \
 +		${FILESDIR}/extra-dix_events.c
  .endif
  
  USE_BZIP2=	yes
 
 Copied: head/x11-servers/xorg-server/files/extra-dix_events.c (from r319054, head/x11-servers/xorg-server/files/extra-dix_events.c)
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/x11-servers/xorg-server/files/extra-dix_events.c	Wed Jun 26 20:00:39 2013	(r321811, copy of r319054, head/x11-servers/xorg-server/files/extra-dix_events.c)
 @@ -0,0 +1,89 @@
 +--- dix/events.c.orig	2010-05-04 02:47:57.000000000 +0200
 ++++ dix/events.c	2012-04-24 12:59:22.000000000 +0200
 +@@ -3440,7 +3440,6 @@ CheckPassiveGrabsOnWindow(
 +     {
 + 	DeviceIntPtr	gdev;
 + 	XkbSrvInfoPtr	xkbi = NULL;
 +-	Mask		mask = 0;
 + 
 + 	gdev= grab->modifierDevice;
 +         if (grab->grabtype == GRABTYPE_CORE)
 +@@ -3555,9 +3554,6 @@ CheckPassiveGrabsOnWindow(
 +                 }
 +                 xE = &core;
 +                 count = 1;
 +-                mask = grab->eventMask;
 +-                if (grab->ownerEvents)
 +-                    mask |= pWin->eventMask;
 +             } else if (match & XI2_MATCH)
 +             {
 +                 rc = EventToXI2((InternalEvent*)event, &xE);
 +@@ -3569,34 +3565,6 @@ CheckPassiveGrabsOnWindow(
 +                     continue;
 +                 }
 +                 count = 1;
 +-
 +-                /* FIXME: EventToXI2 returns NULL for enter events, so
 +-                 * dereferencing the event is bad. Internal event types are
 +-                 * aligned with core events, so the else clause is valid.
 +-                 * long-term we should use internal events for enter/focus
 +-                 * as well */
 +-                if (xE)
 +-                    mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
 +-                else if (event->type == XI_Enter || event->type == XI_FocusIn)
 +-                    mask = grab->xi2mask[device->id][event->type/8];
 +-
 +-                if (grab->ownerEvents && wOtherInputMasks(grab->window))
 +-                {
 +-                    InputClientsPtr icp =
 +-                        wOtherInputMasks(grab->window)->inputClients;
 +-
 +-                    while(icp)
 +-                    {
 +-                        if (rClient(icp) == rClient(grab))
 +-                        {
 +-                            int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
 +-                            mask |= icp->xi2mask[device->id][evtype/8];
 +-                            break;
 +-                        }
 +-
 +-                        icp = icp->next;
 +-                    }
 +-                }
 +             } else
 +             {
 +                 rc = EventToXI((InternalEvent*)event, &xE, &count);
 +@@ -3607,23 +3575,6 @@ CheckPassiveGrabsOnWindow(
 +                                 "(%d, %d).\n", device->name, event->type, rc);
 +                     continue;
 +                 }
 +-                mask = grab->eventMask;
 +-                if (grab->ownerEvents && wOtherInputMasks(grab->window))
 +-                {
 +-                    InputClientsPtr icp =
 +-                        wOtherInputMasks(grab->window)->inputClients;
 +-
 +-                    while(icp)
 +-                    {
 +-                        if (rClient(icp) == rClient(grab))
 +-                        {
 +-                            mask |= icp->mask[device->id];
 +-                            break;
 +-                        }
 +-
 +-                        icp = icp->next;
 +-                    }
 +-                }
 +             }
 + 
 + 	    (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
 +@@ -3632,7 +3583,8 @@ CheckPassiveGrabsOnWindow(
 +             {
 +                 FixUpEventFromWindow(device, xE, grab->window, None, TRUE);
 + 
 +-                TryClientEvents(rClient(grab), device, xE, count, mask,
 ++                TryClientEvents(rClient(grab), device, xE, count,
 ++                                       GetEventFilter(device, xE),
 +                                        GetEventFilter(device, xE), grab);
 +             }
 + 
 _______________________________________________
 svn-ports-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe at freebsd.org"
 


More information about the freebsd-x11 mailing list