summarylogtreecommitdiffstats
path: root/gtk2.patch
blob: 836b585e929f0f1ad92ea969a6cffb5a71ab4e92 (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
diff -up src/wmfire-1.2.4/src/wmfire.c.orig src/wmfire-1.2.4/src/wmfire.c
--- src/wmfire-1.2.4/src/wmfire.c.orig	2014-05-16 17:21:52.000000000 -0600
+++ src/wmfire-1.2.4/src/wmfire.c	2014-05-16 18:00:49.000000000 -0600
@@ -628,10 +628,21 @@ make_wmfire_dockapp(void)
 	icon = gdk_pixmap_create_from_xpm_d(bm.win, NULL, NULL, icon_xpm);
 	gdk_window_set_icon(bm.win, bm.iconwin, icon, NULL);
 
-	gdk_window_show(bm.win);
+	{
+		Window w, p, dummy1, *dummy2;
+		unsigned int dummy3;
+		Display *dpy = GDK_WINDOW_XDISPLAY(bm.win);
 
-	/* Moved after gdk_window_show due to change in GTK 2.4 */
-	XSetWMHints(GDK_WINDOW_XDISPLAY(bm.win), win, &wmhints);
+		XQueryTree(dpy, win, &dummy1, &p, &dummy2, &dummy3);
+		if (dummy2)
+			XFree(dummy2);
+		w = XCreateSimpleWindow(dpy, p, 0, 0, 1, 1, 0, 0, 0);
+		XReparentWindow(dpy, win, w, 0, 0);
+		gdk_window_show(bm.win);
+		XSetWMHints(dpy, win, &wmhints);
+		XReparentWindow(dpy, win, p, 0, 0);
+		XDestroyWindow(dpy, w);
+	}
 
 	if (bm.x > 0 || bm.y > 0)
 		gdk_window_move(bm.win, bm.x, bm.y);