我推測 tray-indicator.cpp 可能還有 BUG,推測的方法如下:
【第1步】觀察 gcin-2.9.2 的 tray-indicator.cpp 第10列至第14列
這五列的內容如下:
---
#if USE_AY_INDICATOR
#include <libayatana-appindicator/app-indicator.h>
#else
#include <libappindicator/app-indicator.h>
#endif
---
它是利用 USE_AY_INDICATOR 是否被定義的方式,用來選擇是要使用 libayatana-appindicator 還是使用 libappindicator
【第2步】觀察 gcin-2.9.2 的 tray-indicator.cpp 第145列至第151列
其中第146列的內容如下:
---
if (!(handle = dlopen("libappindicator.so", RTLD_LAZY)) && !(handle = dlopen("libappindicator.so.1", RTLD_LAZY)) && !(handle = dlopen("libappindicator3.so.1", RTLD_LAZY))) {
---
這一列只有考慮到使用 libappindicator 的情況,似乎應該也要利用 USE_AY_INDICATOR 是否被定義的判斷方式,一併把使用 libayatana-appindicator 的情況納入考量