{"action":"created","issue":{"url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/277","labels_url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/277/labels{/name}","comments_url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/277/comments","events_url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/277/events","html_url":"https://github.com/UnderwaterApps/overlap2d/issues/277","id":112711653,"number":277,"title":"Crash when trying to use Text tool (Linuxmint, ArchLinux)","user":{"login":"yichen0831","id":3361457,"avatar_url":"https://avatars.githubusercontent.com/u/3361457?v=3","gravatar_id":"","url":"https://api.github.com/users/yichen0831","html_url":"https://github.com/yichen0831","followers_url":"https://api.github.com/users/yichen0831/followers","following_url":"https://api.github.com/users/yichen0831/following{/other_user}","gists_url":"https://api.github.com/users/yichen0831/gists{/gist_id}","starred_url":"https://api.github.com/users/yichen0831/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yichen0831/subscriptions","organizations_url":"https://api.github.com/users/yichen0831/orgs","repos_url":"https://api.github.com/users/yichen0831/repos","events_url":"https://api.github.com/users/yichen0831/events{/privacy}","received_events_url":"https://api.github.com/users/yichen0831/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-10-22T01:35:18Z","updated_at":"2015-11-08T17:54:26Z","closed_at":"2015-10-25T11:33:25Z","body":"With overlap2d-0.1.1, after choosing the Text tool on the left panel and clicking on the scene screen, the program crashes right away. (on both Linuxmint and ArchLinux)\r\n\r\nHere's the message:\r\n\r\njava.lang.NullPointerException\r\n\tat com.uwsoft.editor.view.stage.tools.SelectionTool.isEntityVisible(SelectionTool.java:357)\r\n\tat com.uwsoft.editor.view.stage.tools.SelectionTool.itemMouseDown(SelectionTool.java:143)\r\n\tat com.uwsoft.editor.view.stage.SandboxMediator$SandboxItemEventListener.touchDown(SandboxMediator.java:210)\r\n\tat com.uwsoft.editor.view.stage.input.SandboxInputAdapter.touchDown(SandboxInputAdapter.java:105)\r\n\tat com.badlogic.gdx.InputMultiplexer.touchDown(InputMultiplexer.java:90)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:303)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglCanvas$3.run(LwjglCanvas.java:234)\r\n\tat java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)\r\n    at java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:726)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\nException in thread \"AWT-EventQueue-0\" java.lang.RuntimeException: No OpenGL context found in the current thread.\r\n\tat org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)\r\n\tat org.lwjgl.opengl.GL11.glDeleteTextures(GL11.java:732)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglGL20.glDeleteTexture(LwjglGL20.java:248)\r\n\tat com.badlogic.gdx.graphics.GLTexture.delete(GLTexture.java:170)\r\n\tat com.badlogic.gdx.graphics.Texture.dispose(Texture.java:194)\r\n\tat com.badlogic.gdx.graphics.g2d.TextureAtlas.dispose(TextureAtlas.java:418)\r\n\tat com.badlogic.gdx.scenes.scene2d.ui.Skin.dispose(Skin.java:389)\r\n\tat com.kotcrab.vis.ui.VisUI.dispose(VisUI.java:65)\r\n\tat com.uwsoft.editor.Overlap2D.dispose(Overlap2D.java:92)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglCanvas$4.run(LwjglCanvas.java:309)\r\n\tat java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)\r\n\tat java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:726)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\nyichen@V3-571G:~/Downloads/overlap2d$ java -jar overlap2D-0.1.1.jar \r\nVisUI: Warning, using default favorites preference name for file chooser! (see FileChooser.setFavoritesPrefsName(String))\r\nVisUI: Warning, using default favorites preference name for file chooser! (see FileChooser.setFavoritesPrefsName(String))\r\njava.lang.NullPointerException\r\n\tat java.io.File.<init>(File.java:277)\r\n\tat com.badlogic.gdx.files.FileHandle.<init>(FileHandle.java:62)\r\n\tat com.uwsoft.editor.proxy.FontManager.getTTFByName(FontManager.java:160)\r\n\tat com.uwsoft.editor.proxy.ResourceManager.prepareEmbeddingFont(ResourceManager.java:364)\r\n\tat com.uwsoft.editor.factory.ItemFactory.createLabel(ItemFactory.java:211)\r\n\tat com.uwsoft.editor.view.stage.tools.TextTool.putItem(TextTool.java:63)\r\n\tat com.uwsoft.editor.view.stage.tools.ItemDropTool.stageMouseDown(ItemDropTool.java:17)\r\n\tat com.uwsoft.editor.view.stage.SandboxMediator$SandboxStageEventListener.touchDown(SandboxMediator.java:377)\r\n\tat com.uwsoft.editor.view.stage.input.SandboxInputAdapter.touchDown(SandboxInputAdapter.java:91)\r\n\tat com.badlogic.gdx.InputMultiplexer.touchDown(InputMultiplexer.java:90)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:303)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglCanvas$3.run(LwjglCanvas.java:234)\r\n\tat java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)\r\n\tat java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:726)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\nException in thread \"AWT-EventQueue-0\" java.lang.RuntimeException: No OpenGL context found in the current thread.\r\n\tat org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)\r\n\tat org.lwjgl.opengl.GL11.glDeleteTextures(GL11.java:732)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglGL20.glDeleteTexture(LwjglGL20.java:248)\r\n\tat com.badlogic.gdx.graphics.GLTexture.delete(GLTexture.java:170)\r\n\tat com.badlogic.gdx.graphics.Texture.dispose(Texture.java:194)\r\n\tat com.badlogic.gdx.graphics.g2d.TextureAtlas.dispose(TextureAtlas.java:418)\r\n\tat com.badlogic.gdx.scenes.scene2d.ui.Skin.dispose(Skin.java:389)\r\n\tat com.kotcrab.vis.ui.VisUI.dispose(VisUI.java:65)\r\n\tat com.uwsoft.editor.Overlap2D.dispose(Overlap2D.java:92)\r\n\tat com.badlogic.gdx.backends.lwjgl.LwjglCanvas$4.run(LwjglCanvas.java:309)\r\n\tat java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)\r\n\tat java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:726)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\n"},"comment":{"url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/comments/154852958","html_url":"https://github.com/UnderwaterApps/overlap2d/issues/277#issuecomment-154852958","issue_url":"https://api.github.com/repos/UnderwaterApps/overlap2d/issues/277","id":154852958,"user":{"login":"StQuote","id":4688310,"avatar_url":"https://avatars.githubusercontent.com/u/4688310?v=3","gravatar_id":"","url":"https://api.github.com/users/StQuote","html_url":"https://github.com/StQuote","followers_url":"https://api.github.com/users/StQuote/followers","following_url":"https://api.github.com/users/StQuote/following{/other_user}","gists_url":"https://api.github.com/users/StQuote/gists{/gist_id}","starred_url":"https://api.github.com/users/StQuote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StQuote/subscriptions","organizations_url":"https://api.github.com/users/StQuote/orgs","repos_url":"https://api.github.com/users/StQuote/repos","events_url":"https://api.github.com/users/StQuote/events{/privacy}","received_events_url":"https://api.github.com/users/StQuote/received_events","type":"User","site_admin":false},"created_at":"2015-11-08T17:54:25Z","updated_at":"2015-11-08T17:54:25Z","body":"Sure, need to be scanned both this paths. I can try to fix this. \r\n\r\nStructure a little bit complex than in Windows (each font family grouped in directories) and I'm not sure how many 'children' groups can be. So maybe is should be scanned recursively?\r\n\r\nFor me directory structure in /usr/share/fonts/truetype seems like this:\r\n```\r\n.\r\n├── abyssinica\r\n│   └── AbyssinicaSIL-R.ttf\r\n├── dejavu\r\n│   ├── DejaVuSans-BoldOblique.ttf\r\n│   └── DejaVuSerif.ttf\r\n├── droid\r\n│   ├── DroidNaskh-Bold.ttf\r\n│   └── DroidSerif-Regular.ttf\r\n├── kacst-one\r\n│   ├── KacstOne-Bold.ttf\r\n│   └── KacstOne.ttf\r\n├── lao\r\n│   └── Phetsarath_OT.ttf\r\n```\r\n*There is more folders with many ttf fonts.*"}}