{"action":"created","comment":{"url":"https://api.github.com/repos/keymanapp/keyman/pulls/comments/240445484","pull_request_review_id":183477729,"id":240445484,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDQ0NTQ4NA==","diff_hunk":"@@ -71,18 +90,37 @@ namespace com.keyman {\n         var tId=((spec['text'] == '*Tab*' && spec.layer == 'shift') ? '*TabLeft*' : spec['text']);\n \n         // Transforms our *___* special key codes into their corresponding PUA character codes for keyboard display.\n-        t.innerHTML=this.renameSpecialKey(tId);\n+        keyText=this.renameSpecialKey(tId);\n       }\n \n       //Override font spec if set for this key in the layout\n       ts.fontSize=(<KeymanBase>window['keyman']).osk.fontSize;     //Build 344, KMEW-90\n       if(typeof spec['font'] == 'string' && spec['font'] != '') {\n         ts.fontFamily=spec['font'];\n       }\n+\n       if(typeof spec['fontsize'] == 'string' && spec['fontsize'] != 0) {\n         ts.fontSize=spec['fontsize'];\n       }\n \n+      let keyboardManager = (<KeymanBase>window['keyman']).keyboardManager;\n+      var font = keyboardManager.getFont();\n+\n+      // Check the key's display width - does the key visualize well?\n+      let width=OSKKey.getTextWidth(keyText, font);\n+      if(width == 0 && keyText != '' && keyText != '\\xa0') {\n+        // Add the Unicode 'empty circle' as a base support for needy diacritics.\n+        keyText = '\\u25cc' + keyText;","path":"web/source/kmwosk.ts","position":73,"original_position":73,"commit_id":"6f672c29ac1bc3d140295c5a0045c1fb6b7fa202","original_commit_id":"6f672c29ac1bc3d140295c5a0045c1fb6b7fa202","user":{"login":"mcdurdin","id":4498365,"node_id":"MDQ6VXNlcjQ0OTgzNjU=","avatar_url":"https://avatars1.githubusercontent.com/u/4498365?v=4","gravatar_id":"","url":"https://api.github.com/users/mcdurdin","html_url":"https://github.com/mcdurdin","followers_url":"https://api.github.com/users/mcdurdin/followers","following_url":"https://api.github.com/users/mcdurdin/following{/other_user}","gists_url":"https://api.github.com/users/mcdurdin/gists{/gist_id}","starred_url":"https://api.github.com/users/mcdurdin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcdurdin/subscriptions","organizations_url":"https://api.github.com/users/mcdurdin/orgs","repos_url":"https://api.github.com/users/mcdurdin/repos","events_url":"https://api.github.com/users/mcdurdin/events{/privacy}","received_events_url":"https://api.github.com/users/mcdurdin/received_events","type":"User","site_admin":false},"body":"Yeah, the problem is even deeper -- sometimes it is font-specific as well ...  For example, try doing this with a Khmer vowel, first using a Windows font then with a KhmerOS font (from memory).","created_at":"2018-12-11T01:32:45Z","updated_at":"2018-12-11T01:32:45Z","html_url":"https://github.com/keymanapp/keyman/pull/1407#discussion_r240445484","pull_request_url":"https://api.github.com/repos/keymanapp/keyman/pulls/1407","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/comments/240445484"},"html":{"href":"https://github.com/keymanapp/keyman/pull/1407#discussion_r240445484"},"pull_request":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/1407"}},"in_reply_to_id":240050151},"pull_request":{"url":"https://api.github.com/repos/keymanapp/keyman/pulls/1407","id":236780296,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2NzgwMjk2","html_url":"https://github.com/keymanapp/keyman/pull/1407","diff_url":"https://github.com/keymanapp/keyman/pull/1407.diff","patch_url":"https://github.com/keymanapp/keyman/pull/1407.patch","issue_url":"https://api.github.com/repos/keymanapp/keyman/issues/1407","number":1407,"state":"open","locked":false,"title":"[Web, iOS, Android] Undisplayed diacritic fix","user":{"login":"jahorton","id":25213402,"node_id":"MDQ6VXNlcjI1MjEzNDAy","avatar_url":"https://avatars3.githubusercontent.com/u/25213402?v=4","gravatar_id":"","url":"https://api.github.com/users/jahorton","html_url":"https://github.com/jahorton","followers_url":"https://api.github.com/users/jahorton/followers","following_url":"https://api.github.com/users/jahorton/following{/other_user}","gists_url":"https://api.github.com/users/jahorton/gists{/gist_id}","starred_url":"https://api.github.com/users/jahorton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jahorton/subscriptions","organizations_url":"https://api.github.com/users/jahorton/orgs","repos_url":"https://api.github.com/users/jahorton/repos","events_url":"https://api.github.com/users/jahorton/events{/privacy}","received_events_url":"https://api.github.com/users/jahorton/received_events","type":"User","site_admin":false},"body":"Addresses the web and mobile app components of #1070.","created_at":"2018-12-07T07:44:13Z","updated_at":"2018-12-11T01:32:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f82bc19e50dac78a7886f27c8620554ee1a68ef1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":648605709,"node_id":"MDU6TGFiZWw2NDg2MDU3MDk=","url":"https://api.github.com/repos/keymanapp/keyman/labels/android","name":"android","color":"A4C639","default":false},{"id":143763452,"node_id":"MDU6TGFiZWwxNDM3NjM0NTI=","url":"https://api.github.com/repos/keymanapp/keyman/labels/bug","name":"bug","color":"fc2929","default":true},{"id":648606224,"node_id":"MDU6TGFiZWw2NDg2MDYyMjQ=","url":"https://api.github.com/repos/keymanapp/keyman/labels/ios","name":"ios","color":"bfdadc","default":false},{"id":613459509,"node_id":"MDU6TGFiZWw2MTM0NTk1MDk=","url":"https://api.github.com/repos/keymanapp/keyman/labels/web","name":"web","color":"d4c5f9","default":false}],"milestone":{"url":"https://api.github.com/repos/keymanapp/keyman/milestones/43","html_url":"https://github.com/keymanapp/keyman/milestone/43","labels_url":"https://api.github.com/repos/keymanapp/keyman/milestones/43/labels","id":3860513,"node_id":"MDk6TWlsZXN0b25lMzg2MDUxMw==","number":43,"title":"P4S12","description":"","creator":{"login":"mcdurdin","id":4498365,"node_id":"MDQ6VXNlcjQ0OTgzNjU=","avatar_url":"https://avatars1.githubusercontent.com/u/4498365?v=4","gravatar_id":"","url":"https://api.github.com/users/mcdurdin","html_url":"https://github.com/mcdurdin","followers_url":"https://api.github.com/users/mcdurdin/followers","following_url":"https://api.github.com/users/mcdurdin/following{/other_user}","gists_url":"https://api.github.com/users/mcdurdin/gists{/gist_id}","starred_url":"https://api.github.com/users/mcdurdin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcdurdin/subscriptions","organizations_url":"https://api.github.com/users/mcdurdin/orgs","repos_url":"https://api.github.com/users/mcdurdin/repos","events_url":"https://api.github.com/users/mcdurdin/events{/privacy}","received_events_url":"https://api.github.com/users/mcdurdin/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":62,"state":"open","created_at":"2018-11-30T08:28:50Z","updated_at":"2018-12-11T01:24:57Z","due_on":"2018-12-21T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/keymanapp/keyman/pulls/1407/commits","review_comments_url":"https://api.github.com/repos/keymanapp/keyman/pulls/1407/comments","review_comment_url":"https://api.github.com/repos/keymanapp/keyman/pulls/comments{/number}","comments_url":"https://api.github.com/repos/keymanapp/keyman/issues/1407/comments","statuses_url":"https://api.github.com/repos/keymanapp/keyman/statuses/6f672c29ac1bc3d140295c5a0045c1fb6b7fa202","head":{"label":"keymanapp:web-1070-diacritic-display","ref":"web-1070-diacritic-display","sha":"6f672c29ac1bc3d140295c5a0045c1fb6b7fa202","user":{"login":"keymanapp","id":12402926,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDAyOTI2","avatar_url":"https://avatars1.githubusercontent.com/u/12402926?v=4","gravatar_id":"","url":"https://api.github.com/users/keymanapp","html_url":"https://github.com/keymanapp","followers_url":"https://api.github.com/users/keymanapp/followers","following_url":"https://api.github.com/users/keymanapp/following{/other_user}","gists_url":"https://api.github.com/users/keymanapp/gists{/gist_id}","starred_url":"https://api.github.com/users/keymanapp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keymanapp/subscriptions","organizations_url":"https://api.github.com/users/keymanapp/orgs","repos_url":"https://api.github.com/users/keymanapp/repos","events_url":"https://api.github.com/users/keymanapp/events{/privacy}","received_events_url":"https://api.github.com/users/keymanapp/received_events","type":"Organization","site_admin":false},"repo":{"id":26063183,"node_id":"MDEwOlJlcG9zaXRvcnkyNjA2MzE4Mw==","name":"keyman","full_name":"keymanapp/keyman","private":false,"owner":{"login":"keymanapp","id":12402926,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDAyOTI2","avatar_url":"https://avatars1.githubusercontent.com/u/12402926?v=4","gravatar_id":"","url":"https://api.github.com/users/keymanapp","html_url":"https://github.com/keymanapp","followers_url":"https://api.github.com/users/keymanapp/followers","following_url":"https://api.github.com/users/keymanapp/following{/other_user}","gists_url":"https://api.github.com/users/keymanapp/gists{/gist_id}","starred_url":"https://api.github.com/users/keymanapp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keymanapp/subscriptions","organizations_url":"https://api.github.com/users/keymanapp/orgs","repos_url":"https://api.github.com/users/keymanapp/repos","events_url":"https://api.github.com/users/keymanapp/events{/privacy}","received_events_url":"https://api.github.com/users/keymanapp/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/keymanapp/keyman","description":"Keyman cross platform input methods","fork":false,"url":"https://api.github.com/repos/keymanapp/keyman","forks_url":"https://api.github.com/repos/keymanapp/keyman/forks","keys_url":"https://api.github.com/repos/keymanapp/keyman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/keymanapp/keyman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/keymanapp/keyman/teams","hooks_url":"https://api.github.com/repos/keymanapp/keyman/hooks","issue_events_url":"https://api.github.com/repos/keymanapp/keyman/issues/events{/number}","events_url":"https://api.github.com/repos/keymanapp/keyman/events","assignees_url":"https://api.github.com/repos/keymanapp/keyman/assignees{/user}","branches_url":"https://api.github.com/repos/keymanapp/keyman/branches{/branch}","tags_url":"https://api.github.com/repos/keymanapp/keyman/tags","blobs_url":"https://api.github.com/repos/keymanapp/keyman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/keymanapp/keyman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/keymanapp/keyman/git/refs{/sha}","trees_url":"https://api.github.com/repos/keymanapp/keyman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/keymanapp/keyman/statuses/{sha}","languages_url":"https://api.github.com/repos/keymanapp/keyman/languages","stargazers_url":"https://api.github.com/repos/keymanapp/keyman/stargazers","contributors_url":"https://api.github.com/repos/keymanapp/keyman/contributors","subscribers_url":"https://api.github.com/repos/keymanapp/keyman/subscribers","subscription_url":"https://api.github.com/repos/keymanapp/keyman/subscription","commits_url":"https://api.github.com/repos/keymanapp/keyman/commits{/sha}","git_commits_url":"https://api.github.com/repos/keymanapp/keyman/git/commits{/sha}","comments_url":"https://api.github.com/repos/keymanapp/keyman/comments{/number}","issue_comment_url":"https://api.github.com/repos/keymanapp/keyman/issues/comments{/number}","contents_url":"https://api.github.com/repos/keymanapp/keyman/contents/{+path}","compare_url":"https://api.github.com/repos/keymanapp/keyman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/keymanapp/keyman/merges","archive_url":"https://api.github.com/repos/keymanapp/keyman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/keymanapp/keyman/downloads","issues_url":"https://api.github.com/repos/keymanapp/keyman/issues{/number}","pulls_url":"https://api.github.com/repos/keymanapp/keyman/pulls{/number}","milestones_url":"https://api.github.com/repos/keymanapp/keyman/milestones{/number}","notifications_url":"https://api.github.com/repos/keymanapp/keyman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/keymanapp/keyman/labels{/name}","releases_url":"https://api.github.com/repos/keymanapp/keyman/releases{/id}","deployments_url":"https://api.github.com/repos/keymanapp/keyman/deployments","created_at":"2014-11-01T21:01:44Z","updated_at":"2018-12-11T01:25:00Z","pushed_at":"2018-12-11T01:24:59Z","git_url":"git://github.com/keymanapp/keyman.git","ssh_url":"git@github.com:keymanapp/keyman.git","clone_url":"https://github.com/keymanapp/keyman.git","svn_url":"https://github.com/keymanapp/keyman","homepage":"https://keyman.com/","size":183775,"stargazers_count":67,"watchers_count":67,"language":"Pascal","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":26,"mirror_url":null,"archived":false,"open_issues_count":240,"license":null,"forks":26,"open_issues":240,"watchers":67,"default_branch":"master"}},"base":{"label":"keymanapp:web-osk-key-refactor","ref":"web-osk-key-refactor","sha":"fc44f1b708d6ec7d8d44d1d08ced3e397c880739","user":{"login":"keymanapp","id":12402926,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDAyOTI2","avatar_url":"https://avatars1.githubusercontent.com/u/12402926?v=4","gravatar_id":"","url":"https://api.github.com/users/keymanapp","html_url":"https://github.com/keymanapp","followers_url":"https://api.github.com/users/keymanapp/followers","following_url":"https://api.github.com/users/keymanapp/following{/other_user}","gists_url":"https://api.github.com/users/keymanapp/gists{/gist_id}","starred_url":"https://api.github.com/users/keymanapp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keymanapp/subscriptions","organizations_url":"https://api.github.com/users/keymanapp/orgs","repos_url":"https://api.github.com/users/keymanapp/repos","events_url":"https://api.github.com/users/keymanapp/events{/privacy}","received_events_url":"https://api.github.com/users/keymanapp/received_events","type":"Organization","site_admin":false},"repo":{"id":26063183,"node_id":"MDEwOlJlcG9zaXRvcnkyNjA2MzE4Mw==","name":"keyman","full_name":"keymanapp/keyman","private":false,"owner":{"login":"keymanapp","id":12402926,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDAyOTI2","avatar_url":"https://avatars1.githubusercontent.com/u/12402926?v=4","gravatar_id":"","url":"https://api.github.com/users/keymanapp","html_url":"https://github.com/keymanapp","followers_url":"https://api.github.com/users/keymanapp/followers","following_url":"https://api.github.com/users/keymanapp/following{/other_user}","gists_url":"https://api.github.com/users/keymanapp/gists{/gist_id}","starred_url":"https://api.github.com/users/keymanapp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keymanapp/subscriptions","organizations_url":"https://api.github.com/users/keymanapp/orgs","repos_url":"https://api.github.com/users/keymanapp/repos","events_url":"https://api.github.com/users/keymanapp/events{/privacy}","received_events_url":"https://api.github.com/users/keymanapp/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/keymanapp/keyman","description":"Keyman cross platform input methods","fork":false,"url":"https://api.github.com/repos/keymanapp/keyman","forks_url":"https://api.github.com/repos/keymanapp/keyman/forks","keys_url":"https://api.github.com/repos/keymanapp/keyman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/keymanapp/keyman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/keymanapp/keyman/teams","hooks_url":"https://api.github.com/repos/keymanapp/keyman/hooks","issue_events_url":"https://api.github.com/repos/keymanapp/keyman/issues/events{/number}","events_url":"https://api.github.com/repos/keymanapp/keyman/events","assignees_url":"https://api.github.com/repos/keymanapp/keyman/assignees{/user}","branches_url":"https://api.github.com/repos/keymanapp/keyman/branches{/branch}","tags_url":"https://api.github.com/repos/keymanapp/keyman/tags","blobs_url":"https://api.github.com/repos/keymanapp/keyman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/keymanapp/keyman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/keymanapp/keyman/git/refs{/sha}","trees_url":"https://api.github.com/repos/keymanapp/keyman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/keymanapp/keyman/statuses/{sha}","languages_url":"https://api.github.com/repos/keymanapp/keyman/languages","stargazers_url":"https://api.github.com/repos/keymanapp/keyman/stargazers","contributors_url":"https://api.github.com/repos/keymanapp/keyman/contributors","subscribers_url":"https://api.github.com/repos/keymanapp/keyman/subscribers","subscription_url":"https://api.github.com/repos/keymanapp/keyman/subscription","commits_url":"https://api.github.com/repos/keymanapp/keyman/commits{/sha}","git_commits_url":"https://api.github.com/repos/keymanapp/keyman/git/commits{/sha}","comments_url":"https://api.github.com/repos/keymanapp/keyman/comments{/number}","issue_comment_url":"https://api.github.com/repos/keymanapp/keyman/issues/comments{/number}","contents_url":"https://api.github.com/repos/keymanapp/keyman/contents/{+path}","compare_url":"https://api.github.com/repos/keymanapp/keyman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/keymanapp/keyman/merges","archive_url":"https://api.github.com/repos/keymanapp/keyman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/keymanapp/keyman/downloads","issues_url":"https://api.github.com/repos/keymanapp/keyman/issues{/number}","pulls_url":"https://api.github.com/repos/keymanapp/keyman/pulls{/number}","milestones_url":"https://api.github.com/repos/keymanapp/keyman/milestones{/number}","notifications_url":"https://api.github.com/repos/keymanapp/keyman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/keymanapp/keyman/labels{/name}","releases_url":"https://api.github.com/repos/keymanapp/keyman/releases{/id}","deployments_url":"https://api.github.com/repos/keymanapp/keyman/deployments","created_at":"2014-11-01T21:01:44Z","updated_at":"2018-12-11T01:25:00Z","pushed_at":"2018-12-11T01:24:59Z","git_url":"git://github.com/keymanapp/keyman.git","ssh_url":"git@github.com:keymanapp/keyman.git","clone_url":"https://github.com/keymanapp/keyman.git","svn_url":"https://github.com/keymanapp/keyman","homepage":"https://keyman.com/","size":183775,"stargazers_count":67,"watchers_count":67,"language":"Pascal","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":26,"mirror_url":null,"archived":false,"open_issues_count":240,"license":null,"forks":26,"open_issues":240,"watchers":67,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/1407"},"html":{"href":"https://github.com/keymanapp/keyman/pull/1407"},"issue":{"href":"https://api.github.com/repos/keymanapp/keyman/issues/1407"},"comments":{"href":"https://api.github.com/repos/keymanapp/keyman/issues/1407/comments"},"review_comments":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/1407/comments"},"review_comment":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/keymanapp/keyman/pulls/1407/commits"},"statuses":{"href":"https://api.github.com/repos/keymanapp/keyman/statuses/6f672c29ac1bc3d140295c5a0045c1fb6b7fa202"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mcdurdin"}}