39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
--- gtk+-2.6.4/gdk/x11/gdkwindow-x11.c 2005-01-25 20:51:36.000000000 +0200
|
|
+++ gtk+-2.6.4/gdk/x11/gdkwindow-x11.c 2005-04-06 16:19:35.350164320 +0300
|
|
@@ -1286,6 +1286,7 @@
|
|
GdkToplevelX11 *toplevel;
|
|
Atom atoms[7];
|
|
gint i;
|
|
+ gint propmode;
|
|
|
|
private = (GdkWindowObject*) window;
|
|
toplevel = _gdk_x11_window_get_toplevel (window);
|
|
@@ -1295,6 +1296,12 @@
|
|
|
|
update_wm_hints (window, TRUE);
|
|
|
|
+ /* If the window has _NET_WM_STATE key specified, use it as the property mode */
|
|
+ propmode = (gint)g_object_get_data (G_OBJECT (window), "_NET_WM_STATE");
|
|
+
|
|
+ if (!propmode)
|
|
+ propmode = PropModeReplace;
|
|
+
|
|
/* We set the spec hints regardless of whether the spec is supported,
|
|
* since it can't hurt and it's kind of expensive to check whether
|
|
* it's supported.
|
|
@@ -1366,10 +1373,11 @@
|
|
XChangeProperty (xdisplay,
|
|
xwindow,
|
|
gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE"),
|
|
- XA_ATOM, 32, PropModeReplace,
|
|
+ XA_ATOM, 32, propmode,
|
|
(guchar*) atoms, i);
|
|
- }
|
|
- else
|
|
+ }
|
|
+ /* Don't delete the property, unless we are replacing it */
|
|
+ else if (propmode == PropModeReplace )
|
|
{
|
|
XDeleteProperty (xdisplay,
|
|
xwindow,
|