i had a look @ http://quality.runrev.com/ but i didn't find any about.
therefore it could be a bug or i missed something.
surely, it seems quite strange to me nobody got these bugs yet. so, probably i missed something…
create a browser instance setting its rect like (for example) the rect of a hidden img, i.e. = the rect of img "browserimage" (following LC example stack).
open the browser: good, it's where you expected it to be, of course.
now set the fullscreenmode to "letterbox" and switch to fullscreen. due to the stack rect aspect ratio not matching that one of your screen (i.e 4/3 on a 16/9 display) you get blank spaces on left & right side (or top & bottom, depending on aspect ratio).
now open the browser again: ops! it is where it should be with fullscreen=false (and it is smaller, consequently): the rect is still the "real" one, despite the fullscreen "true".
that is a bug, in my opinion… isn't it?
[tested on osx, i had no time to test it on windows]
to fix that "bug" i had to write a function to return relative rect coordinates, based on the screenrect/stack rect ratio.
create a scroller setting its rect & content rect as usual (i.e. rect = the rect of field, content rect = 0,0, the formattedwidth of field, the formattedheight of field).
run the app. if the stack aspect ratio matches the screen size, no problem. but that is quite impossible, due to the multitude of different screen sizes on the android side (one of the main reason LC guys implemented the fullscreen properties, after all…).
so, if it's not the lucky case, and fullscreenmode is letterbox, then -again- the scroller behavior is wrong: scrollerDidScroll has wrong parameter passed (the real pOffsetX - the left blank space, the real pOffsetY - the top blank space: yes, negative numbers at start!) and you can't rightly reach the end of the content rect, this way.
again: that is a bug, in my opinion… isn't it?
[the above example is about fields, but the same occurs with groups and datagrids as well. tested on iOS and android]
to fix this one i had to write a function to get the blank spaces size and "move" the contentRect according to.
maybe i missed something, and i'd be glad to know more about.
whilst, if i'm right i'll post these bugs on http://quality.runrev.com/
appendix: the code i'm using as a fix:
Code: Select all
on openBrowser […] mobileControlSet sBrowserId, "rect", getRect(the rect of image "browserimage") […] end openBrowser on createController […] put getGap() into tGap mobileControlSet sScrollerId, "contentRect", "0,0," & (the dgFormattedWidth of me)+tGap["W"] & "," & (the dgFormattedHeight of me)+tGap["H"] //mobileControlSet sScrollerId, "contentRect", (0,0,the formattedWidth of me+tGap["W"),the formattedHeight of me+tGap["H") //for field or group […] end createController function getRect tRect if the fullscreen of this stack then put item 3 of tRect - item 1 of tRect into tWidth put item 4 of tRect - item 2 of tRect into tHeight put item 3 of the screenRect into tRight put item 4 of the screenRect into tBottom put getGap() into tGap #the new rect put (tRight - trunc(tWidth*tGap["ratio"])-tGap["W"]) & "," & (tBottom- trunc(tHeight*tGap["ratio"])-tGap["H"]) & "," & tRight-tGap["W"] & "," & tBottom-tGap["H"] into tRect end if return tRect end getRect function getGap put 0 into tGapW put 0 into tGapH put 1 into tRatio if the fullscreenmode of this stack is "letterbox" then put item 1 of the screenRect into tLeft put item 2 of the screenRect into tTop put item 3 of the screenRect into tRight put item 4 of the screenRect into tBottom put (tRight-tLeft) into tWidthS put (tBottom-tTop) into tHeightS put (tWidthS / the width of this stack) into tRatioX put (tHeightS / the height of this stack) into tRatioY put min(tRatioX,tRatioY) into tRatio //needed to calculate the object's new width&height. #and the following to get rid of the blank spaces put (tWidthS - the width of this stack*tRatio)/2 Into tGapW put (tHeightS - the height of this stack*tRatio)/2 Into tGapH end if put tGapW into tGap["W"] put tGapH into tGap["H"] put tRatio into tGap["ratio"] return tGap end getGap