Forum Discussion

monkeysource's avatar
9 years ago

focusPercent not firing for merged cells

Hi,

I'm using a MarkupGrid and for each MarkupGrid XML Component I observe focusPercent to apply an effect as focus is gained on each item. This works great until I merge some cells. For any merged cells the focusPercent is not fired at all.

Say I have 2 columns and 2 rows, and 3 content items. 

I set item 1 to take up to cells as follows:

x=0
y=0
w=1
h=2

And I set Item 2:

x=1
y=0
w=1
h=1

And I set Item 3:


x=1
y=1
w=1
h=1

Now focusPercent will only fire on items 2 and 3. When I set the focus to item 1 I get no focusPercent events for that item at all.  

Any idea why?

Thanks,

Ryan

6 Replies

  • Hi,

    I'm still struggling to find a solution to this one. To me, it seems like a fundamental bug to the grid focus logic. But maybe I'm missing something. Therefore, I have created a sample Channel to highlight the bug which can be found here:

    grid-bug-focus-sample

    If you run the sample, you'll see it never calls showFocus for cell index 0. I.e. the observer for the focusPercent field is not fired for the item 0 which merges 2 cells. However, it is fired as expected for the other cells. 

    This is causing a major stumbling block to using the Grid.

    Thanks,

    Ryan
  • Valeriia's avatar
    Valeriia
    Channel Surfer
    I have the same problem( I use merging cells for hiding empty ones in the first row. Maybe there is another way to do it? I also tried to set numColumns the number of non-empty elements, but it leads to a cutoff of the poster image. Width change does not produce positive results.
  • "Valeriia" wrote:
    I have the same problem( I use merging cells for hiding empty ones in the first row. Maybe there is another way to do it? I also tried to set numColumns the number of non-empty elements, but it leads to a cutoff of the poster image. Width change does not produce positive results.

    for hiding cells I would first try setting the cell to "visible = false" or "opacity = 0"
  • Adjusting the  config.brs and creating a blank cell it now works. (also in main.brs (for i=0 to 3 step 1)

    function getGridTemplate() as Object
        if not m.gridTemplate = invalid
            return m.gridTemplate
        end if
        m.gridTemplate = [
            {
                id: 0,
                x: 0,
                y: 0,
                w: 1,
                h: 1
            },
            {
                id: 1,
                x: 1,
                y: 0,
                w: 1,
                h: 1
            },
            {
                id: 2,
                x: 1,
                y: 1,
                w: 1,
                h: 1
            },
            {
                id: 3,
                x: 0,
                y: 1,
                w: 0,
                h: 0
            }
        ]

        return m.gridTemplate
    end function

    and you can see in the pic all 3  cells are firing

    Cheers.
  • Valeriia's avatar
    Valeriia
    Channel Surfer
    "joetesta" wrote:
    "Valeriia" wrote:
    I have the same problem( I use merging cells for hiding empty ones in the first row. Maybe there is another way to do it? I also tried to set numColumns the number of non-empty elements, but it leads to a cutoff of the poster image. Width change does not produce positive results.

    for hiding cells I would first try setting the cell to "visible = false" or "opacity = 0"

    I can't do it because of the cell m.MarkupGrid.content.getChild(i) is invalid.
  • Valeriia's avatar
    Valeriia
    Channel Surfer
    "norcaljohnny" wrote:
    Adjusting the  config.brs and creating a blank cell it now works. (also in main.brs (for i=0 to 3 step 1)

    function getGridTemplate() as Object
        if not m.gridTemplate = invalid
            return m.gridTemplate
        end if
        m.gridTemplate = [
            {
                id: 0,
                x: 0,
                y: 0,
                w: 1,
                h: 1
            },
            {
                id: 1,
                x: 1,
                y: 0,
                w: 1,
                h: 1
            },
            {
                id: 2,
                x: 1,
                y: 1,
                w: 1,
                h: 1
            },
            {
                id: 3,
                x: 0,
                y: 1,
                w: 0,
                h: 0
            }
        ]

        return m.gridTemplate
    end function

    and you can see in the pic all 3  cells are firing

    Cheers.

    Thank you!!!