mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-21 05:18:06 +01:00
- client supplied icons that were saved by Window Maker in the directory
~/GNUstep/.AppInfo/WindowMaker/ will be recreated if missing when the application starts. - fixed a small memleak when the client supplied icon was extracted and saved. Check NEWS on how to fix your old broken XPM's saved to ~/GNUstep/.AppInfo/WindowMaker
This commit is contained in:
@@ -53,6 +53,10 @@ Changes since version 0.64.0:
|
|||||||
mouse buttons: MouseLeftButtonAction, MouseMiddleButtonAction,
|
mouse buttons: MouseLeftButtonAction, MouseMiddleButtonAction,
|
||||||
MouseRightButtonAction and MouseWheelAction. They replace the above 3
|
MouseRightButtonAction and MouseWheelAction. They replace the above 3
|
||||||
removed options, but use a different semantic. More in NEWS.
|
removed options, but use a different semantic. More in NEWS.
|
||||||
|
- client supplied icons that were saved by Window Maker in the directory
|
||||||
|
~/GNUstep/.AppInfo/WindowMaker/ will be recreated if missing when the
|
||||||
|
application starts.
|
||||||
|
- fixed a small memleak when the client supplied icon was extracted and saved.
|
||||||
|
|
||||||
|
|
||||||
Changes since version 0.63.1:
|
Changes since version 0.63.1:
|
||||||
|
|||||||
24
NEWS
24
NEWS
@@ -55,6 +55,30 @@ Else you need to use WPrefs.app to bind the actions to the mouse buttons
|
|||||||
again to your old settings. Also if you want to change the mouse wheel
|
again to your old settings. Also if you want to change the mouse wheel
|
||||||
behavior regarding workspaces you can now (use WPrefs.app to do this).
|
behavior regarding workspaces you can now (use WPrefs.app to do this).
|
||||||
|
|
||||||
|
Client supplied icons
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Window Maker saves the client supplied icons in ~/GNUstep/.AppInfo/WindowMaker
|
||||||
|
in XPM format for later use when the app is no longer running (to have the
|
||||||
|
image to display for docked icons for example).
|
||||||
|
|
||||||
|
Until recently the XPM images saved by Window Maker were incorrect, but a
|
||||||
|
recent fix in the code to save XPM's fixed them. But with this fix, all
|
||||||
|
previously saved XPM's in that directory are no longer readable (they give
|
||||||
|
wrong images on screen or fail to load).
|
||||||
|
|
||||||
|
To avoid the need for the user to fix this by hand editing WMWindowAttributes
|
||||||
|
and removing all references to icons in ~/GNUstep/.AppInfo/WindowMaker which
|
||||||
|
can be annoying, new code was added to Window Maker to permit the regeneration
|
||||||
|
of images in ~/GNUstep/.AppInfo/WindowMaker if they are missing.
|
||||||
|
|
||||||
|
With this addition, all you need to do to fix your old broken images, is to
|
||||||
|
delete all *.xpm files from ~/GNUstep/.AppInfo/WindowMaker. Next time the
|
||||||
|
application that is supplying an icon image will start the icon will be
|
||||||
|
recreated if missing, but this time it will be saved with the new XPM save
|
||||||
|
code which produces good XPM images.
|
||||||
|
All the rest of the process is transparent to the user.
|
||||||
|
|
||||||
|
|
||||||
--- 0.64.0
|
--- 0.64.0
|
||||||
|
|
||||||
|
|||||||
@@ -569,7 +569,7 @@ dnl ==============
|
|||||||
|
|
||||||
AC_ARG_ENABLE(hermes,
|
AC_ARG_ENABLE(hermes,
|
||||||
[ --disable-hermes disable Hermes support for wrlib ],
|
[ --disable-hermes disable Hermes support for wrlib ],
|
||||||
hermes=$enableval, hermes=yes, hermes=no)
|
hermes=$enableval, hermes=yes)
|
||||||
|
|
||||||
if test x$hermes = xyes; then
|
if test x$hermes = xyes; then
|
||||||
WM_CHECK_LIB(Hermes, Hermes_ConverterRequest, [])
|
WM_CHECK_LIB(Hermes, Hermes_ConverterRequest, [])
|
||||||
@@ -579,6 +579,7 @@ if test x$hermes = xyes; then
|
|||||||
if test x$ac_cv_header_Hermes_Hermes_h = xyes; then
|
if test x$ac_cv_header_Hermes_Hermes_h = xyes; then
|
||||||
GFXLIBS="$GFXLIBS -lHermes"
|
GFXLIBS="$GFXLIBS -lHermes"
|
||||||
AC_DEFINE(HAVE_HERMES)
|
AC_DEFINE(HAVE_HERMES)
|
||||||
|
hermes_support=yes
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -1002,7 +1003,7 @@ echo "Installation path prefix: $prefix"
|
|||||||
echo "Installation path prefix for binaries: $_bindir"
|
echo "Installation path prefix for binaries: $_bindir"
|
||||||
echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|"
|
echo "Installation path for WPrefs.app: $wprefsdir" | sed -e 's|\$(prefix)|'"$prefix|"
|
||||||
echo "Graphic format libraries: $supported_gfx"
|
echo "Graphic format libraries: $supported_gfx"
|
||||||
if test x$hermes = xyes; then
|
if test x$hermes_support = xyes; then
|
||||||
echo "Hermes support for wrlib enabled"
|
echo "Hermes support for wrlib enabled"
|
||||||
fi
|
fi
|
||||||
echo "Sound support: $sound"
|
echo "Sound support: $sound"
|
||||||
|
|||||||
@@ -25,7 +25,11 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "WindowMaker.h"
|
#include "WindowMaker.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@@ -183,6 +187,7 @@ saveIconNameFor(char *iconPath, char *wm_instance, char *wm_class)
|
|||||||
PLRelease(val);
|
PLRelease(val);
|
||||||
}
|
}
|
||||||
PLRelease(key);
|
PLRelease(key);
|
||||||
|
PLRelease(iconk);
|
||||||
|
|
||||||
if (val && !wPreferences.flags.noupdates)
|
if (val && !wPreferences.flags.noupdates)
|
||||||
PLSave(dict, YES);
|
PLSave(dict, YES);
|
||||||
@@ -398,11 +403,36 @@ wApplicationCreate(WScreen *scr, Window main_window)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (wapp->app_icon) {
|
if (wapp->app_icon) {
|
||||||
char *tmp;
|
char *tmp, *path;
|
||||||
|
struct stat dummy;
|
||||||
|
RImage *image;
|
||||||
|
|
||||||
/* if the displayed icon was supplied by the client, save the icon */
|
|
||||||
tmp = wDefaultGetIconFile(scr, wapp->app_icon->wm_instance,
|
tmp = wDefaultGetIconFile(scr, wapp->app_icon->wm_instance,
|
||||||
wapp->app_icon->wm_class, True);
|
wapp->app_icon->wm_class, True);
|
||||||
|
|
||||||
|
/* If the icon was saved by us from the client supplied icon, but is
|
||||||
|
* missing, recreate it. */
|
||||||
|
if (tmp && strstr(tmp, ".AppInfo/WindowMaker")!=NULL &&
|
||||||
|
stat(tmp, &dummy)!=0 && errno==ENOENT) {
|
||||||
|
wmessage(_("recreating missing icon '%s'"), tmp);
|
||||||
|
path = wIconStore(wapp->app_icon->icon);
|
||||||
|
if (path) {
|
||||||
|
wfree(path);
|
||||||
|
}
|
||||||
|
image = wDefaultGetImage(scr, wapp->app_icon->wm_instance,
|
||||||
|
wapp->app_icon->wm_class);
|
||||||
|
if (image) {
|
||||||
|
wIconChangeImage(wapp->app_icon->icon, image);
|
||||||
|
wAppIconPaint(wapp->app_icon);
|
||||||
|
/* TODO:
|
||||||
|
* wIconChangeImage() should be rewriten to use retain/release
|
||||||
|
* The way it is now is too confusing about where the icon is
|
||||||
|
* finally released. -Dan */
|
||||||
|
/* --this is wrong at the moment-- RReleaseImage(image);*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if the displayed icon was supplied by the client, save the icon */
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
extractClientIcon(wapp->app_icon);
|
extractClientIcon(wapp->app_icon);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
will be removed in a future release because it no longer fits with the
|
will be removed in a future release because it no longer fits with the
|
||||||
semantics. Will be kept for a while to allow a smoother transition.
|
semantics. Will be kept for a while to allow a smoother transition.
|
||||||
More about in NEWS
|
More about in NEWS
|
||||||
|
|
||||||
- Fixed crashing for Pseudocolor visuals with BestMatchRendering
|
- Fixed crashing for Pseudocolor visuals with BestMatchRendering
|
||||||
- Small speed improvement for 24 and 32 bpp, if internal converter is used
|
- Small speed improvement for 24 and 32 bpp, if internal converter is used
|
||||||
- Small speed improvement for generating gradients.
|
- Small speed improvement for generating gradients.
|
||||||
|
|||||||
Reference in New Issue
Block a user