{"action":"created","issue":{"url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/260","repository_url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio","labels_url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/260/labels{/name}","comments_url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/260/comments","events_url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/260/events","html_url":"https://github.com/pkulchenko/ZeroBraneStudio/issues/260","id":25150867,"number":260,"title":"Upgrade to wxwidgets 3.x","user":{"login":"pkulchenko","id":77071,"avatar_url":"https://avatars.githubusercontent.com/u/77071?v=3","gravatar_id":"","url":"https://api.github.com/users/pkulchenko","html_url":"https://github.com/pkulchenko","followers_url":"https://api.github.com/users/pkulchenko/followers","following_url":"https://api.github.com/users/pkulchenko/following{/other_user}","gists_url":"https://api.github.com/users/pkulchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/pkulchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkulchenko/subscriptions","organizations_url":"https://api.github.com/users/pkulchenko/orgs","repos_url":"https://api.github.com/users/pkulchenko/repos","events_url":"https://api.github.com/users/pkulchenko/events{/privacy}","received_events_url":"https://api.github.com/users/pkulchenko/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/labels/Enhancement","name":"Enhancement","color":"02e10c"}],"state":"open","locked":false,"assignee":{"login":"pkulchenko","id":77071,"avatar_url":"https://avatars.githubusercontent.com/u/77071?v=3","gravatar_id":"","url":"https://api.github.com/users/pkulchenko","html_url":"https://github.com/pkulchenko","followers_url":"https://api.github.com/users/pkulchenko/followers","following_url":"https://api.github.com/users/pkulchenko/following{/other_user}","gists_url":"https://api.github.com/users/pkulchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/pkulchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkulchenko/subscriptions","organizations_url":"https://api.github.com/users/pkulchenko/orgs","repos_url":"https://api.github.com/users/pkulchenko/repos","events_url":"https://api.github.com/users/pkulchenko/events{/privacy}","received_events_url":"https://api.github.com/users/pkulchenko/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2014-01-07T06:51:02Z","updated_at":"2016-04-16T17:28:58Z","closed_at":null,"body":"Include the following items as part of the upgrade:\r\n\r\n* move wx libraries from bin/ to clibs/; adjust DYLD_LIBRARY_PATH\r\n* ? remove dependency on libedit/readline on OSX (LUA_USE_READLINE) to avoid symlinking in OSX launcher\r\n* update OSX manifest to disable \"open in low resolution\"; `<key>NSHighResolutionCapable</key>\r\n<string>True</string>`;\r\n* upgrade LuaJIT when 2.1 is released.\r\n* add lfs and luasec binaries (related #566)\r\n* + updated \"close tab\" icon on OSX (`src/aui/tabart.cpp`) to look the same as on Windows\r\n* - switch to using new launcher on Windows; this is better for loading ssl libraries and not loading lua dlls directly; not switching as it displays \"lua\" as the name of the executable in the task manager and is not associated with a proper icon. There is a workaround for the issue with loading openssl libraries from luasec.\r\n* + add [hidpi aware manifest](https://msdn.microsoft.com/en-us/library/windows/desktop/dn469266%28v=vs.85%29.aspx#declaring_dpi_awareness) to lua.exe: `mt.exe -manifest \"lua.exe.manifest\" -outputresource:\"lua.exe;#1\"`\r\n* + make sure windows dll/exe files are [signed](https://msdn.microsoft.com/en-us/windows/desktop/hh749939.aspx)\r\n* [include `MacOpenFiles` and other `Mac*` methods in wxlua](http://sourceforge.net/p/wxlua/mailman/message/34559782/)\r\n* + check loading extended lexers ([#17480](http://trac.wxwidgets.org/ticket/17480) and [#17481](http://trac.wxwidgets.org/ticket/17481))\r\n* + (updated) switch to using generic lua.exe on windows (to only upgrade lua51.dll)\r\n* + (removed) remove `hidpi` setting on OSX as it's no longer needed (and interferes with indicators)\r\n* + (tested without issues on Kubuntu 15.04 64bit) check if [png_uint_32 fix](https://groups.google.com/forum/#!msg/wx-users/gCBrhjVG1XI/lbZFb5BGWlkJ) is needed; test on 64bit Linux\r\n* + (added workaround c2fa125e4) find a fix for [Ctrl-(Shift-)-Tab not working on OSX](http://wxwidgets.10942.n7.nabble.com/Ctrl-Shift-Tab-doesn-t-properly-navigate-over-tabs-on-OSX-wxwidgets3-1-td86834.html); [wxwidgets ticket #17064](http://trac.wxwidgets.org/ticket/17064)\r\n/mailman/message/34430092/)\r\n* + (resolved in wxwidgets as of 3/27/2016) find a fix for [wxwidgets ticket #15621](http://trac.wxwidgets.org/ticket/15621#comment:15); also see #614\r\n* + (resolved in wxwidgets as of 2/2/2016) fix libpng issue on Linux (#306); upgrade to [libpng 1.6.19](http://www.libpng.org/pub/png/libpng.html): [wxwidgets ticket #17232](http://trac.wxwidgets.org/ticket/17232)\r\n* + (added workaround that limits the impact) [memory leak in wxlua](http://sourceforge.net/p/wxlua\r\n* + (resolved in wxwidgets as of 10/26/2015) [fold-drawing issue on Win/hidpi](http://trac.wxwidgets.org/ticket/17069#comment:15)\r\n* + (resolved in wxwidgets as of 5/15/2015) fix [indicators with alpha setting missing with BufferedDraw on OSX](http://wxwidgets.10942.n7.nabble.com/wxSTC-loses-indicators-with-alpha-setting-after-disabling-BufferedDraw-needed-for-Retina-on-OSX-td84465.html)\r\n* + make sure Lua is patched to [get `seek`/`tell` working with mingw](http://lua-users.org/lists/lua-l/2015-05/msg00337.html); [another patch](http://lua-users.org/lists/lua-l/2015-10/msg00061.html)\r\n* + (resolved in wxwidgets as of 11/8/2015) include patch to show max number of tabs: [wxwidgets ticket #17233](http://trac.wxwidgets.org/ticket/17233)\r\n* + (resolved in wxwidgets as of 11/8/2015) make sure to apply [wxwidgets patch](http://trac.wxwidgets.org/ticket/16243#comment:3) needed for #298\r\n* test [wxFileSystemWatcher](http://docs.wxwidgets.org/trunk/classwx_file_system_watcher.html)\r\n* ? switch to 64bit build on OSX\r\n* ? apply `-pagezero_size 10000 -image_base 100000000` for 64bit LuaJIT on OSX ([ref](http://luajit.org/install.html))\r\n* ? move to GTK3 on Linux\r\n* ? upgrade to LuaJIT 2.1 (since libraries need to be recompiled on OSX anyway)\r\n* does [this (#17272) fix](http://trac.wxwidgets.org/ticket/17272) the tilde issue (#113)? Probably not as the fix is Windows specific, but need to check\r\n* potentially affected by [PopupMenu does not work on dialogs under OSX](http://trac.wxwidgets.org/ticket/17459)\r\n* + upgrade to wxwidgets 3.1.1 also fixes crash on Linux that happens on [this file](https://github.com/CapsAdmin/goluwa/blob/master/src/lua/examples/2d/web_fonts.lua) due to invalid UTF-8 characters.\r\n* add missing wxlua methods\r\n  * + (added in wxwidgets311 branch in wxlua) wxSTC needs ScrollRange, ScrollCaret, SetFontQuality, AddStyledText, GetTargetText, Get/SetIMEInteraction; (PointXFromPosition, PointYFromPosition are not available in wxSTC);\r\n  * wxSTC needs LoadLexerLibrary, GetDirectFunction and GetDirectPointer ([#17480](http://trac.wxwidgets.org/ticket/17480) and [#17481](http://trac.wxwidgets.org/ticket/17481))\r\n  * wxMenuItem is missing GetBitmap\r\n  * wxMenu is missing Attach, Detach\r\n  * wxDir needs Close\r\n  * wxAuiTabArt class is missing SetColour and SetActiveColour\r\n  * EnableFullScreenView http://trac.wxwidgets.org/ticket/14357\r\n  * wxTreeCtrl needs GetFocusedItem, SetFocusedItem, ClearFocusedItem\r\n  * [YieldFor](http://docs.wxwidgets.org/trunk/classwx_event_loop_base.html#afb5ed08160c7e6b1364170af6115af55) is missing\r\n  * [SetCanFocus](http://docs.wxwidgets.org/trunk/classwx_window.html#a2b8b2e99231a0ec1a05f5066f1b7f3d8) is missing\r\n  * NavigateIn to navigate inside a window\r\n  * wxTextCtrl is missing SetHint, GetHint, AutoComplete\r\n  * wxFont is missing IsOk, GetPixelSize, SetPixelSize\r\n  * wxFileConfig is missing GetGlobalFile, GetLocalFile, GetGlobalFileName, GetLocalFileName\r\n  * wx*DC is missing SetTransformMatrix, GetTransformMatrix and related Affinity classes\r\n  * wxImage is missing ClearAlpha and ConvertAlphaToMask; needed for #470; this may already be addressed in [wxwidget ticket #14403](http://trac.wxwidgets.org/ticket/14403)\r\n  * wx.wxGetSelectedChoices\r\n  * wxButton is missing SetBitmap and other methods inherited from wxAnyButton\r\n  * +(added in r247) RegisterHotKey, UnregisterHotKey ([example](http://wxwidgets.10942.n7.nabble.com/Registering-hot-keys-MSW-td33019.html))\r\n\r\n* compatibility issues\r\n  * + (resolved by using a different method to get frame width) [Toolbar disappears on OSX](http://trac.wxwidgets.org/ticket/17141#comment:4) (using 10/21/2015 master branch of wxwidgets)\r\n  * + (resolved by updating default mask and the tests) fails two tests; the reason for the failure is that `*.*` mask no longer matches files without extensions on Windows.\r\n  * + (resolved by not setting `SetDllDirectory` in the launcher) `dlopen` (which impacts `ffi.load` and other calls) doesn't work because of changes in [15534](http://trac.wxwidgets.org/ticket/15534); the fix is to revert the commit in the ticket: `git revert 5dcfc82cca4e688ef3`\r\n  * + (resolved by using `KEY` event instead of `CHAR`; 7def69b9) `Escape` doesn't close search panel when the focus is on find/replace fields on OSX\r\n  * + (resolved by modifying `onIdleOnce` to reset flag before execution; 1f573639) `IDLE` events can be nested (called from a handler for `IDLE` event)\r\n  * focus may need to be explicitly set on tabs because of [changes in #11333](http://trac.wxwidgets.org/ticket/11333)\r\n  * tests are slower to execute (mostly caused by directory search in `FileSysGetRecursive`)\r\n\r\n[Related wxwidgets tickets](http://trac.wxwidgets.org/query?status=%21closed&group=component&reporter=paulclinger&order=priority&report=9)."},"comment":{"url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/comments/210861599","html_url":"https://github.com/pkulchenko/ZeroBraneStudio/issues/260#issuecomment-210861599","issue_url":"https://api.github.com/repos/pkulchenko/ZeroBraneStudio/issues/260","id":210861599,"user":{"login":"pkulchenko","id":77071,"avatar_url":"https://avatars.githubusercontent.com/u/77071?v=3","gravatar_id":"","url":"https://api.github.com/users/pkulchenko","html_url":"https://github.com/pkulchenko","followers_url":"https://api.github.com/users/pkulchenko/followers","following_url":"https://api.github.com/users/pkulchenko/following{/other_user}","gists_url":"https://api.github.com/users/pkulchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/pkulchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkulchenko/subscriptions","organizations_url":"https://api.github.com/users/pkulchenko/orgs","repos_url":"https://api.github.com/users/pkulchenko/repos","events_url":"https://api.github.com/users/pkulchenko/events{/privacy}","received_events_url":"https://api.github.com/users/pkulchenko/received_events","type":"User","site_admin":false},"created_at":"2016-04-16T17:28:58Z","updated_at":"2016-04-16T17:28:58Z","body":"Summary of changes done by this ticket:\r\n\r\nThe biggest difference is the improved handling of Unicode and fixing some of the long standing bugs on OSX and Linux. The IDE should be able to load/save files with invalid UTF-8 encoded characters without replacing them with `[SYN]`.\r\n\r\nIt also upgrades to a recent version of Scintilla (3.6.3), which includes new features that some of you asked about. For example, it's now possible to use indicators that apply colors to the text (and not\r\njust to the lines around the text). The following would, for example, mark all global variables with the red color:\r\n\r\nstyles.indicator.varglobal = {fg = {255, 0, 0}, st = wxstc.wxSTC_INDIC_TEXTFORE}\r\n\r\nI expect the following tickets to be fixed with the upgrade:\r\n\r\n- OSX can not input chinese: https://github.com/pkulchenko/ZeroBraneStudio/issues/390\r\n- OSX Shortcuts don't work and/or don't exist: https://github.com/pkulchenko/ZeroBraneStudio/issues/298\r\n- Multipaste: https://github.com/pkulchenko/ZeroBraneStudio/issues/311\r\n- Improve UTF-8 handling: https://github.com/pkulchenko/ZeroBraneStudio/issues/273, https://github.com/pkulchenko/ZeroBraneStudio/issues/205, https://github.com/pkulchenko/ZeroBraneStudio/issues/198\r\n- Better FixUTF8 in LoadFile: https://github.com/pkulchenko/ZeroBraneStudio/issues/556\r\n- Crash in the editor on Unicode characters >=U+10000 (OSX): https://github.com/pkulchenko/ZeroBraneStudio/issues/614\r\n- Invisible tabs background & theme quirks under Adwaita/Gnome3 (Fedora & Arch Linux): https://github.com/pkulchenko/ZeroBraneStudio/issues/306\r\n- Tab close button doesn't react: https://github.com/pkulchenko/ZeroBraneStudio/issues/366\r\n- Application is terminated when `print` is used after `wxwidgets` is loaded: https://github.com/pkulchenko/ZeroBraneStudio/issues/627\r\n- Alpha options can be used on indicators on OSX in hidpi configuration (this was previously not working with `hidpi=true`, which was needed to support Retina screens).\r\n\r\nThe following issue may be fixed:\r\n- Editor font not antialiased on Win8.1 RDP: https://github.com/pkulchenko/ZeroBraneStudio/issues/365\r\n\r\nThese tickets still require some work at the Lua level to be resolved:\r\n- Open file on drag'n'drop: https://github.com/pkulchenko/ZeroBraneStudio/issues/177\r\n- FileList shows CPP files with LUA icon: https://github.com/pkulchenko/ZeroBraneStudio/issues/470"}}