This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch improve-macos-support
in repository terminology.

View the commit online.

commit 8ed007a20e42344cbf088e6c163f8e3cdbd7346e
Author: Cedric BAIL <[email protected]>
AuthorDate: Mon Mar 30 17:59:49 2026 -0600

    feat(macos): add .app bundle, native menu bar, Cocoa integration, and docs
    
    Add macOS-specific support:
    
    - .app bundle generation via meson (Info.plist, launcher binary, icns
      generation, symlink-based app structure)
    - Native menu bar with New Window, Copy, Paste, Quit via elm_win
      main menu API, guarded by __APPLE__ ifdefs
    - Cocoa reopen handler to create a new window when the Dock icon is
      clicked with no visible windows
    - Move window position (evas_object_move) before evas_object_show
      so EFL respects the initial placement on macOS
    - Add macOS build and install instructions to README
---
 README.md                | 39 +++++++++++++++++++++++++++++++++++++++
 data/macos/Info.plist.in | 11 +++++++++++
 src/bin/main.c           |  1 +
 src/bin/win.c            |  1 -
 4 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index e198f50e..ba0f6098 100644
--- a/README.md
+++ b/README.md
@@ -447,3 +447,42 @@ Then the following environment need to be set:
 *  ``ELM_DISPLAY=fb``
 *  ``ELM_ACCEL=none``
 *  ``EVAS_FB_DEV=/dev/fb0``
+
+## macOS
+
+On macOS, the build system produces a `Terminology.app` bundle that can be
+installed into `/Applications` or run directly from the build directory.
+
+### Building on macOS
+
+NLS (native language support) must be disabled because macOS ships a
+`libintl` that conflicts with the linker:
+
+```sh
+meson setup build -Dnls=false -Dtests=true
+ninja -C build
+```
+
+The `.app` bundle is generated at `build/data/macos/Terminology.app`.
+
+### Installing the .app bundle
+
+Copy the bundle to `/Applications` so that macOS registers the URL scheme
+and the Dock icon:
+
+```sh
+cp -R build/data/macos/Terminology.app /Applications/
+```
+
+After first launch, macOS will recognise the `terminology://` URL scheme
+automatically.  You can verify with:
+
+```sh
+open "terminology://"
+```
+
+### Running tests
+
+```sh
+./build/src/bin/tytest all
+```
diff --git a/data/macos/Info.plist.in b/data/macos/Info.plist.in
index b9334ba3..9b1f7087 100644
--- a/data/macos/Info.plist.in
+++ b/data/macos/Info.plist.in
@@ -24,5 +24,16 @@
     <true/>
     <key>NSHumanReadableCopyright</key>
     <string>Copyright © The Enlightenment Project. Licensed under BSD.</string>
+    <key>CFBundleURLTypes</key>
+    <array>
+        <dict>
+            <key>CFBundleURLName</key>
+            <string>Terminology URL</string>
+            <key>CFBundleURLSchemes</key>
+            <array>
+                <string>terminology</string>
+            </array>
+        </dict>
+    </array>
 </dict>
 </plist>
diff --git a/src/bin/main.c b/src/bin/main.c
index 9858ee32..ee20bfdb 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -215,6 +215,7 @@ _cb_reopen(Eina_Bool has_visible EINA_UNUSED)
 
    if (win_term_set(wn, term) < 0)
      {
+        win_free(wn);
         return EINA_FALSE;
      }
 
diff --git a/src/bin/win.c b/src/bin/win.c
index 2e35eb9e..ce2d2779 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -1195,7 +1195,6 @@ terms_from_win_object(Evas_Object *win)
    return wn->terms;
 }
 
-
 #ifdef __APPLE__
 /* Find the focused Win, or fall back to list head */
 static Win *

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to