summaryrefslogtreecommitdiff
blob: ead8310c40990b7f65ebe09c4a02b94153696f45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- llpp-7/link.c
+++ llpp-7/link.c
@@ -1982,6 +1982,32 @@
     CAMLreturn (caml_copy_double (w));
 }
 
+#if !defined (_WIN32) && !defined (__APPLE__)
+#undef pixel
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <GL/glx.h>
+
+static void set_wm_class (void)
+{
+    Display *dpy;
+    Window win;
+    int screen;
+    XClassHint hint;
+
+    dpy = XOpenDisplay (getenv ("DISPLAY"));
+    screen = DefaultScreen (dpy);
+    hint.res_name = "llpp";
+    hint.res_class = "llpp";
+    win = glXGetCurrentDrawable ();
+    XSetClassHint (dpy, win, &hint);
+    XCloseDisplay (dpy);
+}
+#else
+#define set_wm_class()
+#endif
+
 CAMLprim value ml_init (value sock_v, value params_v)
 {
     CAMLparam2 (sock_v, params_v);
@@ -2044,5 +2070,6 @@
     }
 #endif
 
+    set_wm_class ();
     CAMLreturn (Val_unit);
 }