Search code examples
javascriptxulxulrunnerxbl

Xul element is not showing back after set it "hidden"


Updated

Here's an even simpler example showing the failure (it should hide the img after press "z" and show it after press "x"):

My test.xul:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="chrome://test/content/test.css" type="text/css"?>

<window id="desktop" width="640" height="480"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <image id="img" src="image.png" flex="1"/>

</window>

My test.css:

#desktop { -moz-binding: url("chrome://test/content/test.xml#desktop"); }

My test.xml:

<?xml version="1.0"?>

<bindings xmlns="http://www.mozilla.org/xbl"
         xmlns:xbl="http://www.mozilla.org/xbl"
         xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <!-- Desktop binding & Key handlers -->
    <binding id="desktop">
        <handlers>
            <handler event="keypress" key="Z" >
                <![CDATA[
                    var img = getElementById("img");
                    if(img)
                        img.hidden = true;
                ]]>
            </handler>
            <handler event="keypress" key="X" >
                <![CDATA[
                    var img = getElementById("img");
                    if(img)
                        img.hidden = false;
                ]]>
            </handler>
        </handlers>
    </binding>

</bindings>

It's not showing back after hidden, any idea how to fix it? Is it a xulrunner bug? I'm running it with xulrunnet 1.9.2.12.


Solution

  • It was a problem with Xulrunner 9.0.2.12, it works well with 9.0.2.10.