Bug 229350

Summary: Motif pull-down menus don't draw correctly with Xnest
Product: [Fedora] Fedora Reporter: Esteban Xandri <esteban.xandri>
Component: xorg-x11-serverAssignee: Adam Jackson <ajax>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mcepl
Target Milestone: ---Keywords: Patch
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-09 23:03:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Esteban Xandri 2007-02-20 15:32:51 UTC
Description of problem:
Motif pull-down menus don't draw correctly with Xnest 

Version-Release number of selected component (if applicable):
xorg-x11-server-Xnest-1.1.1-47.4

How reproducible:
Always

Steps to Reproduce:
1.Xnest -pn :1 &
2.twm -display :1 (or any other window manager like xfwm, etc.)
3.run a motif app
  
Actual results:
After selecting a pull-down menu in a motif app, not all the expected menu 
items are visible. After several clicks on expected list items locations in the 
menus, some of them appear. 

Expected results:
Proper display of all menu items in pull-down menus

Additional info:
After a google search I found that this bug is also reported in OpenSolaris 
bugs database with Id 6366490 
(http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6366490)
In this case a patch for this bug has recently been released
I also tested the same motif app with vncserver and vncviewer and runs fine.

Comment 1 Matěj Cepl 2007-02-28 08:17:52 UTC
*** Bug 229354 has been marked as a duplicate of this bug. ***

Comment 2 Matěj Cepl 2007-03-20 19:44:15 UTC
This is the reply I got from Alan Coopersmith when asked about the Solaris
solution to this bug:

Unfortunately, it was fixed in the Xnest built out of our Xsun tree,
which isn't open source.   The Xnest part is fortunately unencumbered
and the fix was small:

  --- xc/programs/Xserver/hw/xnest/Events.c     2004-10-18 15:18:34.025880000 -0700
  +++ xc/programs/Xserver/hw/xnest/Events.c     2006-05-02 17:34:58.127524000 -0700
  @@ -81,7 +81,7 @@
     while (XCheckIfEvent(xnestDisplay, &X, xnestExposurePredicate, NULL)) {
       pWin = xnestWindowPtr(X.xexpose.window);

  -    if (pWin) {
  +    if (pWin && X.xexpose.width  && X.xexpose.height) {
         Box.x1 = pWin->drawable.x + wBorderWidth(pWin) + X.xexpose.x;
         Box.y1 = pWin->drawable.y + wBorderWidth(pWin) + X.xexpose.y;
         Box.x2 = Box.x1 + X.xexpose.width;
  @@ -89,7 +89,7 @@

         REGION_INIT(pWin->drawable.pScreen, &Rgn, &Box, 1);

  -      miWindowExposures(pWin, &Rgn, NullRegion);
  +      miSendExposures(pWin, &Rgn, Box.x2, Box.y2);
       }
     }
   }

I've cc'ed the engineer who worked on it, since he could answer any
questions on why this works better than I can.

        -Alan Coopersmith-           alan.coopersmith
         Sun Microsystems, Inc. - X Window System Engineering


Comment 3 Adam Jackson 2007-04-09 23:03:10 UTC
Will be fixed in 1.2.99.905-2.fc7