--- mate-control-center-1.26.0.old/configure.ac 2023-04-28 16:12:05.281295458 +0200 +++ mate-control-center-1.26.0/configure.ac 2023-04-28 16:48:44.374329792 +0200 @@ -84,30 +84,50 @@ AM_CONDITIONAL(HAVE_TYPING_BREAK, test "x$TYPING_BREAK" = xtyping-break) -dnl app indicator -APPINDICATOR_PKG=appindicator3-0.1 +dnl app indicator (Ubuntu and Ayatana implementation) +AYATANA_APPINDICATOR_PKG=ayatana-appindicator3-0.1 +UBUNTU_APPINDICATOR_PKG=appindicator3-0.1 + +PKG_CHECK_EXISTS($AYATANA_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED, + [have_appindicator_ayatana="yes"], + [have_appindicator_ayatana="no"]) +PKG_CHECK_EXISTS($UBUNTU_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED, + [have_appindicator_ubuntu="yes"], + [have_appindicator_ubuntu="no"]) AC_ARG_ENABLE(appindicator, AS_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for application indicators ]), [enable_appindicator=$enableval], [enable_appindicator="auto"]) -if test x$enable_appindicator = xauto ; then - PKG_CHECK_EXISTS([$APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED], - enable_appindicator="yes", - enable_appindicator="no") +if test "x$enable_appindicator" = "xauto" && + (test "x$have_appindicator_ayatana" = "xyes" || + test "x$have_appindicator_ubuntu" = "xyes"); then + AC_MSG_NOTICE([Enabling AppIndicator support (as --enable-appindicator=auto was used).]) + enable_appindicator="yes" fi -if test x$enable_appindicator = xyes ; then - PKG_CHECK_EXISTS([$APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED],, - AC_MSG_ERROR([appindicator-0.1 is not installed])) - PKG_CHECK_MODULES(APP_INDICATOR, - $APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED) - AC_SUBST(APP_INDICATOR_CFLAGS) - AC_SUBST(APP_INDICATOR_LIBS) - AC_DEFINE(HAVE_APP_INDICATOR, 1, [Have AppIndicator]) +if test "x$enable_appindicator" = "xyes"; then + if test "x$have_appindicator_ayatana" = "xyes"; then + AC_MSG_NOTICE([Buidling against Ayatana AppIndicator.]) + PKG_CHECK_MODULES(AYATANA_APPINDICATOR, + [$AYATANA_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED], + [AC_DEFINE(HAVE_AYATANA_APPINDICATOR, 1, [Have Ayatana AppIndicator])]) + AC_SUBST(AYATANA_APPINDICATOR_CFLAGS) + AC_SUBST(AYATANA_APPINDICATOR_LIBS) + elif test "x$have_appindicator_ubuntu" = "xyes"; then + AC_MSG_NOTICE([Buidling against Ubuntu AppIndicator.]) + PKG_CHECK_MODULES(UBUNTU_APPINDICATOR, + [$UBUNTU_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED], + [AC_DEFINE(HAVE_UBUNTU_APPINDICATOR, 1, [Have Ubuntu AppIndicator])]) + AC_SUBST(UBUNTU_APPINDICATOR_CFLAGS) + AC_SUBST(UBUNTU_APPINDICATOR_LIBS) + else + AC_MSG_ERROR([Neither Ayatana AppIndicator nor Ubuntu AppIndicator library is present, but you enabled AppIndicator support.]) + fi fi -AM_CONDITIONAL(HAVE_APP_INDICATOR, test x"$enable_appindicator" = xyes) +AM_CONDITIONAL(HAVE_AYATANA_APPINDICATOR, test x"$have_appindicator_ayatana" = xyes -a x"$enable_appindicator" = xyes) +AM_CONDITIONAL(HAVE_UBUNTU_APPINDICATOR, test x"$have_appindicator_ubuntu" = xyes -a x"$enable_appindicator" = xyes) dnl keyboard-properties-capplet savecppflags=$CPPFLAGS @@ -322,7 +342,10 @@ Warning flags: ${WARN_CFLAGS} Linker flags: ${LDFLAGS} - Appindicator: ${enable_appindicator} + AppIndicator enabled: ${enable_appindicator} + Ayatana AppIndicator (preferred) ${have_appindicator_ayatana} + Ubuntu AppIndicator (legacy) ${have_appindicator_ubuntu} + Libmate-slab: ${have_libmateslab} Accountsservice: ${have_accountsservice} Native Language support: ${USE_NLS} --- mate-control-center-1.26.0.old/typing-break/drwright.c 2023-04-28 16:12:05.282295452 +0200 +++ mate-control-center-1.26.0/typing-break/drwright.c 2023-04-28 16:27:03.082651572 +0200 @@ -30,9 +30,11 @@ #include #include -#ifdef HAVE_APP_INDICATOR -#include -#endif /* HAVE_APP_INDICATOR */ +#if defined(HAVE_AYATANA_APPINDICATOR) +# include +#elif defined(HAVE_UBUNTU_APPINDICATOR) +# include +#endif #define MATE_DESKTOP_USE_UNSTABLE_API #include @@ -43,11 +45,11 @@ #include "drw-utils.h" #include "drw-timer.h" -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) #define BLINK_TIMEOUT 200 #define BLINK_TIMEOUT_MIN 120 #define BLINK_TIMEOUT_FACTOR 100 -#endif /* HAVE_APP_INDICATOR */ +#endif typedef enum { STATE_START, @@ -59,10 +61,10 @@ STATE_BREAK_DONE } DrwState; -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) #define TYPING_MONITOR_ACTIVE_ICON "bar-green" #define TYPING_MONITOR_ATTENTION_ICON "bar-red" -#endif /* HAVE_APP_INDICATOR */ +#endif struct _DrWright { /* Widgets. */ @@ -88,7 +90,7 @@ gboolean enabled; guint clock_timeout_id; -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) AppIndicator *indicator; #else guint blink_timeout_id; @@ -102,7 +104,7 @@ cairo_surface_t *green_bar; cairo_surface_t *disabled_bar; GdkPixbuf *composite_bar; -#endif /* HAVE_APP_INDICATOR */ +#endif GtkWidget *warn_dialog; }; @@ -124,11 +126,11 @@ DrWright *dr); static void popup_about_cb (GtkAction *action, DrWright *dr); -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) static void init_app_indicator (DrWright *dr); #else static void init_tray_icon (DrWright *dr); -#endif /* HAVE_APP_INDICATOR */ +#endif static GList * create_secondary_break_windows (void); static const GtkActionEntry actions[] = { @@ -147,7 +149,7 @@ dr->break_time = 10; } -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) static void update_app_indicator (DrWright *dr) { @@ -304,32 +306,32 @@ return FALSE; } -#endif /* HAVE_APP_INDICATOR */ +#endif static void start_blinking (DrWright *dr) { -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) if (!dr->blink_timeout_id) { dr->blink_on = TRUE; blink_timeout_cb (dr); } /*gtk_widget_show (GTK_WIDGET (dr->icon));*/ -#endif /* HAVE_APP_INDICATOR */ +#endif } static void stop_blinking (DrWright *dr) { -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) if (dr->blink_timeout_id) { g_source_remove (dr->blink_timeout_id); dr->blink_timeout_id = 0; } /*gtk_widget_hide (GTK_WIDGET (dr->icon));*/ -#endif /* HAVE_APP_INDICATOR */ +#endif } static gboolean @@ -397,9 +399,9 @@ dr->break_window = NULL; } -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) set_status_icon (dr->icon, dr->neutral_bar); -#endif /* HAVE_APP_INDICATOR */ +#endif dr->save_last_time = 0; @@ -437,9 +439,9 @@ } stop_blinking (dr); -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) set_status_icon (dr->icon, dr->red_bar); -#endif /* HAVE_APP_INDICATOR */ +#endif drw_timer_start (dr->timer); @@ -480,9 +482,9 @@ case STATE_BREAK_DONE_SETUP: stop_blinking (dr); -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) set_status_icon (dr->icon, dr->green_bar); -#endif /* HAVE_APP_INDICATOR */ +#endif dr->state = STATE_BREAK_DONE; break; @@ -498,11 +500,11 @@ dr->last_elapsed_time = elapsed_time; -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) update_app_indicator (dr); #else update_icon (dr); -#endif /* HAVE_APP_INDICATOR */ +#endif return TRUE; } @@ -512,45 +514,45 @@ { gint min; gchar *str; -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) GtkWidget *item; -#endif /* HAVE_APP_INDICATOR */ +#endif if (!dr->enabled) { -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) app_indicator_set_status (dr->indicator, APP_INDICATOR_STATUS_PASSIVE); #else gtk_status_icon_set_tooltip_text (dr->icon, _("Disabled")); -#endif /* HAVE_APP_INDICATOR */ +#endif return TRUE; } min = get_time_left (dr); if (min >= 1) { -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) str = g_strdup_printf (_("Take a break now (next in %dm)"), min); #else str = g_strdup_printf (ngettext("%d minute until the next break", "%d minutes until the next break", min), min); -#endif /* HAVE_APP_INDICATOR */ +#endif } else { -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) str = g_strdup_printf (_("Take a break now (next in less than one minute)")); #else str = g_strdup_printf (_("Less than one minute until the next break")); -#endif /* HAVE_APP_INDICATOR */ +#endif } -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) item = gtk_ui_manager_get_widget (dr->ui_manager, "/Pop/TakeABreak"); gtk_menu_item_set_label (GTK_MENU_ITEM (item), str); #else gtk_status_icon_set_tooltip_text (dr->icon, str); -#endif /* HAVE_APP_INDICATOR */ +#endif g_free (str); @@ -665,7 +667,7 @@ NULL); } -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) static void popup_menu_cb (GtkWidget *widget, guint button, @@ -684,7 +686,7 @@ 0, gtk_get_current_event_time ()); } -#endif /* HAVE_APP_INDICATOR */ +#endif static void break_window_done_cb (GtkWidget *window, @@ -724,11 +726,11 @@ drw_timer_start (dr->timer); maybe_change_state (dr); update_status (dr); -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) update_app_indicator (dr); #else update_icon (dr); -#endif /* HAVE_APP_INDICATOR */ +#endif } static void @@ -745,7 +747,7 @@ dr->secondary_break_windows = NULL; } -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) static void init_app_indicator (DrWright *dr) { @@ -792,7 +794,7 @@ G_CALLBACK (popup_menu_cb), dr); } -#endif /* HAVE_APP_INDICATOR */ +#endif static GList * create_secondary_break_windows (void) @@ -891,7 +893,7 @@ G_CALLBACK (activity_detected_cb), dr); -#ifdef HAVE_APP_INDICATOR +#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR) init_app_indicator (dr); #else dr->neutral_bar = cairo_image_surface_create_from_png (IMAGEDIR "/bar.png"); @@ -900,7 +902,7 @@ dr->disabled_bar = cairo_image_surface_create_from_png (IMAGEDIR "/bar-disabled.png"); init_tray_icon (dr); -#endif /* HAVE_APP_INDICATOR */ +#endif g_timeout_add_seconds (12, (GSourceFunc) update_status, --- mate-control-center-1.26.0.old/typing-break/Makefile.am 2023-04-28 16:12:05.283295447 +0200 +++ mate-control-center-1.26.0/typing-break/Makefile.am 2023-04-28 16:30:45.343491923 +0200 @@ -32,9 +32,14 @@ mate_typing_monitor_LDADD += @LIBCANBERRA_GTK_LIBS@ endif -if HAVE_APP_INDICATOR - mate_typing_monitor_CFLAGS += -DHAVE_APP_INDICATOR @APP_INDICATOR_CFLAGS@ - mate_typing_monitor_LDADD += @APP_INDICATOR_LIBS@ +if HAVE_AYATANA_APPINDICATOR + mate_typing_monitor_CFLAGS += -DHAVE_AYATANA_APPINDICATOR @AYATANA_APPINDICATOR_CFLAGS@ + mate_typing_monitor_LDADD += @AYATANA_APPINDICATOR_LIBS@ +endif + +if HAVE_UBUNTU_APPINDICATOR + mate_typing_monitor_CFLAGS += -DHAVE_UBUNTU_APPINDICATOR @UBUNTU_APPINDICATOR_CFLAGS@ + mate_typing_monitor_LDADD += @UBUNTU_APPINDICATOR_LIBS@ endif imagedir = $(pkgdatadir)/pixmaps --- mate-control-center-1.26.0.old/typing-break/main.c 2023-04-28 16:12:05.282295452 +0200 +++ mate-control-center-1.26.0/typing-break/main.c 2023-04-28 16:32:09.781067404 +0200 @@ -31,7 +31,7 @@ gboolean debug = FALSE; -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) static gboolean have_tray (void) { @@ -50,7 +50,7 @@ return FALSE; } } -#endif /* HAVE_APP_INDICATOR */ +#endif int main (int argc, char *argv[]) @@ -98,7 +98,7 @@ return 0; } -#ifndef HAVE_APP_INDICATOR +#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR) if (!no_check && !have_tray ()) { GtkWidget *dialog; @@ -116,7 +116,7 @@ gtk_widget_destroy (dialog); } -#endif /* HAVE_APP_INDICATOR */ +#endif drwright_new ();