{ "id": "171563", "key": "TIMOB-25986", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" } ], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2018-06-21T23:18:21.000+0000", "created": "2018-04-24T14:36:01.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [ { "id": "19957", "description": "", "name": "Release 7.1.0", "archived": false, "released": true, "releaseDate": "2018-03-14" } ], "issuelinks": [ { "id": "56472", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "inwardIssue": { "id": "171567", "key": "TIMOB-25989", "fields": { "summary": "Windows: Unit specifier is ignored for font size", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "56583", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "171729", "key": "TIMOB-26086", "fields": { "summary": "Windows: Wrong event source after scaling with 2DMatrix", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "56597", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "171709", "key": "TIMOB-26072", "fields": { "summary": "Windows: Using a ScaleTransform Messes with Events", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2018-07-05T16:36:04.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "description": "Hi !\r\nUsing the current Ti SDK GA 7.1.0 Windows applications do not recognize widths nor heights set as pixels. Also the fonts seem to be hardcoded to DIP since they don't change when specifying \"18px\" as a value. See attached app folder of an alloy application that has 4 boxes, each with a different unit (px, dip, dp and pt)\r\n\r\n*Test Project*: \r\n [^app.zip] \r\n\r\nOur application requires us to have a 1920x1400 canvas to display all the elements needed. However if the user has a screen with 2736x1824 @ 200%, the actual dip that we can use are 1368x912 \r\n\r\nThe device is a surface 4 pro.", "attachment": [ { "id": "65081", "filename": "app.zip", "author": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "created": "2018-04-24T14:37:21.000+0000", "size": 22754, "mimeType": "application/zip" } ], "flagged": false, "summary": "Windows: Physical pixel as a unit in views and fonts is not working", "creator": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "subtasks": [], "reporter": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "environment": null, "closedSprints": [ { "id": 1045, "state": "closed", "name": "2018 Sprint 13 SDK", "startDate": "2018-06-17T20:47:13.621Z", "endDate": "2018-07-01T20:47:00.000Z", "completeDate": "2018-07-02T18:40:05.029Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "437172", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~kiguchi] is there any update on the investigation? ", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-26T22:29:00.000+0000", "updated": "2018-04-26T22:29:00.000+0000" }, { "id": "437173", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~vvazquezmontero] I fixed font size issue (TIMOB-25989) which is ready for code review. I and [~aislam] can't reproduce \"{{Windows applications do not recognize widths nor heights set as pixels}}\" issue. We might want to get more information on that, maybe screenshot (expected & actual) from customer would be appreciated.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-04-26T23:18:24.000+0000", "updated": "2018-04-26T23:18:24.000+0000" }, { "id": "437174", "author": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~kiguchi] thank you. I had to check as the emailed about this being high priority. I will ask them for screen shots of this behavior ", "updateAuthor": { "name": "vvazquezmontero", "key": "vvazquezmontero", "displayName": "Victor Vazquez Montero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-26T23:20:35.000+0000", "updated": "2018-04-26T23:20:35.000+0000" }, { "id": "437221", "author": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "body": "A way to reproduce this is to run the application in a high density screen (for example a Surface 4)\r\nSettings of the surface 4:\r\n2736x1824 @ 200% (these are the recommended settings)\r\ncreate an application and use the width as 2000px (not DIP)\r\n\r\nThe content should fit in the screen since the amount of physical pixels is higher than the screen size.\r\n\r\nCurrent result: The view does not fill the screen since Titanium does not recognize px, but continues to use DIP. \r\n\r\nCustomer don't think screenshots will help here since there is no way to show that the proper scaling is not being done. However, the steps above should be detailed enough to figure the issue out. \r\n\r\nIf you run the sample application that also helps, 100 DIP is not the same as 100 PX and Titanium is rendering them the same. That's a better example. \r\n", "updateAuthor": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "created": "2018-04-30T19:45:49.000+0000", "updated": "2018-04-30T19:45:49.000+0000" }, { "id": "437237", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~aislam] Thank you for the information, I think I understand the use cases. So this is interesting question because what Microsoft describes \"pixels\" is *_effective pixels_*, not actual physical pixels. Effective pixels (epx) are a virtual unit of measurement, and they're used to express layout dimensions and spacing, independent of screen density. (See [Introduction to UWP app design|https://docs.microsoft.com/en-us/windows/uwp/design/basics/design-and-ui-intro] for details). So when Microsoft uses the term \"pixels\" _it doesn't mean actual physical pixels_ and that's why Titanium is using this effective pixels when you use \"px\" unit specifier. I would think Windows UWP app should be designed based on this effective pixels because that's what platform recommends, but I also think that we could have \"_actual physical pixels_\" support in any way. I don't think it is a good idea to change the meaning of \"px\" that is currently used as \"effective pixels\" on Windows now because it introduces huge breaking change. Maybe we might want to introduce new unit specifier that describes actual physical pixels which is specially designed for Windows, let say {{\"ppx\"}} (physical pixels)?", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-05-01T00:04:05.000+0000", "updated": "2018-05-01T00:04:05.000+0000" }, { "id": "437272", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{quote}\r\n100 DIP is not the same as 100 PX and Titanium is rendering them the same\r\n{quote}\r\n\r\nI was not able to reproduce it. \r\n\r\nTest code:\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: 'green',\r\n});\r\n\r\nvar view1 = Ti.UI.createView({\r\n backgroundColor: 'red',\r\n top: 70, left: 10,\r\n width: '60px', height: '60px'\r\n});\r\nview1.add(Ti.UI.createLabel({ text: 'PX' }));\r\n\r\nvar view2 = Ti.UI.createView({\r\n backgroundColor: 'red',\r\n top: 130, left: 10,\r\n width: '60dp', height: '60dp'\r\n});\r\nview2.add(Ti.UI.createLabel({ text: 'DP' }));\r\n\r\nvar view3 = Ti.UI.createView({\r\n backgroundColor: 'red',\r\n top: 200, left: 10,\r\n width: '60dip', height: '60dip'\r\n});\r\nview3.add(Ti.UI.createLabel({ text: 'DIP' }));\r\n\r\nvar view4 = Ti.UI.createView({\r\n backgroundColor: 'red',\r\n top: 270, left: 10,\r\n width: '60pt', height: '60pt'\r\n});\r\nview4.add(Ti.UI.createLabel({ text: 'PT' }));\r\n\r\nwin.add(view1);\r\nwin.add(view2);\r\nwin.add(view3);\r\nwin.add(view4);\r\n\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-05-02T03:36:32.000+0000", "updated": "2018-05-02T03:36:32.000+0000" }, { "id": "437282", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Here's a workaround idea to deal with actual physical pixels; You might already know that you can use {{Ti.Platform.displayCaps.logicalDensityFactor}} to calculate physical pixels from effective pixels.\r\n\r\n{code}\r\nvar physical= effective * Ti.Platform.displayCaps.logicalDensityFactor;\r\n{code}\r\n", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-05-02T13:25:33.000+0000", "updated": "2018-05-02T13:25:33.000+0000" }, { "id": "437637", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "As we have a workaround to get size of physical pixels (see above), can we close this ticket with this workaround? Or do we still want to add new unit specifier (ppx?) to enable sizing with physical pixels?", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-05-15T09:19:16.000+0000", "updated": "2018-05-15T09:19:30.000+0000" }, { "id": "437801", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Just in case FYI, unit specifier support for {{Font.fontSize}} (px, pt, dp, dip) is done by TIMOB-25989, and scheduled to be available as of 7.3.0.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-05-21T01:33:36.000+0000", "updated": "2018-05-21T01:33:36.000+0000" }, { "id": "438189", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "https://github.com/appcelerator/titanium_mobile_windows/pull/1252", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-06-07T07:11:43.000+0000", "updated": "2018-06-07T07:11:43.000+0000" }, { "id": "438277", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Physical pixels support is now available on the nightly build, checkout the sdk {{7.4.0.v20180609133753}}.\r\n\r\n{code}\r\n appc ti sdk install --branch master 7.4.0.v20180609133753\r\n{code}\r\n\r\nNow new unit specifier {{ppx}} is added to support layout with physical pixels. Easiest way to enable it is to specify {{ppx}} for {{ti.ui.defaultunit}} in {{tiapp.xml}}. Check out the example in https://github.com/appcelerator/titanium_mobile_windows/pull/1252 for details.\r\n\r\n{code}\r\n ppx\r\n{code}\r\n\r\n\r\n", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-06-11T11:25:46.000+0000", "updated": "2018-06-11T11:25:46.000+0000" }, { "id": "438278", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-06-11T11:29:06.000+0000", "updated": "2018-06-11T11:29:06.000+0000" }, { "id": "438608", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I assume this ticket can be closed along with TIMOB-26072. Feel free to reopen if that's not the case.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-06-21T23:18:21.000+0000", "updated": "2018-06-21T23:18:21.000+0000" }, { "id": "439015", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-07-05T16:35:57.000+0000", "updated": "2018-07-05T16:35:57.000+0000" } ], "maxResults": 20, "total": 20, "startAt": 0 } } }