On 27 Jun 2011, at 08:57, Riccardo Mottola wrote: > Hi, > > On 06/27/11 03:01, Gregory Casamento wrote: >> Riccardo, >> >> >> 1) Cleanly switching from theme to theme when in-window menus are involved. > Yes, this is especially noticeable when native in-windows menus are used, but > that goes along with 3) >> 2) Unloading theme images between themes. When theme A loaded if >> theme B doesn't have images for some of the widgets then theme A's >> images are used instead of the default theme's images as may have been >> intended. > Afaik, unloading was implemented by Richard, but somehow it doesn't work > (anymore).
Yes ... eighteen months ago IIRC, but there have probably been a lot of changes in theming that I haven't been involved with since then... The basic principle was simple. When you load a theme, all the images for that theme are installed. When you unload a theme, all the images for the default theme are installed (which means all system images) When you change themes, you have a sequence of unloading the old theme (which cleans out its images) and loading the new. Now, it's possible to have glitches with this caused by code outside the theming system ... if code makes a *copy* of a system image (rather than retaining it), and caches and re-uses that copy. There may be some such bugs in odd apps or even odd places in the gui library. If so, they should either: 1. not copy the system images, just use them as required .... the best option unless we *know* there is a performance issue. 2. where they must do something like keeping a scaled or otherwise modified copy of a system image for performance, they should have the code observe theme loading notifications and regenerate their cache when a new theme is loaded ... this is a general principle of theme aware software, without which no theming system can work properly. _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
