Lagrange [work/v1.8]

Added build option to disable IPC

=> be2efda0d56d5cfd6bd377adc440736a326903f2

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0d12d4d..1db57832 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,6 +26,7 @@ set (IOS_BUNDLE_VERSION 7)
 set (COPYRIGHT_YEAR 2021)
 
 # Build configuration.
+option (ENABLE_IPC              "Use IPC to communicate between running instances" ON)
 option (ENABLE_MPG123           "Use mpg123 for decoding MPEG audio" ON)
 option (ENABLE_X11_SWRENDER     "Use software rendering under X11" OFF)
 option (ENABLE_KERNING          "Enable kerning in font renderer (slower)" ON)
@@ -115,8 +116,6 @@ set (SOURCES
     src/gopher.h
     src/history.c
     src/history.h
-    src/ipc.c
-    src/ipc.h
     src/lang.c
     src/lang.h
     src/lookup.c
@@ -198,6 +197,12 @@ set (SOURCES
     ${CMAKE_CURRENT_BINARY_DIR}/embedded.c
     ${CMAKE_CURRENT_BINARY_DIR}/embedded.h
 )
+if (ENABLE_IPC)
+    list (APPEND SOURCES
+        src/ipc.c
+        src/ipc.h
+    )
+endif ()
 if (ANDROID)
     set (MOBILE 1)
     add_definitions (-DiPlatformAndroidMobile=1)
@@ -254,6 +259,9 @@ target_compile_options (app PUBLIC
     -DSTB_VORBIS_NO_INTEGER_CONVERSION=1
 )
 target_compile_definitions (app PUBLIC LAGRANGE_APP_VERSION="${PROJECT_VERSION}")
+if (ENABLE_IPC)
+    target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_IPC=1)
+endif ()
 if (ENABLE_X11_SWRENDER)
     target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_X11_SWRENDER=1)
 endif ()
@@ -268,13 +276,13 @@ if (ENABLE_MPG123 AND MPG123_FOUND)
     target_link_libraries (app PUBLIC PkgConfig::MPG123)
 endif ()
 if (ENABLE_IDLE_SLEEP)
-    target_compile_definitions (app PUBLIC LAGRANGE_IDLE_SLEEP=1)
+    target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_IDLE_SLEEP=1)
 endif ()
 if (ENABLE_DOWNLOAD_EDIT)
-    target_compile_definitions (app PUBLIC LAGRANGE_DOWNLOAD_EDIT=1)
+    target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_DOWNLOAD_EDIT=1)
 endif ()
 if (ENABLE_CUSTOM_FRAME AND MSYS)
-    target_compile_definitions (app PUBLIC LAGRANGE_CUSTOM_FRAME=1)
+    target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_CUSTOM_FRAME=1)
 endif ()
 target_link_libraries (app PUBLIC the_Foundation::the_Foundation)
 target_link_libraries (app PUBLIC ${SDL2_LDFLAGS})
diff --git a/src/app.c b/src/app.c
index 5f8bdade..3792d35c 100644
--- a/src/app.c
+++ b/src/app.c
@@ -117,7 +117,7 @@ struct Impl_App {
     uint32_t     lastTickerTime;
     uint32_t     elapsedSinceLastTicker;
     iBool        isRunning;
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     iBool        isIdling;
     uint32_t     lastEventTime;
     int          sleepTimer;
@@ -169,7 +169,7 @@ static iString *serializePrefs_App_(const iApp *d) {
     iString *str = new_String();
     const iSidebarWidget *sidebar  = findWidget_App("sidebar");
     const iSidebarWidget *sidebar2 = findWidget_App("sidebar2");
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     appendFormat_String(str, "customframe arg:%d\n", d->prefs.customFrame);
 #endif
     appendFormat_String(str, "window.retain arg:%d\n", d->prefs.retainWindowSize);
@@ -184,7 +184,7 @@ static iString *serializePrefs_App_(const iApp *d) {
         appendFormat_String(str, "sidebar2.width arg:%f gaps:1\n", width_SidebarWidget(sidebar2));
         /* On macOS, maximization should be applied at creation time or the window will take
            a moment to animate to its maximized size. */
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
         if (snap_Window(d->window)) {
             if (~SDL_GetWindowFlags(d->window->win) & SDL_WINDOW_MINIMIZED) {
                 /* Save the actual visible window position, too, because snapped windows may
@@ -337,7 +337,7 @@ static void loadPrefs_App_(iApp *d) {
                 d->initialWindowRect = init_Rect(
                     pos.x, pos.y, argLabel_Command(cmd, "width"), argLabel_Command(cmd, "height"));
             }
-#if !defined (LAGRANGE_DOWNLOAD_EDIT)
+#if !defined (LAGRANGE_ENABLE_DOWNLOAD_EDIT)
             else if (equal_Command(cmd, "downloads")) {
                 continue; /* can't change downloads directory */
             }
@@ -353,7 +353,7 @@ static void loadPrefs_App_(iApp *d) {
         /* Default CA setup. */
         setCACertificates_TlsRequest(&d->prefs.caFile, &d->prefs.caPath);
     }
-#if !defined (LAGRANGE_CUSTOM_FRAME)
+#if !defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     d->prefs.customFrame = iFalse;
 #endif
     iRelease(f);
@@ -447,7 +447,7 @@ static void saveState_App_(const iApp *d) {
     iRelease(f);
 }
 
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
 static uint32_t checkAsleep_App_(uint32_t interval, void *param) {
     iApp *d = param;
     iUnused(d);
@@ -470,6 +470,7 @@ static void terminate_App_(int rc) {
     exit(rc);
 }
 
+#if defined (LAGRANGE_ENABLE_IPC)
 static void communicateWithRunningInstance_App_(iApp *d, iProcessId instance,
                                                 const iStringList *openCmds) {
     iString *cmds = new_String();
@@ -520,6 +521,7 @@ static void communicateWithRunningInstance_App_(iApp *d, iProcessId instance,
 //    }
     terminate_App_(0);
 }
+#endif /* defined (LAGRANGE_ENABLE_IPC) */
 
 static void init_App_(iApp *d, int argc, char **argv) {
     init_CommandLine(&d->args, argc, argv);
@@ -600,6 +602,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
             }
         }
     }
+#if defined (LAGRANGE_ENABLE_IPC)
     /* Only one instance is allowed to run at a time; the runtime files (bookmarks, etc.)
        are not shareable. */ {
         init_Ipc(dataDir_App_());
@@ -614,6 +617,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
         }
         listen_Ipc(); /* We'll respond to commands from other instances. */
     }
+#endif
     printf("Lagrange: A Beautiful Gemini Client\n");
     const iBool isFirstRun =
         !fileExistsCStr_FileInfo(cleanedPath_CStr(concatPath_CStr(dataDir_App_(), "prefs.cfg")));
@@ -686,7 +690,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
     postCommand_App("window.unfreeze");
     d->autoReloadTimer = SDL_AddTimer(60 * 1000, postAutoReloadCommand_App_, NULL);
     postCommand_App("document.autoreload");
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     d->isIdling      = iFalse;
     d->lastEventTime = 0;
     d->sleepTimer    = SDL_AddTimer(1000, checkAsleep_App_, d);
@@ -707,7 +711,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
 }
 
 static void deinit_App(iApp *d) {
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     SDL_RemoveTimer(d->sleepTimer);
 #endif
     SDL_RemoveTimer(d->autoReloadTimer);
@@ -729,7 +733,9 @@ static void deinit_App(iApp *d) {
     deinit_CommandLine(&d->args);
     iRelease(d->launchCommands);
     delete_String(d->execPath);
+#if defined (LAGRANGE_ENABLE_IPC)
     deinit_Ipc();
+#endif
     deinit_SortedArray(&d->tickers);
     deinit_Periodic(&d->periodic);
     deinit_Lang();
@@ -875,7 +881,7 @@ iLocalDef iBool isWaitingAllowed_App_(iApp *d) {
     if (d->warmupFrames > 0) {
         return iFalse;
     }
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     if (d->isIdling) {
         return iFalse;
     }
@@ -928,7 +934,7 @@ void processEvents_App(enum iAppEventMode eventMode) {
             case SDL_APP_DIDENTERFOREGROUND:
                 gotEvents = iTrue;
                 d->warmupFrames = 5;
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
                 d->isIdling = iFalse;
                 d->lastEventTime = SDL_GetTicks();
 #endif
@@ -961,7 +967,7 @@ void processEvents_App(enum iAppEventMode eventMode) {
                 break;
             }
             default: {
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
                 if (ev.type == SDL_USEREVENT && ev.user.code == asleep_UserEventCode) {
                     if (SDL_GetTicks() - d->lastEventTime > idleThreshold_App_ &&
                         isEmpty_SortedArray(&d->tickers)) {
@@ -1050,7 +1056,7 @@ void processEvents_App(enum iAppEventMode eventMode) {
             }
         }
     }
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     if (d->isIdling && !gotEvents && isFinished_Anim(&d->window->rootOffset)) {
         /* This is where we spend most of our time when idle. 60 Hz still quite a lot but we
            can't wait too long after the user tries to interact again with the app. In any
@@ -1123,7 +1129,7 @@ static int run_App_(iApp *d) {
 void refresh_App(void) {
     iApp *d = &app_;
     destroyPending_Widget();
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     if (d->warmupFrames == 0 && d->isIdling) {
         return;
     }
@@ -1200,7 +1206,7 @@ int run_App(int argc, char **argv) {
 
 void postRefresh_App(void) {
     iApp *d = &app_;
-#if defined (LAGRANGE_IDLE_SLEEP)
+#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)
     d->isIdling = iFalse;
 #endif
     const iBool wasPending = exchange_Atomic(&d->pendingRefresh, iTrue);
@@ -1341,7 +1347,7 @@ static iBool handlePrefsCommands_(iWidget *d, const char *cmd) {
     if (equal_Command(cmd, "prefs.dismiss") || equal_Command(cmd, "preferences")) {
         setUiScale_Window(get_Window(),
                           toFloat_String(text_InputWidget(findChild_Widget(d, "prefs.uiscale"))));
-#if defined (LAGRANGE_DOWNLOAD_EDIT)
+#if defined (LAGRANGE_ENABLE_DOWNLOAD_EDIT)
         postCommandf_App("downloads path:%s",
                          cstr_String(text_InputWidget(findChild_Widget(d, "prefs.downloads"))));
 #endif
@@ -2140,6 +2146,7 @@ iBool handleCommand_App(const char *cmd) {
         }
         return iFalse;
     }
+#if defined (LAGRANGE_ENABLE_IPC)
     else if (equal_Command(cmd, "ipc.list.urls")) {
         iProcessId pid = argLabel_Command(cmd, "pid");
         if (pid) {
@@ -2156,6 +2163,7 @@ iBool handleCommand_App(const char *cmd) {
         signal_Ipc(arg_Command(cmd));
         return iTrue;
     }
+#endif /* defined (LAGRANGE_ENABLE_IPC) */
     else {
         return iFalse;
     }
diff --git a/src/ipc.h b/src/ipc.h
index 8127bf86..69852876 100644
--- a/src/ipc.h
+++ b/src/ipc.h
@@ -21,6 +21,7 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
 
 #pragma once
+#if defined (LAGRANGE_ENABLE_IPC)
 
 #include 
 #include 
@@ -39,3 +40,5 @@ enum iIpcWrite {
 };
 
 iBool       write_Ipc           (iProcessId pid, const iString *input, enum iIpcWrite type);
+
+#endif /* defined (LAGRANGE_ENABLE_IPC) */
diff --git a/src/prefs.h b/src/prefs.h
index 6be7fd41..160bb974 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -45,7 +45,7 @@ struct Impl_Prefs {
     iBool            useSystemTheme;
     enum iColorTheme theme;
     enum iColorAccent accent;
-    iBool            customFrame; /* when LAGRANGE_CUSTOM_FRAME is defined */
+    iBool            customFrame; /* when LAGRANGE_ENABLE_CUSTOM_FRAME is defined */
     iBool            retainWindowSize;
     float            uiScale;
     int              zoomPercent;
diff --git a/src/ui/util.c b/src/ui/util.c
index f56baa36..ddaccd68 100644
--- a/src/ui/util.c
+++ b/src/ui/util.c
@@ -1936,7 +1936,7 @@ iWidget *makePreferences_Widget(void) {
     const int bigGap = lineHeight_Text(uiLabel_FontId) * 3 / 4;
     /* General preferences. */ {
         appendTwoColumnPage_(tabs, "${heading.prefs.general}", '1', &headings, &values);
-#if defined (LAGRANGE_DOWNLOAD_EDIT)
+#if defined (LAGRANGE_ENABLE_DOWNLOAD_EDIT)
         addChild_Widget(headings, iClob(makeHeading_Widget("${prefs.downloads}")));
         setId_Widget(addChild_Widget(values, iClob(new_InputWidget(0))), "prefs.downloads");
 #endif
@@ -2014,7 +2014,7 @@ iWidget *makePreferences_Widget(void) {
         }
         addChild_Widget(headings, iClob(makeHeading_Widget("${prefs.accent}")));
         addChildFlags_Widget(values, iClob(accent), arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag);
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
         addChild_Widget(headings, iClob(makeHeading_Widget("${prefs.customframe}")));
         addChild_Widget(values, iClob(makeToggle_Widget("prefs.customframe")));
 #endif
diff --git a/src/ui/window.c b/src/ui/window.c
index bda645f7..a3633580 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -923,7 +923,7 @@ static void setupUserInterface_Window(iWindow *d) {
     setId_Widget(div, "navdiv");
     addChild_Widget(d->root, iClob(div));
 
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     /* Window title bar. */
     if (prefs_App()->customFrame) {
         setPadding1_Widget(div, 1);
@@ -1358,7 +1358,7 @@ static void drawBlank_Window_(iWindow *d) {
     SDL_RenderPresent(d->render);
 }
 
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
 static SDL_HitTestResult hitTest_Window_(SDL_Window *win, const SDL_Point *pos, void *data) {
     iWindow *d = data;
     iAssert(d->win == win);
@@ -1411,7 +1411,7 @@ SDL_HitTestResult hitTest_Window(const iWindow *d, iInt2 pos) {
 
 iBool create_Window_(iWindow *d, iRect rect, uint32_t flags) {
     flags |= SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_HIDDEN;
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     if (prefs_App()->customFrame) {
         /* We are drawing a custom frame so hide the default one. */
         flags |= SDL_WINDOW_BORDERLESS;
@@ -1421,7 +1421,7 @@ iBool create_Window_(iWindow *d, iRect rect, uint32_t flags) {
             width_Rect(rect), height_Rect(rect), flags, &d->win, &d->render)) {
         return iFalse;
     }
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     if (prefs_App()->customFrame) {
         /* Register a handler for window hit testing (drag, resize). */
         SDL_SetWindowHitTest(d->win, hitTest_Window_, d);
@@ -1540,7 +1540,7 @@ void init_Window(iWindow *d, iRect rect) {
         SDL_FreeSurface(surf);
     }
     d->appIcon = NULL;
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     /* Load the app icon for drawing in the title bar. */
     if (prefs_App()->customFrame) {
         SDL_Surface *surf = loadImage_(&imageLagrange64_Embedded, appIconSize_());
@@ -1603,7 +1603,7 @@ static iBool isNormalPlacement_Window_(const iWindow *d) {
 }
 
 static iBool unsnap_Window_(iWindow *d, const iInt2 *newPos) {
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     if (!prefs_App()->customFrame) {
         return iFalse;
     }
@@ -1693,7 +1693,7 @@ static iBool handleWindowEvent_Window_(iWindow *d, const SDL_WindowEvent *ev) {
                 d->isMinimized = iTrue;
                 return iFalse;
             }
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
             /* Set the snap position depending on where the mouse cursor is. */
             if (prefs_App()->customFrame) {
                 SDL_Rect usable;
@@ -1723,7 +1723,7 @@ static iBool handleWindowEvent_Window_(iWindow *d, const SDL_WindowEvent *ev) {
                     return iTrue;
                 }
             }
-#endif /* defined LAGRANGE_CUSTOM_FRAME */
+#endif /* defined LAGRANGE_ENABLE_CUSTOM_FRAME */
             //printf("MOVED: %d, %d\n", ev->data1, ev->data2); fflush(stdout);
             if (unsnap_Window_(d, &newPos)) {
                 return iTrue;
@@ -1813,7 +1813,7 @@ static void applyCursor_Window_(iWindow *d) {
 
 iBool processEvent_Window(iWindow *d, const SDL_Event *ev) {
     switch (ev->type) {
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
         case SDL_SYSWMEVENT: {
             /* We observe native Win32 messages for better user interaction with the
                window frame. Mouse clicks especially will not generate normal SDL
@@ -1966,25 +1966,27 @@ void draw_Window(iWindow *d) {
     }
     /* Draw widgets. */
     d->frameTime = SDL_GetTicks();
-    draw_Widget(d->root);
-#if defined (LAGRANGE_CUSTOM_FRAME)
-    /* App icon. */
-    const iWidget *appIcon = findChild_Widget(d->root, "winbar.icon");
-    if (isVisible_Widget(appIcon)) {
-        const int   size    = appIconSize_();
-        const iRect rect    = bounds_Widget(appIcon);
-        const iInt2 mid     = mid_Rect(rect);
-        const iBool isLight = isLight_ColorTheme(colorTheme_App());
-        iColor iconColor    = get_Color(gotFocus || isLight ? white_ColorId : uiAnnotation_ColorId);
-        SDL_SetTextureColorMod(d->appIcon, iconColor.r, iconColor.g, iconColor.b);
-        SDL_SetTextureAlphaMod(d->appIcon, gotFocus || !isLight ? 255 : 92);
-        SDL_RenderCopy(
-            d->render,
-            d->appIcon,
-            NULL,
-            &(SDL_Rect){ left_Rect(rect) + gap_UI * 1.25f, mid.y - size / 2, size, size });
-    }
+    if (isExposed_Window(d)) {
+        draw_Widget(d->root);
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
+        /* App icon. */
+        const iWidget *appIcon = findChild_Widget(d->root, "winbar.icon");
+        if (isVisible_Widget(appIcon)) {
+            const int   size    = appIconSize_();
+            const iRect rect    = bounds_Widget(appIcon);
+            const iInt2 mid     = mid_Rect(rect);
+            const iBool isLight = isLight_ColorTheme(colorTheme_App());
+            iColor iconColor    = get_Color(gotFocus || isLight ? white_ColorId : uiAnnotation_ColorId);
+            SDL_SetTextureColorMod(d->appIcon, iconColor.r, iconColor.g, iconColor.b);
+            SDL_SetTextureAlphaMod(d->appIcon, gotFocus || !isLight ? 255 : 92);
+            SDL_RenderCopy(
+                d->render,
+                d->appIcon,
+                NULL,
+                &(SDL_Rect){ left_Rect(rect) + gap_UI * 1.25f, mid.y - size / 2, size, size });
+        }
 #endif
+    }
 #if 0
     /* Text cache debugging. */ {
         SDL_Texture *cache = glyphCache_Text();
@@ -2112,7 +2114,7 @@ void setSnap_Window(iWindow *d, int snapMode) {
         }
         return;
     }
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
     if (d->place.snap == snapMode) {
         return;
     }
@@ -2178,7 +2180,7 @@ void setSnap_Window(iWindow *d, int snapMode) {
         arrange_Widget(d->root);
         postRefresh_App();
     }
-#endif /* defined (LAGRANGE_CUSTOM_FRAME) */
+#endif /* defined (LAGRANGE_ENABLE_CUSTOM_FRAME) */
 }
 
 int snap_Window(const iWindow *d) {
diff --git a/src/ui/window.h b/src/ui/window.h
index e3d8b22b..052f8828 100644
--- a/src/ui/window.h
+++ b/src/ui/window.h
@@ -52,7 +52,7 @@ struct Impl_WindowPlacement {
     iInt2 initialPos;
     iRect normalRect;       /* updated when window is moved/resized */
     iInt2 lastNotifiedSize; /* keep track of horizontal/vertical notifications */
-    int   snap;             /* LAGRANGE_CUSTOM_FRAME */
+    int   snap;             /* LAGRANGE_ENABLE_CUSTOM_FRAME */
     int   lastHit;
 };
 
@@ -111,7 +111,7 @@ iBool       isNarrow_Window         (const iWindow *);
 
 iWindow *   get_Window              (void);
 
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
 SDL_HitTestResult hitTest_Window(const iWindow *d, iInt2 pos);
 #endif
 
diff --git a/src/win32.c b/src/win32.c
index 01ec73bf..d040d8a9 100644
--- a/src/win32.c
+++ b/src/win32.c
@@ -64,7 +64,7 @@ void useExecutableIconResource_SDLWindow(SDL_Window *win) {
     }
 }
 
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)

 iInt2 cursor_Win32(void) {
     POINT p;
     GetPhysicalCursorPos(&p);
@@ -191,4 +191,4 @@ void processNativeEvent_Win32(const struct SDL_SysWMmsg *msg, iWindow *window) {
 #endif
     }
 }
-#endif /* defined (LAGRANGE_CUSTOM_FRAME) */
+#endif /* defined (LAGRANGE_ENABLE_CUSTOM_FRAME) */

diff --git a/src/win32.h b/src/win32.h
index 27aa0539..d53a2fe8 100644
--- a/src/win32.h
+++ b/src/win32.h
@@ -32,7 +32,7 @@ void  setDPIAware_Win32(void);
 float desktopDPI_Win32(void);
 void  useExecutableIconResource_SDLWindow(SDL_Window *win);
 
-#if defined (LAGRANGE_CUSTOM_FRAME)
+#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)

 iInt2 cursor_Win32(void);
 void  processNativeEvent_Win32(const struct SDL_SysWMmsg *msg, iWindow *window);
 void  setup_SDLWindow(SDL_Window *);
Proxy Information
Original URL
gemini://git.skyjake.fi/lagrange/work%2Fv1.8/cdiff/be2efda0d56d5cfd6bd377adc440736a326903f2
Status Code
Success (20)
Meta
text/gemini; charset=utf-8
Capsule Response Time
63.770617 milliseconds
Gemini-to-HTML Time
0.683053 milliseconds

This content has been proxied by September (ba2dc).