I have just wiped all my ports on a 9.1-STABLE system which was built about a month ago. My previous ports were all built around May 23rd. Due to some odd problems (FF21 crashed, libreoffice would not start, etc.) I decided to rebuild all my ports. Today I have built enough ports to be able to run Xorg and open-motif. About 260 ports are built without error. I launch a number of xterm windows in which I work with mouse and keyboard. Once I reach this minimum level of ports building, I can transition from virtual TTYs to xterm windows as I build out the rest of my ports (target number is between 800 and 900). I was shocked and stunned when I began to move my mouse and arrange my xterm windows, some iconified and some not, that my mouse cursor disappeared! Also, my three mouse buttons did not work. The keyboard continued to work, so I suspect some change in the xf86-input-mouse port from 1.7.1_1 to 1.19.0 has occurred. I was happily using 1.7.1_1 as recently as yesterday (before this upgrade effort) where my mouse worked flawlessly. BTW, the mouse works just fine in the virtual TTYs where I am now composing this message. I can provide more detail if needed, but at present I cannot use my system with the X Window System (Xorg and friends) at all. This limits me to using only command line (non-graphical) commands and applications which is limiting. After I wiped all my ports (including removing the "work" dirctories), I ran: # cd /usr/ports # svn update /usr/ports I am aware of a recent entry in /usr/ports/UPDATING about changes to the Xorg family of ports, but for normal (standard) use, it said I should not expect any problems. This is clearly not the case! In building Xorg today, I ran these commands: # cd /usr/ports/x11/xorg # make install In the past, for the past six or seven years, this has always worked for me. I follow this with a build of x11-toolkits/open-motif which has not changed version for some time. Therefor, I do not think open-motif is at fault today. I use mouse focus within Mwm, so you can understand what I mean when I say my system is not usable at present. Please advise! :-) Fix: ?? How-To-Repeat: using Xorg (xorg-7.7) and related ports, using open-motif-2.3.4 configure mouse focus (or pointer focus) in Mwm, configure this line in .mwmrc: Shift <Btn3Click> window f.minimize launch the X Windows system and create/invoke a couple of xterm windows, at this point the mouse should work, the pointer should be visible, etc. move the mouse pointer into an open and visible xterm window, hold the Shift key down on the keyboard, and click on the third mouse button at this point the mouse cursor/pointer disappears, all three mouse buttons are inactive and the only recourse is to exit the Xorg session using the Ctrl-Alt-BS sequence
According to FreeBSD-gnats-submit@FreeBSD.org on Fri, 06/07/13 at 06:40: > Thank you very much for your problem report. > It has the internal identification `www/179397'. > The individual assigned to look at your > report is: freebsd-www. > > You can access the state of your problem report at any time > via this link: > > http://www.freebsd.org/cgi/query-pr.cgi?pr=179397 > > >Category: www > >Responsible: freebsd-www > >Synopsis: I used mouse focus in open-motif and shift-click3 to iconify xterms, doing so causes cursor to disappear and mouse is unusable! > >Arrival-Date: Fri Jun 07 10:40:00 UTC 2013 I may be one of the few people left who use x11-toolkits/open-motif on the FreeBSD desktop, but be that as it may, there is a bug that needs to be fixed in the /usr/ports/x11-servers/xorg-server/files/ directory. In May 2013 this directory included this file: -rw-r--r-- 1 root wheel 3487 May 2 13:08 extra-dix_events.c I upgraded my ports on a nearly identical system on May 23 and again on June 5th of 2013: unix% ll /usr/ports/x11-servers/xorg-server/files/ total 40 drwxr-xr-x 2 root wheel 1024 Jun 5 11:20 . drwxr-xr-x 4 root wheel 512 Jun 5 12:06 .. -rw-r--r-- 1 root wheel 402 Jun 5 11:20 extra-Xserver-hw-xfree86-os-support-bsd-sparc64_video.c -rw-r--r-- 1 root wheel 350 Jun 5 11:20 extra-Xserver-os-xprintf.c -rw-r--r-- 1 root wheel 5536 May 23 12:19 extra-arch-ia64 -rw-r--r-- 1 root wheel 438 May 23 12:19 extra-arch-powerpc -rw-r--r-- 1 root wheel 2467 Jun 5 11:20 extra-clang -rw-r--r-- 1 root wheel 799 May 23 12:19 extra-include_eventstr.h -rw-r--r-- 1 root wheel 493 Jun 5 11:20 extra-new-arch-i386 -rw-r--r-- 1 root wheel 511 Jun 5 11:20 extra-old-arch-i386 -rw-r--r-- 1 root wheel 645 Jun 5 11:20 extra-os-utils.c -rw-r--r-- 1 root wheel 320 Jun 5 11:20 extra-servermd.h -rw-r--r-- 1 root wheel 384 May 23 12:19 patch-Xserver-hw-xfree86-common-xf86Config.c -rw-r--r-- 1 root wheel 469 May 23 12:19 patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c -rw-r--r-- 1 root wheel 471 May 23 12:19 patch-xorgconf.cpp -rw-r--r-- 1 root wheel 155 May 23 12:19 pkg-deinstall.in -rw-r--r-- 1 root wheel 551 May 23 12:19 pkg-install.in The lack of the extra-dix_events.c patch file caused using my three button USB mouse with x11-toolkits/open-motif to fail. Note: all ports were rebuilt on Jun 5th after running "svn update /usr/ports" from within /usr/ports. Once the mouse failed, all I could do was CTRL-ALT-BS and revert to virtual terminals - not a very good desktop substitute. It turns out that the last patch segment of extra-dix_events.c was omitted (along with the entire patch file itself): @@ -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); } The lack of this last patch segment was the cause of my problems with mwm (part of the x11-toolkits/open-motif port) but it did not impact other window managers such as FVWM which may be why this patch was overlooked. Regards, web... -- William Bulley Email: web@umich.edu 72 characters width template ----------------------------------------->|
Responsible Changed From-To: freebsd-www->freebsd-x11 recategorize and reassign.
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@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@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed I readded the patch, thanks for the report!