mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-10 16:00:18 +00:00
Investigated the XFCE tray issue and confirmed the code path depends on build-time AppIndicator availability: GTK3 uses AppIndicator/StatusNotifier only when Ayatana/AppIndicator headers/libs were present at compile time; otherwise it falls back to GtkStatusIcon behavior. That fallback is less reliable across XFCE setups, which explains why one user could miss the tray icon.
Added a new Meson feature option appindicator (default auto) so this backend is explicitly controllable.
Updated GTK Meson logic to honor -Dappindicator=... and fail fast if enabled is requested but neither ayatana-appindicator3-0.1 nor appindicator3-0.1 is found (prevents silently shipping a build without AppIndicator tray support).
Updated AppImage CI configure flags to force -Dappindicator=enabled, which should prevent AppImage artifacts from lacking StatusNotifier/AppIndicator tray support in XFCE-like environments.
This commit is contained in:
@@ -40,15 +40,21 @@ if get_option('gtk3')
|
||||
zoitechat_gtk_cflags += '-DHAVE_GTK3'
|
||||
|
||||
if host_machine.system() != 'windows'
|
||||
appindicator_dep = dependency('ayatana-appindicator3-0.1', required: false)
|
||||
if appindicator_dep.found()
|
||||
zoitechat_gtk_deps += appindicator_dep
|
||||
zoitechat_gtk_cflags += '-DHAVE_AYATANA_APPINDICATOR'
|
||||
else
|
||||
appindicator_dep = dependency('appindicator3-0.1', required: false)
|
||||
appindicator_opt = get_option('appindicator')
|
||||
|
||||
if appindicator_opt.allowed()
|
||||
appindicator_dep = dependency('ayatana-appindicator3-0.1', required: false)
|
||||
if appindicator_dep.found()
|
||||
zoitechat_gtk_deps += appindicator_dep
|
||||
zoitechat_gtk_cflags += '-DHAVE_APPINDICATOR'
|
||||
zoitechat_gtk_cflags += '-DHAVE_AYATANA_APPINDICATOR'
|
||||
else
|
||||
appindicator_dep = dependency('appindicator3-0.1', required: false)
|
||||
if appindicator_dep.found()
|
||||
zoitechat_gtk_deps += appindicator_dep
|
||||
zoitechat_gtk_cflags += '-DHAVE_APPINDICATOR'
|
||||
elif appindicator_opt.enabled()
|
||||
error('appindicator=enabled, but neither ayatana-appindicator3-0.1 nor appindicator3-0.1 was found')
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user