[Spice-devel] [PATCH spice 4/4] spicec-x11: Add a class hint to our window managet hints

Hans de Goede hdegoede at redhat.com
Wed Dec 15 07:50:09 PST 2010


This helps people who want to tell their windowmanager to do something special
with spicec, like make it sticky, or whatever, see:
https://bugzilla.redhat.com/show_bug.cgi?id=662452#c4
---
 client/x11/red_window.cpp |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp
index 0816bf3..d7b19f9 100644
--- a/client/x11/red_window.cpp
+++ b/client/x11/red_window.cpp
@@ -1214,6 +1214,7 @@ void RedWindow_p::create(RedWindow& red_window, PixelsSource_p& pix_source,
 
     try {
         int res;
+        XClassHint *class_hint;
 
         XLockDisplay(x_display);
         res = XSaveContext(x_display, window, user_data_context, (XPointer)&red_window);
@@ -1223,8 +1224,16 @@ void RedWindow_p::create(RedWindow& red_window, PixelsSource_p& pix_source,
         }
 
         XSetWMProtocols(x_display, window, &wm_delete_window_atom, 1);
-        XGCValues gc_vals;
+        class_hint = XAllocClassHint();
+        if (!class_hint) {
+            THROW("allocating class hint failed");
+        }
+        class_hint->res_name = (char *)"spicec";
+        class_hint->res_class = (char *)"spicec";
+        XSetClassHint(x_display, window, class_hint);
+        XFree(class_hint);
 
+        XGCValues gc_vals;
         XLockDisplay(x_display);
         gc = XCreateGC(x_display, window, 0, &gc_vals);
         XUnlockDisplay(x_display);
-- 
1.7.3.2



More information about the Spice-devel mailing list