flex-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fréderic Cox <coxfrede...@gmail.com>
Subject Re: Datagrid Sorting Problem on Mobile
Date Fri, 02 Jun 2017 15:59:49 GMT
Ok I managed to find a workaround and got it working. What I did was
monkeypatch spark.components.gridClasses/GridColumnHeaderView and then
changed the code to

public static var dpiScaleFactor:Number = 1;

    public function containsMouseEvent(event:MouseEvent):Boolean

    {

        const eventStageX:Number = event.stageX;

        const eventStageY:Number = event.stageY;

        const origin:Point = localToGlobal(zeroPoint);


        origin.x += horizontalScrollPosition;

        if (layoutDirection == LayoutDirection.RTL)

            origin.x -= width;


        origin.y += verticalScrollPosition;



        return (eventStageX >= origin.x) && (eventStageY >= origin.y) &&

            (eventStageX < (origin.x + (width*dpiScaleFactor))) &&
(eventStageY < (origin.y + height));

    }


and in my application on preinitialize I do

GridColumnHeaderView.dpiScaleFactor = (runtimeDPI/applicationDPI);


This is working fine for me on the device now and fixes the issue, but I'm
sure someone with a deeper knowledge of the SDK can take a look for a
better fix?

On Fri, Jun 2, 2017 at 5:25 PM, Fréderic Cox <coxfrederic@gmail.com> wrote:

> bilbosax wrote
> >  So it is happening straight down the middle of the iPad.  SURELY, there
> > is nothing that I am doing to cause this, is there?
>
> Thanks for this info, it is very valuable. It got me to the cause of the
> problem. The problem is in spark.components.GridColumnHeaderGroup, in
> there
> is a function mouseEventHeaderView which is called to determine which
> column
> was touched. In there a function containsMouseEvent is called on the
> spark.components.gridClasses/GridColumnHeaderView. In that function we
> find
> the following code:
>
>  public function containsMouseEvent(event:MouseEvent):Boolean
>     {
>         const eventStageX:Number = event.stageX;
>         const eventStageY:Number = event.stageY;
>         const origin:Point = localToGlobal(zeroPoint);
>
>         origin.x += horizontalScrollPosition;
>         if (layoutDirection == LayoutDirection.RTL)
>             origin.x -= width;
>
>         origin.y += verticalScrollPosition;
>
>         return (eventStageX >= origin.x) && (eventStageY >= origin.y) &&
>             (eventStageX < (origin.x + width)) && (eventStageY < (origin.y
> +
> height));
>     }
>
> The problem is that width is half the size as it should be. Now I am trying
> to find the cause why this is an incorrect value and hope I find a fix. Any
> help appreciated!
>
>
>
>
>
> --
> View this message in context: http://apache-flex-users.
> 2333346.n4.nabble.com/Datagrid-Sorting-Problem-on-
> Mobile-tp13844p15280.html
> Sent from the Apache Flex Users mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message