AlternateRoot started work incorrectly after upgrade to version 0.21

Hi,

I’ve just upgraded to version 0.21 (on OS X) and the code with AlternateRoot is broken. I show a Settings page with AlternateRoot. When the page is opened it can either be closed by clicking the close image or the Save button. After the upgrade the ‘clicks’ are not working: it seems like they are forwarded to the ParentNode! In the following sample:

  1. When you click the cog wheel image on the title, Settings Dialog will appear.
  2. But clicking the close image or save button won’t work (debug_log outputs nothing)
  3. In iPhone 6 mode of local preview, the Save button of Settings dialog and the Instructions text of MainView overlaps. So when you click the overlapping area you can see from the debug_log that actually Instructions Text is clicked.

MainView.ux

<App>
    <JavaScript>
    exports.instClicked = function() {
      debug_log('Instructions text is clicked!');
    };
    </JavaScript>

    <ClientPanel>
        <!-- Place on top of all others, serves as root for modals -->
        <Panel ux:Name="FullWindow" Layer="Overlay"/>
        <ResourceObject Key="FullWindow" Value="FullWindow"/>

        <Page ux:Class="PageWithTitle" ux:Name="self" HitTestMode="LocalBoundsAndChildren">
            <DockLayout />
            <float4 ux:Property="HeaderColor" />
            <float4 ux:Property="HeaderTextColor" />
            <string ux:Property="Instructions" />
            <StackPanel Dock="Top" Orientation="Horizontal" ContentAlignment="Center" Color="{Property self.HeaderColor}" Height="45">
                <Text Value="{Property self.Title}" FontSize="22"
                      Alignment="VerticalCenter" TextColor="{Property self.HeaderTextColor}"/>
          <SettingsDialog Alignment="CenterRight" />
            </StackPanel>
            <Panel Height="10%" Color="#0008" Alignment="Bottom" Clicked="{instClicked}">
                <WhileActive Invert="true" Threshold="0.4">
                    <Move RelativeTo="Size" Y="1" Duration="0.4" Easing="CircularInOut"/>
                </WhileActive>
                <Text Value="{Property self.Instructions}" Margin="20" TextColor="#fff" Alignment="Center" />
            </Panel>
        </Page>

        <PageWithTitle Title="Basic animation" HeaderColor="#595FFF" HeaderTextColor="#fff"
                       Color="#FEFDFC" Instructions="Sample Instructions">
        </PageWithTitle>
    </ClientPanel>
</App>

SettingsDialog.ux

<DockPanel ux:Class="SettingsDialog">

  <JavaScript>
    exports.save = function() {
      debug_log('Save button is clicked!');
    };

    exports.clicked = function() {
      debug_log('Close button is clicked!');
    }
  </JavaScript>

  <FileImageSource File="./Assets/ic_close_white_2x.png" ux:Global="closeImage" />
  <SolidColor Color="#5096E9" ux:Global="TopBarColor" />
  <Text ux:Class="TopBarTitleText" FontSize="20" Alignment="VerticalCenter" TextAlignment="Center" 
    TextColor="#fff" />

  <Image Row="1" File="./Assets/cog1_white.png" Width="25" Height="25" Margin="10">
    <Clicked>
      <Set settingsDlg.IsEnabled="true"/>
    </Clicked>
  </Image>  

  <AlternateRoot ux:Name="settingsDlg" IsEnabled="false" ParentNode="{Resource FullWindow}">

    <DockPanel Margin="20,40">
      <Rectangle Fill="Gray" CornerRadius="8" Layer="Background"  />

      <Panel Dock="Top" Height="40">
        <Rectangle CornerRadius="4,4,0,0" Layer="Background" Fill="{Resource TopBarColor}"/>
          <Grid Columns="1*, 8*, 1*">
            <TopBarTitleText Column="1" Value="Settings" Alignment="Center" />
            <Image ux:Name="imgCloseDlg" Column="2" Margin="7,5,5,5" Source="closeImage" 
              Width="30" Height="30">
              <Clicked>
                <Callback Handler="{clicked}" />
                <Set settingsDlg.IsEnabled="false"/>
              </Clicked>
            </Image>
          </Grid>
      </Panel>

      <Button Dock="Bottom" Height="50">
        <Panel ux:Template="GraphicsAppearance" HitTestMode="LocalBounds">
          <Text Value="Save" TextColor="#FFF" Alignment="Center" TextAlignment="Center" Margin="10" />
          <Rectangle CornerRadius="0,0,4,4" Layer="Background" Fill="#2FBE68"/>
        </Panel>
        <Clicked>
          <Callback Handler="{save}" />
          <Set settingsDlg.IsEnabled="false"/>
        </Clicked>
      </Button>

    </DockPanel>
  </AlternateRoot> 

</DockPanel>

Here is the sample app:

Thanks in advance,

Ipek!

Hi,

It’s been 4 days (including the weekend so may be I should say 2 days) and there is no reply to this issue. May be I’ve gotton pretty used getting replies immediately :slight_smile: and that’s why I’m being a little bit hasty.

The thing is there are two other issues that I’m waiting reply for and since the help documents, vidoes and fusetools team are the only resources that can help us when we get no response from you guys, we feel like we are left out to dry!

There is no one else out there to help us so please don’t leave us without a reply :slight_smile:

Hey there,

Being used to getting immediate response can indeed be a luxury. :slight_smile: Obviously that won’t always be the case, especially for more involved issues (and you’re right: we usually don’t work during weekends :slight_smile:

I can’t personally help you with this issue but I’ll see if there’s anyone that has time to look at it. If nobody from the Fuse team is available to respond, there’s always the active Slack community as well which very often comes to the rescue.

Hi Bent,

Thanks for the reply. I knew that was a luxury which wouldn’t last forever :slight_smile:

I try to make my issues as helpfull as possible (in my power) in order to not to waste your time (always try to prepare a working sample either as an attachment or in formatted text, state the version and platform, etc.). And preparing an issue takes really time :frowning: Therefore we really need at least a response about it’s state so that we either can move on to a different solution or wait for further development.

I’ll check out the Slack community from now on but I don’t know if it can be helpfull to ask and seek for help for detailed/complicated problems. But still, I’ll check it out and try :slight_smile:

Thanks again

I can confirm there is a problem with handling the clicks in your setting dialog now. I’m looking into it now.

Thanks!

I’ve found the problem and a fix will be in an upcoming release.

I have a temporary workaround as well. Add this Move to your Clicked handler:

    <Clicked>
      <Set settingsDlg.IsEnabled="true"/>
      <Move Target="{Resource FullWindow}" X="0.01"/>
    </Clicked>

This refreshes a hit bounds cache on the window, which is responsible for the defect.

The workaround worked :slight_smile:

Thanks so much!