From bd0bae4216d279d8079d15ae6d126a52f3b5e8f3 Mon Sep 17 00:00:00 2001
From: Pieter van Oostrum <pieter@vanoostrum.org>
Date: Wed, 9 Dec 2020 22:53:21 +0100
Subject: [PATCH] Calculate top-level directory for plugins within a directory

---
 libgimpbase/gimpenv.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/libgimpbase/gimpenv.c b/libgimpbase/gimpenv.c
index d4040c80a7..26844aa5ac 100644
--- a/libgimpbase/gimpenv.c
+++ b/libgimpbase/gimpenv.c
@@ -435,6 +435,20 @@ gimp_installation_directory (void)
         g_free (tmp);
         g_free (tmp2);
       }
+    else if (! strcmp (g_path_get_basename (dirname), "plug-ins"))
+      {
+        /*  same for plug-ins in subdirectory, go three levels up from prefix/lib/gimp/x.y  */
+
+        gchar *tmp  = g_path_get_dirname (dirname);
+        gchar *tmp2 = g_path_get_dirname (tmp);
+        gchar *tmp3 = g_path_get_dirname (tmp2);
+
+        toplevel = g_path_get_dirname (tmp3);
+
+        g_free (tmp);
+        g_free (tmp2);
+        g_free (tmp3);
+      }
     else
       {
         /*  if none of the above match, we assume that we are really in a bundle  */
-- 
2.29.2

