Stable 0.16.0

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/branches/stable@27391 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2008-12-22 00:15:04 +00:00
commit 1aee5c050b
25 changed files with 221 additions and 90 deletions

View file

@ -1,7 +1,7 @@
1 ANNOUNCE
**********
This is version 0.14.0 of the GNUstep GUI Backend (`gnustep-back').
This is version 0.16.0 of the GNUstep GUI Backend (`gnustep-back').
1.1 What is the GNUstep GUI Backend?
====================================
@ -20,18 +20,16 @@ easily ported to other display systems.
Window's Systems. It works via a DPS emulation engine to emulate the
DPS functions required by the front-end system.
1.2 Noteworthy changes in version `0.14.0'
1.2 Noteworthy changes in version `0.16.0'
==========================================
Added code to automatically make any window which uses the
NSDesktopWindowLevel also be omnipresent.
Many glyph drawing improvements.
Transparent windows implemented in WIN32 backend, better position and
scaling of images. General cleanup of code.
1.3 Where can you get it? How can you compile it?
==================================================
The gstep-back-0.14.0.tar.gz distribution file has been placed at
The gstep-back-0.16.0.tar.gz distribution file has been placed at
`ftp://ftp.gnustep.org/pub/gnustep/core'.
1.4 Where do I send bug reports?

View file

@ -1,4 +1,88 @@
2008-11-14 Wolfgang Lux <wlux@uni-muenster.de>
2008-12-21 Adam Fedor <fedor@gnu.org>
* Version 0.16.0
2008-12-19 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/x11/XGServerEvent.m (check_modifier): Fix an issue where
modifier key settings could be set incorrectly.
2008-12-19 Nicola Pero <nicola.pero@meta-innovation.com>
* All GNUmakefiles: removed GNUSTEP_CORE_SOFTWARE=YES and
added PACKAGE_NAME=gnustep-back.
* GNUmakefile: Export PACKAGE_NAME to reduce chances of a problem
if a GNUmakefile in a subdirectory is missing it.
2008-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
* All GNUmakefiles: added GNUSTEP_CORE_SOFTWARE=YES at the
beginning.
* GNUmakefile: Export GNUSTEP_CORE_SOFTWARE to reduce chances of a
problem if a GNUmakefile in a subdirectory is missing it.
2008-12-17 Fred Kiefer <FredKiefer@gmx.de>
* Source/winlib/WIN32FontInfo.m (-coveredCharacterSet): Set cbThis
element of GLYPHSET structure before calling Windows funtion.
2008-12-17 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/gpbs.m: Remove use of private method for connection keepalive.
Keepalive is now enabled in base when necessary.
2008-12-15 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/x11/XGServerEvent.m (-processEvent:): Ignore
_NET_STATE_WM property changes with Window Maker as it causes
problems with hidden windows.
Add a workaround for Window Maker so that unhidden windows
correctly show their document edited status.
2008-12-11 Fred Kiefer <FredKiefer@gmx.de>
* Source/cairo/CairoContext.m (-GSDrawImage::): Correct test
whether image conversion is needed.
2008-12-10 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/x11/XGServerEvent.m (-runLoopShouldBlock:): Add method to
avoid blocking the run loop when the X event queue is not empty.
2008-12-02 Richard Frith-Macdonald <rfm@gnu.org>
* GNUmakefile:
* Fonts/GNUmakefile:
* Tools/GNUmakefile:
* Source/winlib/GNUmakefile:
* Source/art/GNUmakefile:
* Source/GNUmakefile:
* Source/cairo/GNUmakefile:
* Source/xlib/GNUmakefile:
* Source/win32/GNUmakefile:
* Source/x11/GNUmakefile:
* Source/gsc/GNUmakefile:
* Source/xdps/GNUmakefile:
* Documentation/Back/GNUmakefile:
* Documentation/GNUmakefile:
Don't override installation domain ... fix for bug #24671
2008-11-30 Wolfgang Lux <wolfgang.lux@gmail.com>
* install.sh: Fix header syntax and provide default for make
command argument.
2008-11-20 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/gpbs.m: Use new private method for connection keepalive as
we need it on windows.
2008-11-20 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/x11/XGServerWindow.m ([XGServer -windowlist]): Implement
a fix for bug #24707.
2008-11-14 Wolfgang Lux <wolfgang.lux@gmail.com>
* Tools/gpbs.m (init): Don't change SIGABRT handler to prevent
infinite recursion on abort().

View file

@ -22,9 +22,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# Install into the system root by default
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
include $(GNUSTEP_MAKEFILES)/common.make
# The documents to be generated

View file

@ -22,9 +22,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# Install into the system root by default
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -7,6 +7,13 @@
@include version.texi
@end ifset
@section Noteworthy changes in version @samp{0.16.0}
Transparent windows implemented in WIN32 backend, better position and
scaling of images. General cleanup of code.
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{0.14.0}
Added code to automatically make any window which uses the
@ -14,8 +21,6 @@ Added code to automatically make any window which uses the
Many glyph drawing improvements.
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{0.13.2}
Added basic implementation of window levels on Windows. In general a bunch of

View file

@ -21,8 +21,7 @@
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -31,9 +31,8 @@ ifeq ($(GNUSTEP_MAKEFILES),)
$(error You need to set GNUSTEP_MAKEFILES before compiling!)
endif
# Install into the system root by default
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
export PACKAGE_NAME
RPM_DISABLE_RELOCATABLE=YES
PACKAGE_NEEDS_CONFIGURE = YES
@ -43,8 +42,6 @@ SVN_BASE_URL = svn+ssh://svn.gna.org/svn/gnustep/libs
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=back.make
include $(GNUSTEP_MAKEFILES)/common.make
PACKAGE_NAME = gnustep-back
include ./Version
#

66
NEWS
View file

@ -1,15 +1,21 @@
1 NEWS
******
1.1 Noteworthy changes in version `0.14.0'
1.1 Noteworthy changes in version `0.16.0'
==========================================
Transparent windows implemented in WIN32 backend, better position and
scaling of images. General cleanup of code.
1.2 Noteworthy changes in version `0.14.0'
==========================================
Added code to automatically make any window which uses the
NSDesktopWindowLevel also be omnipresent.
Many glyph drawing improvements.
Many glyph drawing improvements.
1.2 Noteworthy changes in version `0.13.2'
1.3 Noteworthy changes in version `0.13.2'
==========================================
Added basic implementation of window levels on Windows. In general a
@ -23,24 +29,24 @@ bunch of improvements in the Windows backend.
frontend. This version or greater of the backend needs to be used with
gui 0.13.2
1.3 Noteworthy changes in version `0.13.1'
1.4 Noteworthy changes in version `0.13.1'
==========================================
Minor improvements.
1.4 Noteworthy changes in version `0.13.0'
1.5 Noteworthy changes in version `0.13.0'
==========================================
Many improvements to the cairo backend. Add DPSshfill for all backends.
Better handling of X event times.
1.5 Noteworthy changes in version `0.12.0'
1.6 Noteworthy changes in version `0.12.0'
==========================================
Big improvements to the cairo graphics and Window backend. Also better
support for OpenGL.
1.6 Noteworthy changes in version `0.11.0'
1.7 Noteworthy changes in version `0.11.0'
==========================================
Bugfixes to art and xlib.
@ -48,18 +54,18 @@ Bugfixes to art and xlib.
There was some work on the Windows backend for the GDI interface by
Christopher Armstrong.
1.7 Noteworthy changes in version `0.10.3'
1.8 Noteworthy changes in version `0.10.3'
==========================================
Fixes. A lot of Cairo backend work.
1.8 Noteworthy changes in version `0.10.2'
1.9 Noteworthy changes in version `0.10.2'
==========================================
The Backend can set UTF8 window titles where this is allowed.
1.9 Noteworthy changes in version `0.10.1'
==========================================
1.10 Noteworthy changes in version `0.10.1'
===========================================
The art graphics module is the default now. As was previously the case,
if the proper libraries are not found, the configuration will
@ -74,7 +80,7 @@ Cariro version 1.0, although you need to make some minor changes to the
Cairo library before it will work with GNUstep. Due to this, this module
is still considered beta. Ask on the mailing lists for help with this.
1.10 Noteworthy changes in version `0.10.0'
1.11 Noteworthy changes in version `0.10.0'
===========================================
The installed name of the backend now includes an interface version
@ -84,7 +90,7 @@ frontend (GUI) library and the backend.
* Alpha blending was implemented for Windows, although it does not
seem to work on some machines.
1.11 Noteworthy changes in version `0.9.5'
1.12 Noteworthy changes in version `0.9.5'
==========================================
* Added support for window alpha on X servers.
@ -93,7 +99,7 @@ frontend (GUI) library and the backend.
* Some improvements to the Windows backend.
1.12 Noteworthy changes in version `0.9.4'
1.13 Noteworthy changes in version `0.9.4'
==========================================
* Fast drawing on 8 bit displays was added (although it might only
@ -108,7 +114,7 @@ frontend (GUI) library and the backend.
* Add internal window decoration handling.
1.13 Noteworthy changes in version `0.9.3'
1.14 Noteworthy changes in version `0.9.3'
==========================================
* A number of W32 window event enhancements
@ -118,7 +124,7 @@ frontend (GUI) library and the backend.
* libwraster is no longer checked for - image functions now in
frontend
1.14 Noteworthy changes in version `0.9.2'
1.15 Noteworthy changes in version `0.9.2'
==========================================
* Art backend added support for grayscale, one-isblack colorspaces.
@ -129,26 +135,26 @@ frontend (GUI) library and the backend.
* Better font and draw handling on Windows.
1.15 Noteworthy changes in version `0.9.1'
1.16 Noteworthy changes in version `0.9.1'
==========================================
Color on 8 bit displays works correctly now. WindowMaker properties are
always set now in case another manager is emulating WindowMaker styles.
1.16 Noteworthy changes in version `0.9.0'
1.17 Noteworthy changes in version `0.9.0'
==========================================
Some more improvements to copy/paste support following ICCCM
specifications (like COMPOUND_TEXT support).
1.17 Noteworthy changes in version `0.8.9'
1.18 Noteworthy changes in version `0.8.9'
==========================================
* Much improved pasting support between X apps and GNUstep apps.
* Backend headers are no longer installed (now private).
1.18 Noteworthy changes in version `0.8.8'
1.19 Noteworthy changes in version `0.8.8'
==========================================
Full multi-byte/unicode support for East Asian languages was added to
@ -160,57 +166,57 @@ to Kazunobu Kuriyama.
* Art backend works with more versions of freetype.
1.19 Noteworthy changes in version `0.8.7'
1.20 Noteworthy changes in version `0.8.7'
==========================================
Handle NSBezierPath glyph drawing in art backend. art backend compiles
with all freetype except 2.1.3 via ifdefs.
1.20 Noteworthy changes in version `0.8.6'
1.21 Noteworthy changes in version `0.8.6'
==========================================
Bug fixes. See the gnustep-gui NEWS for changes.
1.21 Noteworthy changes in version `0.8.5'
1.22 Noteworthy changes in version `0.8.5'
==========================================
Text system improvements. See the gnustep-gui NEWS for changes.
1.22 Noteworthy changes in version `0.8.3'
1.23 Noteworthy changes in version `0.8.3'
==========================================
See the gnustep-gui NEWS for changes.
1.23 Noteworthy changes in version `0.8.2'
1.24 Noteworthy changes in version `0.8.2'
==========================================
Improved font handling in art backend. Improved compositing with
transformations and clipping in art backend.
1.24 Noteworthy changes in version `0.8.1'
1.25 Noteworthy changes in version `0.8.1'
==========================================
art (libart-based) backend added. Use ./configure -enable-graphics=art
to choose this backend.
1.25 Noteworthy changes in version `0.8.0'
1.26 Noteworthy changes in version `0.8.0'
==========================================
Bug fixes.
1.26 Noteworthy changes in version `0.7.9'
1.27 Noteworthy changes in version `0.7.9'
==========================================
Bug fixes.
1.27 Noteworthy changes in version `0.7.8'
1.28 Noteworthy changes in version `0.7.8'
==========================================
Simplified backend selection using -enable-server and -enable-graphics.
Add -with-library-flags and -with-include-flags for adding additonal
flags. Set name with -with-name
1.28 Noteworthy changes in version `0.7.7'
1.29 Noteworthy changes in version `0.7.7'
==========================================
First release. Most components extracted from xgps. The old backends,

2
README
View file

@ -1,7 +1,7 @@
1 README
********
This is version 0.14.0 of the GNUstep GUI Backend (`gnustep-back').
This is version 0.16.0 of the GNUstep GUI Backend (`gnustep-back').
Here is some introductory info to get you started:

View file

@ -23,9 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# Install into the system root by default
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
include $(GNUSTEP_MAKEFILES)/common.make
include ../config.make

View file

@ -24,8 +24,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -140,7 +140,7 @@
bitmap = (NSBitmapImageRep*)imageref;
colorSpaceName = [bitmap colorSpaceName];
if ([bitmap isPlanar] || ([bitmap bitmapFormat] != 0)
|| ([bitmap bitsPerPixel] != 8) ||
|| ([bitmap bitsPerSample] != 8) ||
(![colorSpaceName isEqualToString: NSDeviceRGBColorSpace] &&
![colorSpaceName isEqualToString: NSCalibratedRGBColorSpace]))
{
@ -150,7 +150,7 @@
NSString *colorSpaceName = NSCalibratedRGBColorSpace;
NSBitmapImageRep *new;
new = [bitmap _convertToFormatBitsPerSample: bitsPerSample
new = [bitmap _convertToFormatBitsPerSample: bitsPerSample
samplesPerPixel: samplesPerPixel
hasAlpha: [bitmap hasAlpha]
isPlanar: isPlanar

View file

@ -20,8 +20,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -201,12 +201,24 @@ NSLog(@"No glyph for U%d", c);
HFONT old;
ms = [NSMutableCharacterSet new];
if (!ms)
return nil;
hdc = CreateCompatibleDC(NULL);
old = SelectObject(hdc, hFont);
count = (unsigned)GetFontUnicodeRanges(hdc, 0);
if (count > 0)
{
gs = (GLYPHSET*)objc_malloc(count);
if (!gs)
{
SelectObject(hdc, old);
DeleteDC(hdc);
RELEASE(ms);
return nil;
}
gs->cbThis = count;
if ((unsigned)GetFontUnicodeRanges(hdc, gs) == count)
{
numberOfGlyphs = gs->cGlyphsSupported;

View file

@ -22,8 +22,7 @@
# If not, see <http://www.gnu.org/licenses/> or write to the
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -146,10 +146,14 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym)
int by,bi;
int key_code = XKeysymToKeycode(xEvent->xkeymap.display, key_sym);
by = key_code / 8;
bi = key_code % 8;
key_vector = xEvent->xkeymap.key_vector;
return (key_vector[by] & (1 << bi));
if (key_code != NoSymbol)
{
by = key_code / 8;
bi = key_code % 8;
key_vector = xEvent->xkeymap.key_vector;
return (key_vector[by] & (1 << bi));
}
return 0;
}
@interface XGServer (WindowOps)
@ -272,6 +276,16 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym)
}
#endif
- (BOOL) runLoopShouldBlock: (BOOL*)trigger
{
*trigger = YES; // Should trigger this event
if (XPending(dpy) > 0)
{
return NO; // Don't block
}
return YES;
}
- (void) receivedEvent: (void*)data
type: (RunLoopEventType)type
extra: (void*)extra
@ -1304,7 +1318,13 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym)
xEvent.xproperty.window,
XGetAtomName(dpy, xEvent.xproperty.atom));
{
if (xEvent.xproperty.atom == generic.netstates.net_wm_state_atom &&
/* Note: Don't rely on _NET_STATE_WM_HIDDEN with Window Maker,
* since it is impossible to distinguish miniaturized and hidden
* windows by their window properties. Fortunately, Window Maker
* will send us client message when a window is miniaturized.
*/
if ((generic.wm & XGWM_WINDOWMAKER) == 0 &&
xEvent.xproperty.atom == generic.netstates.net_wm_state_atom &&
xEvent.xproperty.state == PropertyNewValue)
{
if (cWin == 0 || xEvent.xproperty.window != cWin->ident)
@ -1487,6 +1507,21 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym)
}
}
/* Work around a bug in Window Maker, which does not preserve
* the document edited status and uses the wrong close button
* when a window is shown again after hiding it
*/
if (generic.wm & XGWM_WINDOWMAKER)
{
/* Warning ... X-bug .. when we specify 32bit data X actually expects data
* of type 'long' or 'unsigned long' even on machines where those types
* hold 64bit values.
*/
XChangeProperty(dpy, cWin->ident, generic.win_decor_atom,
generic.win_decor_atom, 32, PropModeReplace,
(unsigned char *)&cWin->win_attrs,
sizeof(GNUstepWMAttributes)/sizeof(CARD32));
}
}
break;

View file

@ -2541,7 +2541,17 @@ NSLog(@"styleoffsets ... guessing offsets\n");
}
}
}
XIconifyWindow(dpy, window->ident, window->screen);
/*
* When the application owns the mini window, we withdraw the window itself
* during miniaturization and put up the mini window instead. However, this
* does not work for WindowMaker, which unmaps the mini window, too, when
* the actual window is withdrawn. Fortunately, miniaturizing the actual
* window does already the right thing on WindowMaker.
*/
if (!generic.flags.appOwnsMiniwindow || (generic.wm & XGWM_WINDOWMAKER))
XIconifyWindow(dpy, window->ident, window->screen);
else
XWithdrawWindow(dpy, window->ident, window->screen);
}
/**

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -23,8 +23,7 @@
# Free Software Foundation, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
PACKAGE_NAME = gnustep-back
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES=../back.make
include $(GNUSTEP_MAKEFILES)/common.make

View file

@ -3,12 +3,12 @@
# The version number of this release.
GNUSTEP_BACK_MAJOR_VERSION=0
GNUSTEP_BACK_MINOR_VERSION=14
GNUSTEP_BACK_MINOR_VERSION=16
GNUSTEP_BACK_SUBMINOR_VERSION=0
# This numeric value should match above
VERSION_NUMBER=014.0
VERSION_NUMBER=016.0
# This numeric value should match the compatible gui interface version
INTERFACE_VERSION_NUMBER=014
INTERFACE_VERSION_NUMBER=016
GNUSTEP_BACK_VERSION=${GNUSTEP_BACK_MAJOR_VERSION}.${GNUSTEP_BACK_MINOR_VERSION}.${GNUSTEP_BACK_SUBMINOR_VERSION}
VERSION=${GNUSTEP_BACK_VERSION}

View file

@ -1,9 +1,9 @@
#/bin/sh
#! /bin/sh
PREFIX=$1
MAKE=$2
MAKE=${2:-make}
. $PREFIX/System/Library/Makefiles/GNUstep.sh
$MAKE install
$MAKE GNUSTEP_INSTALLATION_DOMAIN=SYSTEM install
exit 0
exit 0