[Spice-devel] [PATCH vdagent 1/2] vdagent: add GTK+

Jakub Janků janku.jakub.jj at gmail.com
Thu Oct 26 17:27:48 UTC 2017


This is a preparatory patch for GTK+ vdagent redesign.

Since most of the vdagent code still uses X11 lib,
force GDK to use X11 backend by calling
gdk_set_allowed_backends("x11").
---
 Makefile.am           | 2 ++
 configure.ac          | 1 +
 src/vdagent/vdagent.c | 5 +++++
 3 files changed, 8 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 4689713..5a5b014 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,6 +15,7 @@ src_spice_vdagent_CFLAGS =			\
 	$(X_CFLAGS)				\
 	$(SPICE_CFLAGS)				\
 	$(GLIB2_CFLAGS)				\
+	$(GTK_CFLAGS)				\
 	$(ALSA_CFLAGS)				\
 	-I$(srcdir)/src				\
 	-DUDSCS_NO_SERVER			\
@@ -24,6 +25,7 @@ src_spice_vdagent_LDADD =			\
 	$(X_LIBS)				\
 	$(SPICE_LIBS)				\
 	$(GLIB2_LIBS)				\
+	$(GTK_LIBS)				\
 	$(ALSA_LIBS)				\
 	$(NULL)
 
diff --git a/configure.ac b/configure.ac
index d92b527..4f4bc0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,6 +86,7 @@ AC_ARG_ENABLE([static-uinput],
               [enable_static_uinput="no"])
 
 PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.34])
+PKG_CHECK_MODULES([GTK], [gtk+-3.0])
 PKG_CHECK_MODULES(X, [xfixes xrandr >= 1.3 xinerama x11])
 PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.12.13])
 PKG_CHECK_MODULES(ALSA, [alsa >= 1.0.22])
diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
index ac90634..4710a44 100644
--- a/src/vdagent/vdagent.c
+++ b/src/vdagent/vdagent.c
@@ -36,6 +36,7 @@
 #include <spice/vd_agent.h>
 #include <poll.h>
 #include <glib-unix.h>
+#include <gtk/gtk.h>
 
 #include "udscs.h"
 #include "vdagentd-proto.h"
@@ -400,6 +401,7 @@ int main(int argc, char *argv[])
     g_option_context_set_summary(context,
                                  "\tSpice session guest agent: X11\n"
                                  "\tVersion: " VERSION);
+    g_option_context_add_group(context, gtk_get_option_group(FALSE));
     g_option_context_parse(context, &argc, &argv, &error);
     g_option_context_free(context);
 
@@ -427,6 +429,9 @@ int main(int argc, char *argv[])
     if (do_daemonize)
         parent_socket = daemonize();
 
+    gdk_set_allowed_backends("x11");
+    gtk_init(NULL, NULL);
+
 reconnect:
     if (version_mismatch) {
         syslog(LOG_INFO, "Version mismatch, restarting");
-- 
2.13.6



More information about the Spice-devel mailing list