Commit Graph

250 Commits

Author SHA1 Message Date
zonble 21252e6c55 Removes NSUserDefault for selection key if a user chooses to use the default setting. 2021-11-12 00:36:41 +08:00
zonble da8e6c6fa5 Adds selection key settings in the preference window. 2021-11-12 00:02:01 +08:00
zonble 723a8402ab Fixes typos. 2021-11-11 00:14:49 +08:00
zonble 1f8cd8d06f Updates SwiftOpenCC. 2021-11-10 21:38:04 +08:00
zonble c8bad0913b Removes unused code. 2021-03-01 22:48:46 +08:00
zonble f6c36fe325 Bridges SwiftyOpenCC to create a simple Chinese convertion function. 2021-03-01 22:43:02 +08:00
zonble 4e27b5ecfa Adopts modern Objective-C syntax. 2021-02-28 22:45:36 +08:00
zonble 6341270696 Coverts to Objective-C ARC. 2021-02-28 21:38:59 +08:00
zonble 0f05e245a5 Coverts to Objective-C ARC. 2021-02-28 21:30:10 +08:00
zonble 7626d21a90 Merge branch 'master' of github.com:openvanilla/McBopomofo 2020-12-21 00:31:49 +08:00
Lukhnos Liu b754acdf07 Bump to version 1.0 2020-10-28 12:42:55 -07:00
Lukhnos Liu 9cbcee5b1f Bump to 1.0-beta3 to prepare for 1.0 release 2020-10-19 20:27:33 -07:00
Lukhnos Liu c44db5b000 Provide the UI to disable auto update check (#80) 2020-10-19 20:25:39 -07:00
Lukhnos Liu 4d2cf36b61 Add a preferences key to disable update checks 2020-10-19 20:09:17 -07:00
Lukhnos Liu 60aa005e2d Upgrade preferences.xib format (zh-Hant only) 2020-10-19 20:02:01 -07:00
Lukhnos Liu 688ae64723 Bump to 1.0-beta2 to prepare for 1.0 release 2020-10-19 14:52:18 -07:00
Lukhnos Liu 81748ae7fe Enable explicit update check in Release builds 2020-10-19 14:51:05 -07:00
Lukhnos Liu 7e3ee1742d Bump to 1.0-beta1 to prepare for 1.0 release 2020-10-18 20:08:51 -07:00
Lukhnos Liu eae12c04b4 Update copyright years 2020-10-18 12:48:15 -07:00
Lukhnos Liu 56dbbbc3b7 Delete UpdateNotificationController
This unifies the version update checker's UI. It also allows us to show
detailed info for a new version.
2020-10-18 12:48:15 -07:00
Lukhnos Liu 3bc70769df Show no update available when checking explicitly
This imports OpenVanilla's OVNonModalAlertWindowController for the
alerts.
2020-10-18 12:48:14 -07:00
Lukhnos Liu 4adf3c1b42 Update keyboard and app icons 2020-10-18 12:48:08 -07:00
Lukhnos Liu 3ac018f6c0 Retire IconMaker 2020-10-17 06:23:49 -07:00
Lukhnos Liu 4c8270c42f Cancel candidate by Bksp or Del when Plain Bopomofo
Fixes #152
2020-10-17 06:19:47 -07:00
Lukhnos Liu a71b354908 Fix broken CI builds by guarding new API usage 2020-10-10 07:47:29 -07:00
Lukhnos Liu 2f2f18d9e0 Check if the translocated app is still mounted
This ensures that, after the Installer has killed the current input method
process, the Installer can tell if the translocated input method bundle is no
longer mounted. It turns out that getfsstat() may return cached results and a
call to statfs() is necessary.

This fixes the bug that the Installer did not always correctly report that a
new version of the input method has been installed over a previous version.
The bug only manifests when getfsstat() returns cached results. That seems to
be the case on newer versions of macOS.
2020-10-10 07:24:50 -07:00
Lukhnos Liu 7d13ea0b41 Use NSTableViewStyleFullWidth on supported macOS
This prevents the vertical candidate table view to use the inset style [1].

The full-width style serves the purpose. The inset style makes the first
candidate too further away from the cursor in the composing buffer.

[1] https://developer.apple.com/design/human-interface-guidelines/macos/overview/whats-new-in-macos/
2020-10-10 06:37:32 -07:00
Lukhnos Liu fa224c2657 Reset other nodes' fixed state when fixing a node
This fixes a bug that, when a span covers several nodes and a long node
has already been candidate-fixed, fixing a short node does not cause
the walk to reflect the result.

A concrete example:

1. type 高中生.
2. move the cursor to 中 and change to 鐘聲: 高鐘聲.
3. with cursor position unchanged, select the candidate to 忠.
4. the expected result should be 高忠生 but instead it is stuck with
   高鐘聲 due to the node representing "鐘聲" is still fixed.

Fixes #54
2020-10-09 22:16:06 -07:00
Lukhnos Liu 71b97f82b3 Simplify candidate fixing by moving code to Grid 2020-10-09 22:16:06 -07:00
Lukhnos Liu 40c45b0fd8 Fix the LSMinimumSystemVersion value 2020-10-09 22:16:06 -07:00
zonble 1b0a4bf5d9 Update the plist file. 2020-03-31 15:29:58 -07:00
zonble f5d4b04e1b Update the plist file. 2020-03-30 01:26:34 +08:00
Lukhnos Liu cdbdf8c683 Bump to 0.9.11 2019-10-28 23:42:39 -07:00
Lukhnos Liu 4f6d1acc43 Update Installer to support app notarization
Soon notarization will be required for Developer ID apps. This change allows
the Installer to run in two modes. The "dev mode" still builds the IME as
the prerequisite of the Installer and places the IME app bundle inside the
Installer's resources folder. That has been so since the beginning of this
project, and this continues to allow IME developers to test the input method.
On the other hand, if "McBopomofo-r$rev.zip" is placed in the NotarizedArchives
folder and McBopomofo is not built as a dependency of the Installer and the
app bundle is not copied to the resources folder, the Installer then can be
built as a notarizable app (otherwise Xcode wouldn't even let you submit it
for notarization).

To build the distributable Installer, notarize the IME app first, then zip the
app as McBopomofo-r$rev.zip and place that to the NotarizedArchives folder
under Source/Installer. Then build and submit the Installer for notarization.
This is in line with Apple's guideline in
https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow
("If you distribute your software via a custom third-party installer, you need
two rounds of notarization.")

We don't expect that we make new Installers often enough, and therefore we
don't intend to automate this process via scripting.
2019-10-28 23:42:39 -07:00
Lukhnos Liu 7978a9efba Update composing buffer after candidate keys (#145)
Recent versions of Chrome started to rely on whether composing buffer
gets updated after an arrow key event to determine whether to dismiss
(force commit) the composing buffer and handle the arrow key event for
the omnibox URL suggestions.
2019-06-18 22:14:05 -07:00
Lukhnos Liu ea865c6a24 Fix a static analyzer warning 2018-12-01 06:58:42 -08:00
Lukhnos Liu 8437d23eaf Fix the remaining API deprecation warnings
This replaces the use of NSAlertPanel with a helper function, which in
turn uses NSAlert, which is the recommended way of showing alerts.
2018-12-01 06:58:24 -08:00
Lukhnos Liu 5ce1cc3f38 Bump to 0.9.10 2018-11-24 21:51:07 -08:00
Lukhnos Liu 7b77f66b55 Update copyright years 2018-11-24 21:50:24 -08:00
Lukhnos Liu 01baf0bb29 Fine-tune horizontal candidate UI for dark mode 2018-11-24 21:47:15 -08:00
Lukhnos Liu 39a7eca195 Fix license text for dark mode 2018-11-24 21:47:15 -08:00
Lukhnos Liu 1ca73fe794 Fix a memory leak in the installer 2018-11-24 21:47:15 -08:00
Lukhnos Liu 14c2e70f7b Use control background color for dark mode 2018-11-24 21:47:15 -08:00
Lukhnos Liu 8058f37fff Modernize project and bump min version to 10.10
32-bit architecture support is removed as a result.
2018-11-24 21:47:15 -08:00
ovadmin e065d6fa17 Fix incorrect unprintable ASCII handling (#139)
When Caps Lock is on and when the character code is not printable, we
should simply reject handling such character instead of absorbing it and
inserting the character to the client buffer--not all apps handle those
insertions.
2018-07-07 13:25:10 -07:00
ovadmin a83eb38c5f 版本更新至 0.9.9
* 修正在 macOS 10.13 上無法叫出偏好設定的問題
2017-09-19 20:45:24 -07:00
ovadmin 9be64e0a48 修正在 macOS 10.13 beta 上無法叫出偏好設定的問題
修正根據請參考以下連結:
3241c7f688
2017-09-04 21:21:09 -07:00
ovadmin 966221191b 版本更新至 0.9.8
* 詞庫更新、修正及調整 (#115, #117, #126 等)
* 在輸入法選單中使用「小麥注音」作為名稱 (#109)
* 版權年份更新
* 選字窗細微修正
* 安裝程式正式支援 macOS 10.12
* 移除 debug build 時自動安裝輸入法的 Xcode 設定
2017-04-30 01:33:40 -07:00
ovadmin 9e3e4701df 輸入法選單名稱改為「小麥注音」 (fixes #109) 2017-04-30 01:33:40 -07:00
ovadmin 4e42a48cd9 更新版權年份 2017-04-30 01:33:40 -07:00
ovadmin d6e1ba435c 更新選字窗元件,與 OpenVanilla 同步 2017-04-30 01:33:40 -07:00
ovadmin dd6ba14da5 Handle installation on macOS 10.12 correctly
The approach is derived from OpenVanilla.
2017-04-24 23:11:50 -07:00
Mengjuei Hsieh 1167792d82 bump version (#114) 2016-11-01 22:02:55 -07:00
Mengjuei b023fe22e5 revert info.plists 2016-10-26 22:06:39 -07:00
Mengjuei Hsieh d9348efb1e minor revision to reflect xcode changes (#112)
__weak
if (0)
2016-10-24 23:08:43 -07:00
Peter Dave Hello 92b620f417 using zopflipng to optimize png images 2016-06-18 10:24:22 +08:00
Lukhnos Liu ccd4cc1cab Bump to 0.9.6.11 2014-10-28 23:46:28 -07:00
Lukhnos Liu 8747e7d7c7 Fix vertical candidate highlight color on Yosemite 2014-10-28 23:36:01 -07:00
Lukhnos Liu 82acc456bc Bump to 0.9.6.10 2014-05-18 20:42:59 -07:00
Lukhnos Liu 5f19be59b4 Override keyboard layout correctly. Fixes #86.
Using numerous NSLog's led to the discovery that when McBopofomo lost
function (as described in #86), -setValue:forTag:client: was often called
not just on the context of the foreground app, but also on the contexts
of the background apps. This led to the theory that calling keyboard
layout override in that method (not a documented way of doing things
anyways) might corrupt the input method context. That we swapped out
language model and the builder when the method got called didn't help.

In this commit, we put back the keyboard layout override code to where
it belongs -- in -activateServer: -- and we now only swap the language
model and re-create the builder if the input method really changes (e.g.
from Bopomofo to Plain Bopomofo, or vice versa).

Similar defensive coding is also used in the function key handler in the
-handleEvent:client: method.
2014-05-18 20:41:53 -07:00
Lukhnos Liu 3640c9f55f Remove build warnings for preferences.xib
Disable "Auto Recalculates Cell Size" option, which is not supported
before OS X 10.8.
2014-05-18 18:11:52 -07:00
Lukhnos Liu b1627f95fe Bump to 0.9.6.9 2014-05-16 21:21:02 -07:00
Lukhnos Liu e406645893 Fix candidate window visual artifacts
* Use a built-in window level instead of the non-standard one
* Don't force the window to re-draw
* Defer orderFront: and orderBack:
2014-05-16 21:18:47 -07:00
Lukhnos Liu 28ca23b453 Switch to HTTPS version info endpoint 2014-05-16 21:16:39 -07:00
Lukhnos Liu b56508c55c Add a debug menu item for checking updates 2014-05-16 21:16:39 -07:00
Mengjuei 890451ff27 organization update, 加詞及注音修正 2013-11-23 14:41:13 -08:00
Mengjuei dc5a6d0a37 update filelist 2013-11-10 22:05:35 -08:00
Lukhnos Liu c324eda5a9 Bump to 0.9.6.8 2013-06-15 16:42:20 -07:00
Lukhnos Liu b4eea515c3 Fix Span removal bug when linked against libc++ 2013-06-14 23:54:37 -07:00
leafy7382 0240445af5 NSPropertyListFormat does not need an assignment before use, remove rvalue. 2013-02-17 01:10:43 +08:00
Lukhnos Liu e9c57947aa Bump to 0.9.6.7 2013-01-29 22:17:07 -08:00
Lukhnos Liu 07f663eb00 Correctly fix the vertical scroller redraw issue. 2013-01-29 22:16:42 -08:00
Lukhnos Liu 1033c74de6 Bump to 0.9.6.6 2013-01-25 08:54:55 -08:00
Lukhnos Liu 337b295950 Attempt to fix the redraw issue. 2013-01-25 08:54:34 -08:00
Lukhnos Liu 1445ac501e Bump to 0.9.6.5 2013-01-24 23:29:28 -08:00
Lukhnos Liu 55d2cb2868 Defer updating scroller. 2013-01-24 23:28:42 -08:00
Lukhnos Liu ad6118e141 Bump to 0.9.6.4 2013-01-16 21:43:53 -08:00
Lukhnos Liu 54f0113c0c Avoid layout when providing cell values (fixes #73)
-tableView:objectValueForTableColumn:row: may call -layoutCandidateView,
which in turn may force the table view to reload; the layout code
should only run after all cell values are provided for to break this
potential cycle.
2013-01-16 21:42:41 -08:00
Lukhnos Liu d8203c2547 Bump to 0.9.6.3 2012-12-13 19:51:28 -08:00
Lukhnos Liu 92e2d41eba Clean up reading buf at deactivation (fixes #72) 2012-12-13 19:50:04 -08:00
Lukhnos Liu 2cc115e894 Bump to 0.9.6.2 2012-12-12 20:32:51 -08:00
Lukhnos Liu c9bd9ab24b Fix xib warnings. 2012-12-12 20:32:51 -08:00
Lukhnos Liu 9448c1af48 Fix Plain Bopomofo regression (#71)
This is caused by a missing method. Our implementation for
-[NSObject(IMKServerInput) inputText🔑modifiers:client:] was changed
to handleEvent: in 0.9.5.

Interestingly, calling -inputText🔑modifiers:client: somehow worked
when we linked against OS X 10.7 SDK (that was the SDK the 0.9.5
distribution used). This is no longer true with OS X 10.8 SDK.
2012-12-12 20:32:50 -08:00
Lukhnos Liu fe182ba26b Bump to 0.9.6.1 2012-12-01 22:23:33 -08:00
Lukhnos Liu f30753d3aa Bump to 0.9.6 2012-11-18 01:29:25 -08:00
Lukhnos Liu 95405cc72b Add UI support for IBM layout. Fixes #67.
Also change the layout constant from 4 to 5 since 4 is taken by Pinyin
layout.
2012-11-18 01:29:20 -08:00
Mengjuei beee34b96c Enable IBM Keyboard Layout, no update to xib yet 2012-11-13 00:40:26 -08:00
Lukhnos Liu c300e9cc10 Detab source code. 2012-10-31 22:12:50 -07:00
Lukhnos Liu e68845381c Revise DFA for parsing language models. 2012-10-31 21:55:13 -07:00
Lukhnos Liu 31a1a042fe Enlarge maximum candidate list text size. 2012-10-31 20:58:24 -07:00
Lukhnos Liu 94b80c42e3 Fix potential leak of NSURLConnection. Fixes #69. 2012-10-23 20:39:13 -07:00
Lukhnos Liu fadf8d431e Support Home/End/Del in input buffer, fixes #63.
Also fix two subtle issues:

1. Enter (not Return) key now works in candidate list
2. Cursor index should be compared against builder's length, *not*
   composed string's length, because the former is counted in
   code point but the latter in UTF-16 units. The composed string's
   length might therefore be longer if the string contains
   codepoints > U+FFFF, which would cause the cursor mechanism to
   be off.
2012-09-18 22:34:00 -07:00
Lukhnos Liu d5b8160394 Bump version to 0.9.5. 2012-09-18 09:04:06 -07:00
Mengjuei 6f9d64eaeb preliminary update to the License. 2012-09-15 12:05:20 -07:00
Lukhnos Liu d4730068fa Handle Shift with function key layout overrides. 2012-09-12 22:13:53 -07:00
Lukhnos Liu a2ea20306c Support overriding function key keyboard layout. 2012-09-12 21:59:53 -07:00
Lukhnos Liu aa1ed26b58 Update application icon set. 2012-09-12 09:34:51 -07:00
Lukhnos Liu 181b9894e6 Update IconMaker. 2012-09-12 09:34:42 -07:00
Lukhnos Liu 404bde168d Remove equivalent key settings. 2012-09-11 22:10:05 -07:00
Lukhnos Liu 913024fa75 Ignore input mode enable issues. 2012-09-11 22:04:55 -07:00