libgimpbase, libgimp, app: pass icon theme dir to plug-ins through config
Pass the current icon theme directory to plug-ins through the config message, and add a gimp_icon_theme_dir() libgimp function for retrieving it. Note that we already have a similar gimp_icon_get_theme_dir() PDB function, which we keep around, since it can be used to dynamically query for the current icon dir, unlike the former, and since it returns a dynamically-allocated string, while the rest of the config-related functions return statically allocated strings. Use the new function, instead of gimp_get_icon_theme_dir(), in gimp_ui_init(). This allows gimp_ui_init() to run without making any PDB calls. Consequently, this allows us to start plug-ins that call gimp_ui_init() without entering the main loop in the main app. We're going to add a plug-in that displays an interactive dialog while the main app is blocking waiting for an operation to complete, and we need to be able to start the plug-in without entering the main loop, to avoid the possibility of arbitrary code being executed during the wait. Bump the protocol version.
Showing with 60 additions and 4 deletions