Browse Source

Fix for custom gtk widgets, need to use global namespace

tags/v2.4.0
falkTX 3 years ago
parent
commit
7a9e8b692b
2 changed files with 8 additions and 4 deletions
  1. +4
    -2
      source/bridges-ui/CarlaBridgeToolkitGtk.cpp
  2. +4
    -2
      source/utils/CarlaLibUtils.hpp

+ 4
- 2
source/bridges-ui/CarlaBridgeToolkitGtk.cpp View File

@@ -160,6 +160,7 @@ struct GtkLoader {
# if defined(CARLA_OS_MAC)
"libgtk-quartz-2.0.dylib",
"libgtk-x11-2.0.dylib",
"/opt/homebrew/opt/gtk+/lib/libgtk-quartz-2.0.0.dylib",
"/opt/local/lib/libgtk-quartz-2.0.dylib",
"/opt/local/lib/libgtk-x11-2.0.dylib",
# else
@@ -171,7 +172,7 @@ struct GtkLoader {
for (size_t i=0; i<sizeof(filenames)/sizeof(filenames[0]); ++i)
{
filename = filenames[i];
if ((lib = lib_open(filename)) != nullptr)
if ((lib = lib_open(filename, true)) != nullptr)
break;
}

@@ -303,8 +304,9 @@ public:
CARLA_SAFE_ASSERT_RETURN(gtkWindow != nullptr,);

GtkWidget* const widget((GtkWidget*)fPlugin->getWidget());
gtk.container_add(GTK_CONTAINER(fWindow), widget);
CARLA_SAFE_ASSERT_RETURN(widget != nullptr,);

gtk.container_add(GTK_CONTAINER(fWindow), widget);
gtk.window_set_resizable(gtkWindow, options.isResizable);
gtk.window_set_title(gtkWindow, options.windowTitle.buffer());



+ 4
- 2
source/utils/CarlaLibUtils.hpp View File

@@ -35,15 +35,17 @@ typedef void* lib_t;
* May return null, in which case "lib_error" has the error.
*/
static inline
lib_t lib_open(const char* const filename) noexcept
lib_t lib_open(const char* const filename, const bool global = false) noexcept
{
CARLA_SAFE_ASSERT_RETURN(filename != nullptr && filename[0] != '\0', nullptr);

try {
#ifdef CARLA_OS_WIN
return ::LoadLibraryA(filename);
// unused
(void)global;
#else
return ::dlopen(filename, RTLD_NOW|RTLD_LOCAL);
return ::dlopen(filename, RTLD_NOW|(global ? RTLD_GLOBAL : RTLD_LOCAL));
#endif
} CARLA_SAFE_EXCEPTION_RETURN("lib_open", nullptr);
}


Loading…
Cancel
Save