Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Scroll bars not working when showCustomScrollbars is set to false

    SmartClient_v90p_2013-09-20_LGPL

    Browser: Chrome 30.0.1599.101 m (I didn't explicit test on Firefox, but the problem doesn't seem to be reproducible on IE)

    Please find the code to reproduce the problem below:

    The steps to reproduce are the following:
    1. After the TabSet is drawn, use the scroll bar for the first tab and check it is working;
    2. Go to the other tab and also check that the scroll bar is working;
    3. Go back to the previous tab and try to use the scroll bar.

    As I could see, the ListGrid_Body DIV from the second that is disturbing the operation from the fist tab. It is somehow in front of the other tab scroll bar, you can even change the scroll from the other tab while it is not visible!

    Note that showCustomScrollbars must be set to false in order to reproduce this problem. When this is set to true, the problem is not reproducible.

    I know that setting showCustomScrollbars to true fix the problem, but in my project, this property must be set to false.

    Code:
    isc.Canvas.addProperties({ showCustomScrollbars:false });
    
    var listGrid = isc.ListGrid.create({
        autoDraw: false,
        fields: [
            {name: "itemName", title: "Item", type: "text"},
            {name: "unitCost", title: "Unit Cost", type: "number"}
        ],
        data: [
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
            {itemName: "Dr. Grip Pens - Black", unitCost: 4.99}
        ]
    });
    
    
    var listGrid2 = isc.ListGrid.create({
        autoDraw: false,
        fields: [
            {name: "itemName", title: "Item", type: "text"},
            {name: "unitCost", title: "Unit Cost", type: "number"}
        ],
        data: [
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330},
            {itemName: "17\" LCD Monitor", unitCost: 330}
        ]
    });
    
    var tabset = isc.TabSet.create({
        top:40, width:400, height:250,
        tabs:[
            { title:"Tab1",
              pane:listGrid
            },
            { title:"Tab2",
              pane:listGrid2
            }
        ]
    });

    #2
    From your description, clearly there's some kind of native z-index problem here, but we're not reproducing this issue on our end.
    A few questions:
    - Which OS are you using?
    - Are you able to reproduce this on multiple machines?
    - Are you running this test code in the Feature Explorer, or are you creating a standalone HTML file with this content and testing that?

    Thanks
    Isomorphic Software

    Comment


      #3
      Yes, this seems to be some kind of z-index problem. I can't say if this is just a browser problem.

      I'm running Windows 7. And I can also reproduce this problem in other machines (also running Windows 7, I don't know about other OS's).

      I found this problem in my application, which is a standalone HTML file running a ListGrid inside a tabSet.

      The code included in this post is similar to my code, and you can reproduce the problem in the Feature Explorer (http://smartclient.com/docs/9.0/a/system/reference/SmartClient_Explorer.html#tabsAddAndRemove).

      Comment


        #4
        We've reproduced this now. It's a bug in Chrome, a very weird one that is not reproducible if you are running Windows inside a virtual machine.

        We don't yet have a workaround, and it may be that there is no real workaround other than filing a bug against Chrome and waiting for a browser-level fix.

        We'll continue to look at this, however, we'd recommend reconsidering the showCustomScrollbars:false setting. This is not the only bug that our custom scrollbars fix.

        Comment


          #5
          A quick follow up:
          We've found an easy-to-reproduce manifestation of this bug which causes the problem to occur in all versions of Chrome (not just native Windows/Chrome), which we have reported. You can track their progress on this here

          In the meantime we have a workaround: If you explicitly call "sendToBack" on your pane when it is deselected (and hidden), you can avoid this issue:

          Code:
          isc.Canvas.addProperties({ showCustomScrollbars:false });
          
          var listGrid = isc.ListGrid.create({
              autoDraw: false,
              fields: [
                  {name: "itemName", title: "Item", type: "text"},
                  {name: "unitCost", title: "Unit Cost", type: "number"}
              ],
              data: [
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99},
                  {itemName: "Dr. Grip Pens - Black", unitCost: 4.99}
              ]
          });
          
          
          var listGrid2 = isc.ListGrid.create({
              autoDraw: false,
              fields: [
                  {name: "itemName", title: "Item", type: "text"},
                  {name: "unitCost", title: "Unit Cost", type: "number"}
              ],
              data: [
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330},
                  {itemName: "17\" LCD Monitor", unitCost: 330}
              ]
          });
          
          var tabset = isc.TabSet.create({
              top:40, width:400, height:250,
              tabDeselected:function (tabNum, tabPane) {
                  if (tabPane != null) tabPane.sendToBack();
              },
              tabs:[
                  { title:"Tab1",
                    pane:listGrid
                  },
                  { title:"Tab2",
                    pane:listGrid2
                  }
              ]
          });

          Comment

          Working...
          X