[PATCH] Add Basic Support for Other Platforms v2

[email protected] Sun, 05 Jul 2015 15:50:25 +0000
Newsgroups gmane.comp.gnome.nautilus
Message-ID <[email protected]>
 From 315f31321916055aa717981875467b4517295204 Mon Sep 17 00:00:00 2001
 From: canatan <[email protected]>
Date: Sun, 5 Jul 2015 16:49:05 +0000
Subject: [PATCH] Add basic support for platforms v2

there are no big thinks here.i just move x11 stuff into ifdefs
according to gdk defines(gdkconfig.h) which is GDK_WINDOWING_X11
as you know
from here https://bugzilla.gnome.org/show_bug.cgi?id=751625
gtk is able to build platforms that it has not x11 libs other than
win32 or quartz. eg. a wayland platform that hasn't x11 stuff.
i tested it on an x11-less wayland.it is work but some issues
that complains:
gtk_widget_size_allocate():attempt to allocate widget with width -14
and many of dbus-launch fails because of its x11 dependency.
also it is need a patch for gnome-desktop for works which i have.
it is based commit 76c63eb3ee13affac097d6258a8fcc79ce92a321

Best reviews.

Changes from v1

* move x11 stuff into ifdefs which is missing in v1

* also move them into if(GDK_IS_X11_DISPLAY()){} block,needed to work
---
  eel/eel-gdk-extensions.c                        | 52 +++++++-------
  libnautilus-private/nautilus-canvas-container.c | 86 
++++++++++++-----------
  libnautilus-private/nautilus-canvas-dnd.c       |  3 +
  libnautilus-private/nautilus-program-choosing.c |  2 +
  src/nautilus-application.c                      |  3 +
  src/nautilus-desktop-canvas-view.c              | 92 
+++++++++++++------------
  src/nautilus-desktop-window.c                   | 62 +++++++++--------
  src/nautilus-mime-actions.c                     | 37 ++++++----
  src/nautilus-shell-search-provider.c            |  3 +
  src/nautilus-view.c                             | 18 ++---
  src/nautilus-window.c                           | 34 ++++-----
  11 files changed, 213 insertions(+), 179 deletions(-)

diff --git a/eel/eel-gdk-extensions.c b/eel/eel-gdk-extensions.c
index d288fc9..3171216 100644
--- a/eel/eel-gdk-extensions.c
+++ b/eel/eel-gdk-extensions.c
@@ -44,35 +44,37 @@ eel_gdk_parse_geometry (const char *string, int 
*x_return, int *y_return,
  {
  	EelGdkGeometryFlags gdk_flags = EEL_GDK_NO_VALUE;
  #ifdef GDK_WINDOWING_X11
-	int x11_flags;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		int x11_flags;

-	g_return_val_if_fail (string != NULL, EEL_GDK_NO_VALUE);
-	g_return_val_if_fail (x_return != NULL, EEL_GDK_NO_VALUE);
-	g_return_val_if_fail (y_return != NULL, EEL_GDK_NO_VALUE);
-	g_return_val_if_fail (width_return != NULL, EEL_GDK_NO_VALUE);
-	g_return_val_if_fail (height_return != NULL, EEL_GDK_NO_VALUE);
+		g_return_val_if_fail (string != NULL, EEL_GDK_NO_VALUE);
+		g_return_val_if_fail (x_return != NULL, EEL_GDK_NO_VALUE);
+		g_return_val_if_fail (y_return != NULL, EEL_GDK_NO_VALUE);
+		g_return_val_if_fail (width_return != NULL, EEL_GDK_NO_VALUE);
+		g_return_val_if_fail (height_return != NULL, EEL_GDK_NO_VALUE);

-	x11_flags = XParseGeometry (string, x_return, y_return,
+		x11_flags = XParseGeometry (string, x_return, y_return,
  				    width_return, height_return);

-	gdk_flags = EEL_GDK_NO_VALUE;
-	if (x11_flags & XValue) {
-		gdk_flags |= EEL_GDK_X_VALUE;
-	}
-	if (x11_flags & YValue) {
-		gdk_flags |= EEL_GDK_Y_VALUE;
-	}
-	if (x11_flags & WidthValue) {
-		gdk_flags |= EEL_GDK_WIDTH_VALUE;
-	}
-	if (x11_flags & HeightValue) {
-		gdk_flags |= EEL_GDK_HEIGHT_VALUE;
-	}
-	if (x11_flags & XNegative) {
-		gdk_flags |= EEL_GDK_X_NEGATIVE;
-	}
-	if (x11_flags & YNegative) {
-		gdk_flags |= EEL_GDK_Y_NEGATIVE;
+		gdk_flags = EEL_GDK_NO_VALUE;
+		if (x11_flags & XValue) {
+			gdk_flags |= EEL_GDK_X_VALUE;
+		}
+		if (x11_flags & YValue) {
+			gdk_flags |= EEL_GDK_Y_VALUE;
+		}
+		if (x11_flags & WidthValue) {
+			gdk_flags |= EEL_GDK_WIDTH_VALUE;
+		}
+		if (x11_flags & HeightValue) {
+			gdk_flags |= EEL_GDK_HEIGHT_VALUE;
+		}
+		if (x11_flags & XNegative) {
+			gdk_flags |= EEL_GDK_X_NEGATIVE;
+		}
+		if (x11_flags & YNegative) {
+			gdk_flags |= EEL_GDK_Y_NEGATIVE;
+		}
  	}
  #endif
  	return gdk_flags;
diff --git a/libnautilus-private/nautilus-canvas-container.c 
b/libnautilus-private/nautilus-canvas-container.c
index c578b3b..3800367 100644
--- a/libnautilus-private/nautilus-canvas-container.c
+++ b/libnautilus-private/nautilus-canvas-container.c
@@ -2342,20 +2342,21 @@ get_rubber_color (NautilusCanvasContainer 
*container,
                    GdkRGBA *bordercolor)
  {
  #ifdef GDK_WINDOWING_X11
-	Atom         representative_colors_atom,real_type;
-	Display     *display;
-	gint         result = -1;
-	gint         real_format;
-	gulong       items_read = 0;
-	gulong       items_left = 0;
-	gchar       *colors;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		Atom         representative_colors_atom,real_type;
+		Display     *display;
+		gint         result = -1;
+		gint         real_format;
+		gulong       items_read = 0;
+		gulong       items_left = 0;
+		gchar       *colors;

-	if (nautilus_canvas_container_get_is_desktop (container)) {
-		representative_colors_atom = gdk_x11_get_xatom_by_name 
("_GNOME_BACKGROUND_REPRESENTATIVE_COLORS");
-		display = gdk_x11_display_get_xdisplay (gdk_display_get_default ());
+		if (nautilus_canvas_container_get_is_desktop (container)) {
+			representative_colors_atom = gdk_x11_get_xatom_by_name 
("_GNOME_BACKGROUND_REPRESENTATIVE_COLORS");
+			display = gdk_x11_display_get_xdisplay (gdk_display_get_default ());

-		gdk_error_trap_push ();
-		result = XGetWindowProperty (display,
+			gdk_error_trap_push ();
+			result = XGetWindowProperty (display,
  		                             GDK_ROOT_WINDOW (),
  		                             representative_colors_atom,
  		                             0L,
@@ -2367,45 +2368,46 @@ get_rubber_color (NautilusCanvasContainer 
*container,
  		                             &items_read,
  		                             &items_left,
  		                             (guchar **) &colors);
-		gdk_error_trap_pop_ignored ();
-	}
+			gdk_error_trap_pop_ignored ();
+		}

-	if (result == Success && items_read) {
+		if (result == Success && items_read) {
  		/* by treating the result as a nul-terminated string, we
  		 * select the first colour in the list.
  		 */
-		GdkRGBA read;
-		gdouble shade;
+			GdkRGBA read;
+			gdouble shade;

-		gdk_rgba_parse (&read, colors);
-		XFree (colors);
+			gdk_rgba_parse (&read, colors);
+			XFree (colors);

-		/* Border
-		 *
-		 * We shade darker colours to be slightly lighter and
-		 * lighter ones to be slightly darker.
-		 */
-		shade = read.green < 0.5 ? 1.1 : 0.9;
-		bordercolor->red = read.red * shade;
-		bordercolor->green = read.green * shade;
-		bordercolor->blue = read.blue * shade;
-		bordercolor->alpha = 1.0;
-
-		/* Background */
-		*bgcolor = read;
-		bgcolor->alpha = 0.6;
-	} else {
-		/* Fallback to the style context if we can't get the Atom */
-		GtkStyleContext *context;
+			/* Border
+			 *
+			 * We shade darker colours to be slightly lighter and
+			 * lighter ones to be slightly darker.
+			 */
+			shade = read.green < 0.5 ? 1.1 : 0.9;
+			bordercolor->red = read.red * shade;
+			bordercolor->green = read.green * shade;
+			bordercolor->blue = read.blue * shade;
+			bordercolor->alpha = 1.0;
+
+			/* Background */
+			*bgcolor = read;
+			bgcolor->alpha = 0.6;
+		} else {
+			/* Fallback to the style context if we can't get the Atom */
+			GtkStyleContext *context;

-		context = gtk_widget_get_style_context (GTK_WIDGET (container));
-		gtk_style_context_save (context);
-		gtk_style_context_add_class (context, GTK_STYLE_CLASS_RUBBERBAND);
+			context = gtk_widget_get_style_context (GTK_WIDGET (container));
+			gtk_style_context_save (context);
+			gtk_style_context_add_class (context, GTK_STYLE_CLASS_RUBBERBAND);

-		gtk_style_context_get_background_color (context, 
GTK_STATE_FLAG_NORMAL, bgcolor);
-		gtk_style_context_get_border_color (context, GTK_STATE_FLAG_NORMAL, 
bordercolor);
+			gtk_style_context_get_background_color (context, 
GTK_STATE_FLAG_NORMAL, bgcolor);
+			gtk_style_context_get_border_color (context, GTK_STATE_FLAG_NORMAL, 
bordercolor);

-		gtk_style_context_restore (context);
+			gtk_style_context_restore (context);
+		}
  	}
  #endif

diff --git a/libnautilus-private/nautilus-canvas-dnd.c 
b/libnautilus-private/nautilus-canvas-dnd.c
index b4da369..6b514bc 100644
--- a/libnautilus-private/nautilus-canvas-dnd.c
+++ b/libnautilus-private/nautilus-canvas-dnd.c
@@ -48,7 +48,10 @@
  #include <eel/eel-string.h>
  #include <eel/eel-vfs-extensions.h>
  #include <gdk/gdkkeysyms.h>
+#include <gdk/gdk.h>
+#ifdef GDK_WINDOWING_X11
  #include <gdk/gdkx.h>
+#endif
  #include <gtk/gtk.h>
  #include <glib/gi18n.h>

diff --git a/libnautilus-private/nautilus-program-choosing.c 
b/libnautilus-private/nautilus-program-choosing.c
index 7160214..32212a7 100644
--- a/libnautilus-private/nautilus-program-choosing.c
+++ b/libnautilus-private/nautilus-program-choosing.c
@@ -38,7 +38,9 @@
  #include <stdlib.h>

  #include <gdk/gdk.h>
+#ifdef GDK_WINDOWING_X11
  #include <gdk/gdkx.h>
+#endif

  void
  nautilus_launch_application_for_mount (GAppInfo *app_info,
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index bde2330..5a6b9cd 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -64,7 +64,10 @@
  #include <gio/gio.h>
  #include <eel/eel-gtk-extensions.h>
  #include <eel/eel-stock-dialogs.h>
+#include <gdk/gdk.h>
+#ifdef GDK_WINDOWING_X11
  #include <gdk/gdkx.h>
+#endif
  #include <gtk/gtk.h>

  G_DEFINE_TYPE (NautilusApplication, nautilus_application, 
GTK_TYPE_APPLICATION);
diff --git a/src/nautilus-desktop-canvas-view.c 
b/src/nautilus-desktop-canvas-view.c
index 251fe9a..8c87f97 100644
--- a/src/nautilus-desktop-canvas-view.c
+++ b/src/nautilus-desktop-canvas-view.c
@@ -135,19 +135,20 @@ net_workarea_changed (NautilusDesktopCanvasView 
*canvas_view,
  	long *nworkareas = NULL;

  #ifdef GDK_WINDOWING_X11
-	GdkAtom type_returned;
-	int format_returned;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		GdkAtom type_returned;
+		int format_returned;

-	g_return_if_fail (NAUTILUS_IS_DESKTOP_CANVAS_VIEW (canvas_view));
+		g_return_if_fail (NAUTILUS_IS_DESKTOP_CANVAS_VIEW (canvas_view));

-	canvas_container = get_canvas_container (canvas_view);
+		canvas_container = get_canvas_container (canvas_view);

-	/* Find the number of desktops so we know how long the
-	 * workareas array is going to be (each desktop will have four
-	 * elements in the workareas array describing
-	 * x,y,width,height) */
-	gdk_error_trap_push ();
-	if (!gdk_property_get (window,
+		/* Find the number of desktops so we know how long the
+		 * workareas array is going to be (each desktop will have four
+		 * elements in the workareas array describing
+		 * x,y,width,height) */
+		gdk_error_trap_push ();
+		if (!gdk_property_get (window,
  			       gdk_atom_intern ("_NET_NUMBER_OF_DESKTOPS", FALSE),
  			       gdk_x11_xatom_to_atom (XA_CARDINAL),
  			       0, 4, FALSE,
@@ -155,13 +156,13 @@ net_workarea_changed (NautilusDesktopCanvasView 
*canvas_view,
  			       &format_returned,
  			       &length_returned,
  			       (guchar **) &nworkareas)) {
-		g_warning("Can not calculate _NET_NUMBER_OF_DESKTOPS");
-	}
-	if (gdk_error_trap_pop()
-	    || nworkareas == NULL
-	    || type_returned != gdk_x11_xatom_to_atom (XA_CARDINAL)
-	    || format_returned != 32)
-		g_warning("Can not calculate _NET_NUMBER_OF_DESKTOPS");
+			g_warning("Can not calculate _NET_NUMBER_OF_DESKTOPS");
+		}
+		if (gdk_error_trap_pop()
+	    	|| nworkareas == NULL
+	    	|| type_returned != gdk_x11_xatom_to_atom (XA_CARDINAL)
+	    	|| format_returned != 32)
+			g_warning("Can not calculate _NET_NUMBER_OF_DESKTOPS");

  	/* Note : gdk_property_get() is broken (API documents admit
  	 * this).  As a length argument, it expects the number of
@@ -173,9 +174,9 @@ net_workarea_changed (NautilusDesktopCanvasView 
*canvas_view,
  	 * request does not correspond to the number of bytes you get
  	 * back, and is the reason for the workaround below.
  	 */
-	gdk_error_trap_push ();
-	if (nworkareas == NULL || (*nworkareas < 1)
-	    || !gdk_property_get (window,
+		gdk_error_trap_push ();
+		if (nworkareas == NULL || (*nworkareas < 1)
+	    	|| !gdk_property_get (window,
  				  gdk_atom_intern ("_NET_WORKAREA", FALSE),
  				  gdk_x11_xatom_to_atom (XA_CARDINAL),
  				  0, ((*nworkareas) * 4 * 4), FALSE,
@@ -183,23 +184,24 @@ net_workarea_changed (NautilusDesktopCanvasView 
*canvas_view,
  				  &format_returned,
  				  &length_returned,
  				  (guchar **) &workareas)) {
-		g_warning("Can not get _NET_WORKAREA");
-		workareas = NULL;
-	}
+			g_warning("Can not get _NET_WORKAREA");
+			workareas = NULL;
+		}

-	if (gdk_error_trap_pop ()
-	    || workareas == NULL
-	    || type_returned != gdk_x11_xatom_to_atom (XA_CARDINAL)
-	    || ((*nworkareas) * 4 * sizeof(long)) != length_returned
-	    || format_returned != 32) {
-		g_warning("Can not determine workarea, guessing at layout");
-		nautilus_canvas_container_set_margins (canvas_container,
+		if (gdk_error_trap_pop ()
+   	 		|| workareas == NULL
+	    	|| type_returned != gdk_x11_xatom_to_atom (XA_CARDINAL)
+	    	|| ((*nworkareas) * 4 * sizeof(long)) != length_returned
+	    	|| format_returned != 32) {
+			g_warning("Can not determine workarea, guessing at layout");
+			nautilus_canvas_container_set_margins (canvas_container,
  						     0, 0, 0, 0);
-	} else {
-		screen = gdk_window_get_screen (window);
+		} else {
+			screen = gdk_window_get_screen (window);

-		canvas_container_set_workarea
-			(canvas_container, screen, workareas, length_returned / sizeof 
(long));
+			canvas_container_set_workarea
+				(canvas_container, screen, workareas, length_returned / sizeof 
(long));
+		}
  	}
  #endif

@@ -221,18 +223,20 @@ desktop_canvas_view_property_filter (GdkXEvent 
*gdk_xevent,
  				   gpointer data)
  {
  #ifdef GDK_WINDOWING_X11
-	XEvent *xevent = gdk_xevent;
-	NautilusDesktopCanvasView *canvas_view;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		XEvent *xevent = gdk_xevent;
+		NautilusDesktopCanvasView *canvas_view;

-	canvas_view = NAUTILUS_DESKTOP_CANVAS_VIEW (data);
+		canvas_view = NAUTILUS_DESKTOP_CANVAS_VIEW (data);

-	switch (xevent->type) {
-	case PropertyNotify:
-		if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name 
("_NET_WORKAREA"))
-			net_workarea_changed (canvas_view, event->any.window);
-		break;
-	default:
-		break;
+		switch (xevent->type) {
+		case PropertyNotify:
+			if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name 
("_NET_WORKAREA"))
+				net_workarea_changed (canvas_view, event->any.window);
+			break;
+		default:
+			break;
+		}
  	}
  #endif
  	return GDK_FILTER_CONTINUE;
diff --git a/src/nautilus-desktop-window.c 
b/src/nautilus-desktop-window.c
index 7c95314..4a83b89 100644
--- a/src/nautilus-desktop-window.c
+++ b/src/nautilus-desktop-window.c
@@ -118,48 +118,50 @@ static void
  nautilus_desktop_window_init_selection (NautilusDesktopWindow *window)
  {
  #ifdef GDK_WINDOWING_X11
-	char selection_name[32];
-	GdkAtom selection_atom;
-	Window selection_owner;
-	GdkDisplay *display;
-	GtkWidget *selection_widget;
-	GdkScreen *screen;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		char selection_name[32];
+		GdkAtom selection_atom;
+		Window selection_owner;
+		GdkDisplay *display;
+		GtkWidget *selection_widget;
+		GdkScreen *screen;

-	screen = gdk_screen_get_default ();
+		screen = gdk_screen_get_default ();

-	g_snprintf (selection_name, sizeof (selection_name),
+		g_snprintf (selection_name, sizeof (selection_name),
  		    "_NET_DESKTOP_MANAGER_S%d", gdk_screen_get_number (screen));
-	selection_atom = gdk_atom_intern (selection_name, FALSE);
-	display = gdk_screen_get_display (screen);
+		selection_atom = gdk_atom_intern (selection_name, FALSE);
+		display = gdk_screen_get_display (screen);

-	selection_owner = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display),
+		selection_owner = XGetSelectionOwner (GDK_DISPLAY_XDISPLAY (display),
  					      gdk_x11_atom_to_xatom_for_display (display,
  										 selection_atom));
-	if (selection_owner != None) {
-		g_critical ("Another desktop manager in use; desktop window won't be 
created");
-		return;
-	}
+		if (selection_owner != None) {
+			g_critical ("Another desktop manager in use; desktop window won't be 
created");
+			return;
+		}

-	selection_widget = gtk_invisible_new_for_screen (screen);
-	/* We need this for gdk_x11_get_server_time() */
-	gtk_widget_add_events (selection_widget, GDK_PROPERTY_CHANGE_MASK);
+		selection_widget = gtk_invisible_new_for_screen (screen);
+		/* We need this for gdk_x11_get_server_time() */
+		gtk_widget_add_events (selection_widget, GDK_PROPERTY_CHANGE_MASK);

-	if (!gtk_selection_owner_set_for_display (display,
+		if (!gtk_selection_owner_set_for_display (display,
  						  selection_widget,
  						  selection_atom,
  						  gdk_x11_get_server_time (gtk_widget_get_window 
(selection_widget)))) {
-		gtk_widget_destroy (selection_widget);
-		g_critical ("Can't set ourselves as selection owner for desktop 
manager; "
+			gtk_widget_destroy (selection_widget);
+			g_critical ("Can't set ourselves as selection owner for desktop 
manager; "
  			    "desktop window won't be created");
-		return;
-	}
+			return;
+		}

-	g_signal_connect (selection_widget, "selection-get",
+		g_signal_connect (selection_widget, "selection-get",
  			  G_CALLBACK (selection_get_cb), window);
-	g_signal_connect (selection_widget, "selection-clear-event",
+		g_signal_connect (selection_widget, "selection-clear-event",
  			  G_CALLBACK (selection_clear_event_cb), window);

-	window->details->desktop_selection = selection_widget;
+		window->details->desktop_selection = selection_widget;
+	}
  #endif
  }

@@ -321,14 +323,16 @@ static void
  set_wmspec_desktop_hint (GdkWindow *window)
  {
  #ifdef GDK_WINDOWING_X11
-	GdkAtom atom;
+	if(GDK_IS_X11_WINDOW(window)){
+		GdkAtom atom;

-	atom = gdk_atom_intern ("_NET_WM_WINDOW_TYPE_DESKTOP", FALSE);
+		atom = gdk_atom_intern ("_NET_WM_WINDOW_TYPE_DESKTOP", FALSE);

-	gdk_property_change (window,
+		gdk_property_change (window,
  			     gdk_atom_intern ("_NET_WM_WINDOW_TYPE", FALSE),
  			     gdk_x11_xatom_to_atom (XA_ATOM), 32,
  			     GDK_PROP_MODE_REPLACE, (guchar *) &atom, 1);
+	}
  #endif
  }

diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c
index 2251383..a5288ee 100644
--- a/src/nautilus-mime-actions.c
+++ b/src/nautilus-mime-actions.c
@@ -33,7 +33,10 @@
  #include <glib/gi18n.h>
  #include <glib/gstdio.h>
  #include <string.h>
+#include <gdk/gdk.h>
+#ifdef GDK_WINDOWING_X11
  #include <gdk/gdkx.h>
+#endif

  #include <libnautilus-private/nautilus-file-attributes.h>
  #include <libnautilus-private/nautilus-file.h>
@@ -1093,22 +1096,24 @@ search_for_application_dbus_call_notify_cb 
(GDBusProxy   *proxy,
  static void
  search_for_application_mime_type (ActivateParametersInstall 
*parameters_install, const gchar *mime_type)
  {
-	GdkWindow *window;
-	guint xid = 0;
-	const char *mime_types[2];
-
-	g_assert (parameters_install->proxy != NULL);
-
-	/* get XID from parent window */
-	window = gtk_widget_get_window (GTK_WIDGET 
(parameters_install->parent_window));
-	if (window != NULL) {
-		xid = GDK_WINDOW_XID (window);
-	}
+#ifdef GDK_WINDOWING_X11
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		GdkWindow *window;
+		guint xid = 0;
+		const char *mime_types[2];
+
+		g_assert (parameters_install->proxy != NULL);
+
+		/* get XID from parent window */
+		window = gtk_widget_get_window (GTK_WIDGET 
(parameters_install->parent_window));
+		if (window != NULL) {
+			xid = GDK_WINDOW_XID (window);
+		}

-	mime_types[0] = mime_type;
-	mime_types[1] = NULL;
+		mime_types[0] = mime_type;
+		mime_types[1] = NULL;

-	g_dbus_proxy_call (parameters_install->proxy,
+		g_dbus_proxy_call (parameters_install->proxy,
  			   "InstallMimeTypes",
  			   g_variant_new ("(u^ass)",
  					  xid,
@@ -1120,7 +1125,9 @@ search_for_application_mime_type 
(ActivateParametersInstall *parameters_install,
  			   (GAsyncReadyCallback) search_for_application_dbus_call_notify_cb,
  			   parameters_install);

-	DEBUG ("InstallMimeType method invoked for %s", mime_type);
+		DEBUG ("InstallMimeType method invoked for %s", mime_type);
+	}
+#endif
  }

  static void
diff --git a/src/nautilus-shell-search-provider.c 
b/src/nautilus-shell-search-provider.c
index 78cfb83..1683754 100644
--- a/src/nautilus-shell-search-provider.c
+++ b/src/nautilus-shell-search-provider.c
@@ -26,7 +26,10 @@
  #include <gio/gio.h>
  #include <string.h>
  #include <glib/gi18n.h>
+#include <gdk/gdk.h>
+#ifdef GDK_WINDOWING_X11
  #include <gdk/gdkx.h>
+#endif

  #include <libnautilus-private/nautilus-file.h>
  #include <libnautilus-private/nautilus-file-utilities.h>
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index df6046f..65d04e3 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -820,17 +820,19 @@ nautilus_view_preview_files (NautilusView *view,
  			     GArray *locations)
  {
  #ifdef GDK_WINDOWING_X11
-	gchar *uri;
-	guint xid;
-	GtkWidget *toplevel;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		gchar *uri;
+		guint xid;
+		GtkWidget *toplevel;

-	uri = nautilus_file_get_uri (files->data);
-	toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view));
+		uri = nautilus_file_get_uri (files->data);
+		toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view));

-	xid = gdk_x11_window_get_xid (gtk_widget_get_window (toplevel));
-	nautilus_previewer_call_show_file (uri, xid, TRUE);
+		xid = gdk_x11_window_get_xid (gtk_widget_get_window (toplevel));
+		nautilus_previewer_call_show_file (uri, xid, TRUE);

-	g_free (uri);
+		g_free (uri);
+	}
  #endif
  }

diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index b156e65..0317b60 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -1238,33 +1238,35 @@ format_cb (GtkMenuItem *item,
  	   gpointer     user_data)
  {
  #ifdef GDK_WINDOWING_X11
-	NautilusWindow *window = NAUTILUS_WINDOW (user_data);
-	GAppInfo *app_info;
-	gchar *cmdline, *device_identifier, *xid_string;
-	GVolume *volume;
+	if(GDK_IS_X11_DISPLAY(gdk_display_get_default())){
+		NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+		GAppInfo *app_info;
+		gchar *cmdline, *device_identifier, *xid_string;
+		GVolume *volume;

-	volume = g_object_get_data (G_OBJECT (item), "nautilus-volume");
+		volume = g_object_get_data (G_OBJECT (item), "nautilus-volume");

-	g_assert (volume != NULL && G_IS_VOLUME (volume));
+		g_assert (volume != NULL && G_IS_VOLUME (volume));

-	device_identifier = g_volume_get_identifier (volume, 
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
+		device_identifier = g_volume_get_identifier (volume, 
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);

-	xid = (gint) gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET 
(window)));
-	xid_string = g_strdup_printf ("%d", xid);
+		xid = (gint) gdk_x11_window_get_xid (gtk_widget_get_window 
(GTK_WIDGET (window)));
+		xid_string = g_strdup_printf ("%d", xid);

-	cmdline = g_strconcat ("gnome-disks ",
+		cmdline = g_strconcat ("gnome-disks ",
  			       "--block-device ", device_identifier, " ",
  			       "--format-device ",
  			       "--xid ", xid_string,
  			       NULL);

-	app_info = g_app_info_create_from_commandline (cmdline, NULL, 0, 
NULL);
-	g_app_info_launch (app_info, NULL, NULL, NULL);
+		app_info = g_app_info_create_from_commandline (cmdline, NULL, 0, 
NULL);
+		g_app_info_launch (app_info, NULL, NULL, NULL);

-	g_free (cmdline);
-	g_free (device_identifier);
-	g_free (xid_string);
-	g_clear_object (&app_info);
+		g_free (cmdline);
+		g_free (device_identifier);
+		g_free (xid_string);
+		g_clear_object (&app_info);
+	}
  #endif
  }

-- 
2.4.5

-- 
nautilus-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/nautilus-list