Again colormap troubles... FIXED!!!

Stephane Paltani spaltani at head-cfa.harvard.edu
Mon Mar 4 18:55:36 CET 2002


Hi Olivier,

(Third attempts to send this message, but it's entirely my
fault; sorry for the two previous mails, Chuck!) 

I moved to xfce-dev, as I think it is more relevant there.

I made further investigations, and, while the symptoms are persisting,
the diagnosis is quite different:

It is not a Solaris-only bug; I could reproduce the problem on my
Linux laptop. It is not screen related , as I thought. The problem
appears as soon as I use the window menu, that I usually use to
call the "Send to..." function. This is why I got misled.

I put tracking info in the colormaps.c file (showing the name of the
functions that are executed); here is what I found:

InstallWindowColormaps      (one or two such entry when I enter in
InstallWindowColormaps       a new window)
InstallWindowColormaps
InstallWindowColormaps
InstallRootColormap    + -+ (Here I move a window)
InstallWindowColormaps    |
UninstallRootColormap  - -+
InstallWindowColormaps
InstallRootColormap    + -+ (Here I resize a window)
InstallWindowColormaps    |
UninstallRootColormap  - -+
InstallWindowColormaps
InstallWindowColormaps
InstallWindowColormaps
InstallRootColormap    + -+ (Here I "switchfunc" a window)
InstallWindowColormaps    |
InstallRootColormap    + -+
InstallRootColormap    + -+
UninstallRootColormap  - -+
InstallWindowColormaps
InstallWindowColormaps

As you can see, there are 3 calls to "InstallRootColormap" against
one to "UninstallRootColormap". It seems that these functions use
a push-pop structure, so it means that after this the root colormap
is never removed, and is applied to all the windows.

I found that the "Bool PopUpMenu (MenuRoot * menu, int x, int y)"
in menus.c does contain a "InstallRootColormap ();" call, but no
"UninstallRootColormap ();" call. I added this call just before the
return in this function (line 561), and it seems to be FIXED!
I tested this for a while today;  no crash, correct behaviour as far
as I can tell.

I certainly do not guarantee the results, but I hope this helps.

Stephane

Olivier Fourdan wrote:
> 
> Stephane,
> 
> Right now, I don't know. I need to investigate a little bit more based
> on your reports.
> 
> Colormap changes are driven by the X event loop.
> 
> Cheers,
> Olivier.
> 
> On Thu, 2002-02-28 at 23:50, Stephane Paltani wrote:
> > Hi again,
> >
> > Actually, I just noticed that I can block my color map simply
> > by opening a single application with private color map on
> > any screen but screen one. This should make even easier to
> > find the problem.
> >
> > Again, Olivier, if you could tell me in which part of the code
> > these things happen...
> >
> > Thanks,
> > Stephane
> > --
> > This mail is from the xfce mailing list at MoonGroup "Dot" Com.
> > Send unsubscribe xfce in the subject of an email to Listar at moongroup.com
> > to unsubscribe.
> >
> >
> --
> Olivier               <fourdan at xfce.org>            http://www.xfce.org
> -----------------------------------------------------------------------
> XFce is a lightweight  desktop  environment  for  various *NIX systems.
> Designed for productivity,  it loads  and  executes  applications fast,
> while conserving  system resources. XFce is all free software, released
> under GNU General Public License.    Available from http://www.xfce.org
> 
> --
> This mail is from the xfce mailing list at MoonGroup "Dot" Com.
> Send unsubscribe xfce in the subject of an email to Listar at moongroup.com
> to unsubscribe.



More information about the Xfce-dev mailing list