1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-21 13:28:05 +01:00

Bug fixes for 0.20.3 pre-release 2

This commit is contained in:
dan
1998-11-03 12:53:26 +00:00
parent abde3e0c4e
commit 59eb947539
80 changed files with 1280 additions and 585 deletions

View File

@@ -69,7 +69,13 @@ wColormapInstallForWindow(WScreen *scr, WWindow *wwin)
if (scr->current_colormap != attributes.colormap) {
scr->current_colormap = attributes.colormap;
XInstallColormap(dpy, attributes.colormap);
/*
* ICCCM 2.0: some client requested permission
* to install colormaps by itself and we granted.
* So, we can't install any colormaps.
*/
if (!scr->flags.colormap_stuff_blocked)
XInstallColormap(dpy, attributes.colormap);
}
}
}
@@ -81,9 +87,11 @@ wColormapInstallForWindow(WScreen *scr, WWindow *wwin)
if (scr->current_colormap != attributes.colormap) {
scr->current_colormap = attributes.colormap;
XInstallColormap(dpy, attributes.colormap);
if (!scr->flags.colormap_stuff_blocked)
XInstallColormap(dpy, attributes.colormap);
}
}
XSync(dpy, False);
}
@@ -110,3 +118,18 @@ wColormapUninstallRoot(WScreen *scr)
}
}
void
wColormapAllowClientInstallation(WScreen *scr, Bool starting)
{
scr->flags.colormap_stuff_blocked = starting;
/*
* Client stopped managing the colormap stuff. Restore the colormap
* that would be installed if the client did not request colormap
* stuff.
*/
if (!starting) {
XInstallColormap(dpy, scr->current_colormap);
XSync(dpy, False);
}
}