From 30185130f2a66f1285dd93a01226fb2dbb985189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= Date: Tue, 5 Sep 2023 17:01:23 +0200 Subject: [PATCH] Make libx11 optional, guard x11 code paths It's not clear whether libwnck-based functionality will ever have a counterpart on Wayland, so it seems pointless to replace libwnck with libxfce4windowing at this stage. Completes: ecd1e1a64566e8e69b90995917cd525694931aae Related: #75, #78 --- configure.ac.in | 4 ++-- src/process-tree-view.c | 4 ++-- src/process-window.c | 13 +++++++++---- src/process-window.h | 1 - src/settings-dialog.c | 14 ++++++++++++-- src/settings.c | 10 ++++++++-- src/task-manager.c | 5 +---- 7 files changed, 34 insertions(+), 17 deletions(-) diff --git a/configure.ac.in b/configure.ac.in index 7c6e6af..20117fc 100644 --- a/configure.ac.in +++ b/configure.ac.in @@ -69,7 +69,6 @@ XDT_I18N([@LINGUAS@]) dnl *********************************** dnl *** Check for required packages *** dnl *********************************** -XDT_CHECK_LIBX11_REQUIRE() XDT_CHECK_PACKAGE([LIBXMU], [xmu], [1.1.2]) XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.50.0]) XDT_CHECK_PACKAGE([GTK3], [gtk+-3.0], [3.22.0]) @@ -80,9 +79,9 @@ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.14.0]) dnl *********************************** dnl *** Check for optional packages *** dnl *********************************** +XDT_CHECK_OPTIONAL_PACKAGE([LIBX11], [x11], [1.6.7], [libx11], [Libx11 support]) XDT_CHECK_OPTIONAL_PACKAGE([WNCK], [libwnck-3.0], [3.2], [wnck3], [building with libwnck3 for window icons/names], [yes]) -AM_CONDITIONAL([HAVE_WNCK], [test x"$WNCK_FOUND" = x"yes"]) dnl *********************************** dnl ********** Check for skel ********* dnl *********************************** @@ -166,6 +165,7 @@ dnl *************************** echo echo "Build Configuration:" echo +echo "* Libx11: ${LIBX11_VERSION:-no}" echo "* Wnck: ${WNCK_VERSION:-no}" echo "* Cairo: ${CAIRO_VERSION}" echo "* GTK+: ${GTK3_VERSION}" diff --git a/src/process-tree-view.c b/src/process-tree-view.c index 1608975..67dc917 100644 --- a/src/process-tree-view.c +++ b/src/process-tree-view.c @@ -268,14 +268,14 @@ xtm_process_tree_view_finalize (GObject *object) static void column_task_pack_cells (XtmProcessTreeView *treeview, GtkTreeViewColumn *column) { - GtkCellRenderer *cell_cmdline, *cell_icon; + GtkCellRenderer *cell_cmdline; gboolean show_application_icons; g_object_get (treeview->settings, "show-application-icons", &show_application_icons, NULL); if (show_application_icons) { #ifdef HAVE_WNCK - cell_icon = gtk_cell_renderer_pixbuf_new (); + GtkCellRenderer *cell_icon = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (GTK_TREE_VIEW_COLUMN (column), cell_icon, FALSE); gtk_tree_view_column_set_attributes (GTK_TREE_VIEW_COLUMN (column), cell_icon, "pixbuf", XTM_PTV_COLUMN_ICON, "cell-background", XTM_PTV_COLUMN_BACKGROUND, NULL); #endif diff --git a/src/process-window.c b/src/process-window.c index d331761..6e7d0ae 100644 --- a/src/process-window.c +++ b/src/process-window.c @@ -15,6 +15,7 @@ #include #endif +#ifdef HAVE_LIBX11 #include #include #include @@ -22,9 +23,10 @@ #include #include #include +#include +#endif #include -#include #include #include @@ -91,6 +93,7 @@ filter_entry_icon_pressed_cb (GtkEntry *entry, } } +#ifdef HAVE_LIBX11 static Window Select_Window (Display *dpy, int screen) { @@ -181,6 +184,7 @@ xwininfo_clicked_cb (GtkButton *button __unused, gpointer user_data) { } } +#endif static void filter_entry_keyrelease_handler(GtkEntry *entry, @@ -304,12 +308,13 @@ xtm_process_window_init (XtmProcessWindow *window) G_CALLBACK (show_settings_dialog), window); button = GTK_WIDGET (gtk_builder_get_object (window->builder, "button-identify")); - if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) { +#ifdef HAVE_LIBX11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (xwininfo_clicked_cb), window); - } else { + else +#endif gtk_widget_hide (button); - } window->filter_searchbar = GTK_WIDGET (gtk_builder_get_object (window->builder, "filter-searchbar")); { diff --git a/src/process-window.h b/src/process-window.h index 35d7ac2..a0af2a3 100644 --- a/src/process-window.h +++ b/src/process-window.h @@ -14,7 +14,6 @@ #include #endif -#include #include #include diff --git a/src/settings-dialog.c b/src/settings-dialog.c index 264b599..575db9d 100644 --- a/src/settings-dialog.c +++ b/src/settings-dialog.c @@ -13,6 +13,9 @@ #include #include +#ifdef GDK_WINDOWING_X11 +#include +#endif #include @@ -179,8 +182,10 @@ xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window) dialog = GTK_WIDGET (gtk_builder_get_object (builder, "settings-dialog")); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent_window)); -#ifndef HAVE_WNCK gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "button-show-application-icons"))); +#ifdef HAVE_WNCK + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + gtk_widget_show (GTK_WIDGET (gtk_builder_get_object (builder, "button-show-application-icons"))); #endif // Interface @@ -191,10 +196,15 @@ xtm_settings_dialog_new (GtkBuilder *builder, GtkWidget *parent_window) builder_bind_toggle_button (builder, "button-process-tree", settings, "process-tree"); builder_bind_toggle_button (builder, "button-show-legend", settings, "show-legend"); builder_bind_combobox (builder, settings); + // Miscellaneous builder_bind_toggle_button (builder, "button-prompt-terminate-task", settings, "prompt-terminate-task"); builder_bind_toggle_button (builder, "button-show-status-icon", settings, "show-status-icon"); - + gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "button-show-status-icon"))); +#ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + gtk_widget_show (GTK_WIDGET (gtk_builder_get_object (builder, "button-show-status-icon"))); +#endif // Columns builder_bind_toggle_button (builder, "pid", settings, "column-pid"); diff --git a/src/settings.c b/src/settings.c index 6b5e62c..9987a2f 100644 --- a/src/settings.c +++ b/src/settings.c @@ -25,6 +25,9 @@ #include #include #include +#ifdef GDK_WINDOWING_X11 +#include +#endif #include "settings.h" @@ -155,8 +158,11 @@ void xtm_settings_bind_xfconf (XtmSettings *settings, XfconfChannel *channel) { /* general settings */ - xfconf_g_property_bind (channel, SETTING_SHOW_STATUS_ICON, G_TYPE_BOOLEAN, - G_OBJECT (settings), "show-status-icon"); +#ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + xfconf_g_property_bind (channel, SETTING_SHOW_STATUS_ICON, G_TYPE_BOOLEAN, + G_OBJECT (settings), "show-status-icon"); +#endif xfconf_g_property_bind (channel, SETTING_PROMPT_TERMINATE_TASK, G_TYPE_BOOLEAN, G_OBJECT (settings), "prompt-terminate-task"); diff --git a/src/task-manager.c b/src/task-manager.c index 16f5ecf..c12023d 100644 --- a/src/task-manager.c +++ b/src/task-manager.c @@ -24,12 +24,9 @@ #include #include -#ifdef HAVE_WNCK -#include -#endif - #include "task-manager.h" #ifdef HAVE_WNCK +#include #include "app-manager.h" #endif #include "process-tree-view.h" /* for the columns of the model */