diff --git a/common/panel-private.h b/common/panel-private.h
index 769df92e4ab5ea722c96a0ce38dba1a4c25dc84c..fe7aedc9d21c7f9e107c61231bb72dc2c0aca18a 100644
--- a/common/panel-private.h
+++ b/common/panel-private.h
@@ -22,13 +22,15 @@
 #include <gtk/gtk.h>
 #ifdef ENABLE_X11
 #include <gdk/gdkx.h>
+#define WINDOWING_IS_X11() GDK_IS_X11_DISPLAY (gdk_display_get_default ())
 #else
-#define GDK_IS_X11_DISPLAY(display) FALSE
+#define WINDOWING_IS_X11() FALSE
 #endif
 #ifdef ENABLE_WAYLAND
 #include <gdk/gdkwayland.h>
+#define WINDOWING_IS_WAYLAND() GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())
 #else
-#define GDK_IS_WAYLAND_DISPLAY(display) FALSE
+#define WINDOWING_IS_WAYLAND() FALSE
 #endif
 
 /* support macros for debugging (improved macro for better position indication) */
diff --git a/panel/main.c b/panel/main.c
index 404c8fea4f7d75e2db490d4154981eebe9e94698..57464fb6f9e2fc8a321a0e8305abc7712175e6b4 100644
--- a/panel/main.c
+++ b/panel/main.c
@@ -380,7 +380,7 @@ main (gint argc, gchar **argv)
   /* set EWMH source indication */
 #ifdef ENABLE_X11
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_X11 ())
     wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER);
 G_GNUC_END_IGNORE_DEPRECATIONS
 #endif
diff --git a/panel/panel-application.c b/panel/panel-application.c
index 676ca858ffda22cd220e56115de49dfc079aa14f..b9c798941b46020f433a61634b32baf8575ee6f8 100644
--- a/panel/panel-application.c
+++ b/panel/panel-application.c
@@ -229,7 +229,7 @@ panel_application_init (PanelApplication *application)
 
 #ifdef ENABLE_WAYLAND
   /* warn the user about restricted features on Wayland */
-  if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_WAYLAND ())
     {
       if (! gtk_layer_is_supported ())
         g_warning ("Wayland detected without layer-shell support (either because of your"
@@ -691,7 +691,7 @@ panel_application_plugin_provider_signal (XfcePanelPluginProvider       *provide
           /* widget dnd doesn't seem to work on Wayland without holding down a mouse button,
            * which leads to an unsolvable problem in GTK 3 because the plugin can't catch
            * the event before its child widgets (no "capture" phase as in GTK 4) */
-          if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
+          if (WINDOWING_IS_WAYLAND ())
             {
               gint item;
               itembar = gtk_bin_get_child (GTK_BIN (window));
@@ -1233,7 +1233,7 @@ panel_application_load (PanelApplication  *application,
   guint       i;
   gchar     **atom_names;
 
-  if (!disable_wm_check && GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (!disable_wm_check && WINDOWING_IS_X11 ())
     {
       display = XOpenDisplay (NULL);
       if (display == NULL)
diff --git a/panel/panel-module.c b/panel/panel-module.c
index 323c5241376c8f3138f975088e4c69ee04ccc6d1..b08e0045954f4bb2343b78f345aabaaf6de0ba27 100644
--- a/panel/panel-module.c
+++ b/panel/panel-module.c
@@ -362,7 +362,7 @@ panel_module_new_from_desktop_file (const gchar *filename,
           /* run mode of the module, by default everything runs in
            * the wrapper, unless defined otherwise or unsupported */
           if (forced_mode != PANEL_MODULE_RUN_MODE_INTERNAL
-              && (GDK_IS_X11_DISPLAY (gdk_display_get_default ()) || gtk_layer_is_supported ())
+              && (WINDOWING_IS_X11 () || gtk_layer_is_supported ())
               && (forced_mode == PANEL_MODULE_RUN_MODE_EXTERNAL
                   || !xfce_rc_read_bool_entry (rc, "X-XFCE-Internal", FALSE)))
             {
diff --git a/panel/panel-plugin-external-wrapper.c b/panel/panel-plugin-external-wrapper.c
index 8713d6c91b1fcabe80c83521cd2576cf7ae88d96..cb74817a74f18702d46491c028a1df93e95b24fb 100644
--- a/panel/panel-plugin-external-wrapper.c
+++ b/panel/panel-plugin-external-wrapper.c
@@ -509,7 +509,7 @@ panel_plugin_external_wrapper_new (PanelModule  *module,
   panel_return_val_if_fail (unique_id != -1, NULL);
 
 #ifdef ENABLE_X11
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_X11 ())
     return g_object_new (PANEL_TYPE_PLUGIN_EXTERNAL_WRAPPER_X11,
                          "module", module,
                          "unique-id", unique_id,
diff --git a/panel/panel-preferences-dialog.c b/panel/panel-preferences-dialog.c
index c495e0f5ab9b8d840ffb09093014f6fe38cba2ea..bfea0eb3b8d2b4f85621637aa05e8e1a12446065 100644
--- a/panel/panel-preferences-dialog.c
+++ b/panel/panel-preferences-dialog.c
@@ -621,8 +621,7 @@ panel_preferences_dialog_bindings_update (PanelPreferencesDialog *dialog)
   object = gtk_builder_get_object (GTK_BUILDER (dialog), "span-monitors");
   panel_return_if_fail (GTK_IS_WIDGET (object));
   gtk_widget_set_sensitive (GTK_WIDGET (object), span_monitors_sensitive);
-  g_object_set (G_OBJECT (object), "visible",
-                n_monitors > 1 && GDK_IS_X11_DISPLAY (display), NULL);
+  g_object_set (G_OBJECT (object), "visible", n_monitors > 1 && WINDOWING_IS_X11 (), NULL);
 
   g_free (output_name);
 
@@ -1705,7 +1704,7 @@ panel_preferences_dialog_show_internal (PanelWindow *active,
     gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
 
   /* select item in the dialog if needed */
-  if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_WAYLAND ())
     {
       const gchar *item = g_object_get_data (G_OBJECT (active), "prefs-dialog-item");
       if (item != NULL)
diff --git a/panel/panel-window.c b/panel/panel-window.c
index fd6df1f00780b26f209459b78cde0f76366e7c18..457dea78885e62e2b3edbc86259531d66d6838c8 100644
--- a/panel/panel-window.c
+++ b/panel/panel-window.c
@@ -886,7 +886,7 @@ panel_window_set_property (GObject      *object,
       break;
 
     case PROP_SPAN_MONITORS:
-      if (! GDK_IS_X11_DISPLAY (window->display))
+      if (!WINDOWING_IS_X11 ())
         break;
 
       val_bool = g_value_get_boolean (value);
@@ -1259,7 +1259,7 @@ panel_window_button_press_event (GtkWidget      *widget,
       cursor = gdk_cursor_new_for_display (window->display, GDK_FLEUR);
 
       /* grab the pointer for dragging the window */
-      if (GDK_IS_X11_DISPLAY (window->display))
+      if (WINDOWING_IS_X11 ())
         {
           seat = gdk_device_get_seat (event->device);
           status = gdk_seat_grab (seat, event->window,
@@ -2055,7 +2055,7 @@ panel_window_screen_struts_set (PanelWindow *window)
     }
 #endif
 
-  if (! GDK_IS_X11_DISPLAY (window->display))
+  if (!WINDOWING_IS_X11 ())
     return;
 
   /* set the struts */
@@ -2770,7 +2770,7 @@ panel_window_active_window_geometry_changed (XfwWindow   *active_window,
 
           return;
         }
-      else if (active_window == NULL || GDK_IS_WAYLAND_DISPLAY (window->display))
+      else if (active_window == NULL || WINDOWING_IS_WAYLAND ())
         return;
 
       if (xfw_window_get_window_type (active_window) != XFW_WINDOW_TYPE_DESKTOP)
@@ -2938,7 +2938,7 @@ panel_window_active_window_state_changed (XfwWindow *active_window,
 
   panel_return_if_fail (XFW_IS_WINDOW (active_window));
 
-  if (GDK_IS_X11_DISPLAY (window->display))
+  if (WINDOWING_IS_X11 ())
     {
       if (changed & XFW_WINDOW_STATE_SHADED)
         panel_window_active_window_geometry_changed (active_window, window);
@@ -3406,7 +3406,7 @@ panel_window_set_autohide_behavior (PanelWindow *window,
               G_CALLBACK (panel_window_autohide_drag_leave), window);
 
           /* show the window */
-          if (GDK_IS_X11_DISPLAY (window->display) || gtk_layer_is_supported ())
+          if (WINDOWING_IS_X11 () || gtk_layer_is_supported ())
             gtk_widget_show (popup);
         }
 
@@ -4110,7 +4110,7 @@ panel_window_focus_x11 (PanelWindow *window)
 void
 panel_window_focus (PanelWindow *window)
 {
-  if (GDK_IS_X11_DISPLAY (window->display))
+  if (WINDOWING_IS_X11 ())
     panel_window_focus_x11 (window);
   else
     {
diff --git a/plugins/pager/pager.c b/plugins/pager/pager.c
index adafd6bd506a882cc2598a2d8d55299457c5fac2..bd1e7a6e9763e68c838a5b42b0def42d27d22120 100644
--- a/plugins/pager/pager.c
+++ b/plugins/pager/pager.c
@@ -29,9 +29,6 @@
 #include <libxfce4windowing/libxfce4windowing.h>
 #ifdef ENABLE_X11
 #include <libwnck/libwnck.h>
-#define pager_plugin_miniature_view_is_supported() GDK_IS_X11_DISPLAY (gdk_display_get_default ())
-#else
-#define pager_plugin_miniature_view_is_supported() FALSE
 #endif
 
 #include <libxfce4ui/libxfce4ui.h>
@@ -216,7 +213,7 @@ pager_plugin_init (PagerPlugin *plugin)
   plugin->xfw_screen = NULL;
   plugin->scrolling = TRUE;
   plugin->wrap_workspaces = FALSE;
-  plugin->miniature_view = pager_plugin_miniature_view_is_supported ();
+  plugin->miniature_view = WINDOWING_IS_X11 ();
   plugin->numbering = FALSE;
   plugin->ratio = 1.0;
   plugin->pager = NULL;
@@ -297,8 +294,7 @@ pager_plugin_set_property (GObject      *object,
       break;
 
     case PROP_MINIATURE_VIEW:
-      plugin->miniature_view = g_value_get_boolean (value)
-                               && pager_plugin_miniature_view_is_supported ();
+      plugin->miniature_view = g_value_get_boolean (value) && WINDOWING_IS_X11 ();
       if (plugin->xfw_screen != NULL)
         pager_plugin_screen_layout_changed (plugin, NULL);
       break;
@@ -860,7 +856,7 @@ pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
   g_object_bind_property (G_OBJECT (plugin), "miniature-view",
                           G_OBJECT (object), "active",
                           G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
-  gtk_widget_set_sensitive (GTK_WIDGET (object), pager_plugin_miniature_view_is_supported ());
+  gtk_widget_set_sensitive (GTK_WIDGET (object), WINDOWING_IS_X11 ());
 
   object = gtk_builder_get_object (builder, "rows");
   panel_return_if_fail (GTK_IS_ADJUSTMENT (object));
diff --git a/plugins/systray/sn-button.c b/plugins/systray/sn-button.c
index d4b8af0d9f79dfe3e1c4e10eba9f067f42152d34..dd330fc8fd91f738e22e5b482efba2e6065bebf1 100644
--- a/plugins/systray/sn-button.c
+++ b/plugins/systray/sn-button.c
@@ -123,7 +123,7 @@ sn_button_init (SnButton *button)
   event_mask |= GDK_SMOOTH_SCROLL_MASK;
 #ifdef ENABLE_X11
   /* see https://gitlab.xfce.org/xfce/xfwm4/-/issues/641 */
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_X11 ())
     {
       const gchar *wm_name = gdk_x11_screen_get_window_manager_name (gdk_screen_get_default ());
       if (g_strcmp0 (wm_name, "Xfwm4") == 0 || g_strcmp0 (wm_name, "unknown") == 0)
diff --git a/plugins/systray/sn-dialog.c b/plugins/systray/sn-dialog.c
index c2aaf75e124020a5f7a41be7eedd410c1526323e..7d6cecc4eeb79c11c2622103272faf5f2977ab17 100644
--- a/plugins/systray/sn-dialog.c
+++ b/plugins/systray/sn-dialog.c
@@ -846,7 +846,7 @@ sn_dialog_build (SnDialog *dialog)
       gtk_widget_hide (GTK_WIDGET (object));
 #endif
 
-      if (! GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+      if (!WINDOWING_IS_X11 ())
         {
           object = gtk_builder_get_object (dialog->builder, "systray_frame");
           gtk_widget_hide (GTK_WIDGET (object));
diff --git a/plugins/systray/sn-plugin.c b/plugins/systray/sn-plugin.c
index 2b0730d33fd56cc99ae434f40090048e217c09ce..39c71c0bfa4b2341564dba2506b14570b8522143 100644
--- a/plugins/systray/sn-plugin.c
+++ b/plugins/systray/sn-plugin.c
@@ -339,7 +339,7 @@ sn_plugin_construct (XfcePanelPlugin *panel_plugin)
 
 #ifdef ENABLE_X11
   /* Add systray box */
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_X11 ())
     {
       plugin->systray_box = systray_box_new ();
       gtk_box_pack_start (GTK_BOX (plugin->box), plugin->systray_box, TRUE, TRUE, 0);
diff --git a/wrapper/wrapper-plug.c b/wrapper/wrapper-plug.c
index 5b6f859f7da29f14d8770c274b78087957a117d0..514f5c80dd55ca2b94b6136dea65a05c09e33d31 100644
--- a/wrapper/wrapper-plug.c
+++ b/wrapper/wrapper-plug.c
@@ -54,7 +54,7 @@ wrapper_plug_new (gulong socket_id,
   panel_return_val_if_fail (error != NULL && *error == NULL, NULL);
 
 #ifdef ENABLE_X11
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+  if (WINDOWING_IS_X11 ())
     return wrapper_plug_x11_new (socket_id, proxy);
 #endif
 #ifdef HAVE_GTK_LAYER_SHELL