Re: Fresh stuff for download: GLib 2.0.7, GTK+ 2.0.9, Pango 1.0.5

Todd Kulesza <[email protected]>
Newsgroups gmane.comp.video.gimp.windows.devel
Message-ID <[email protected]>
Tor, this release is fantastic!  Thanks for all your hard work!

If anyone's interested, I've made an end-user installer for these 
packages which also includes the thin-ice, lighthouseblue, and bluecurve 
(set as the default) theme engines.  The themes haven't been tested 
*too* extensively (just a couple of days of normal usage), but they seem 
to be working fine here, and bluecurve looks gorgeous :]  You can find 
the package on http://www.dropline.net/jade/download.html along with 
Jade, an eBay Management program you can use to see GTK+ 2.0.9 in action.

Todd Kulesza

Tor Lillqvist wrote:

> At the usual place, www.gimp.org/win32/downloads.html . The
> Win32-related entries from the ChangeLogs are included below. *Lots*
> of improvement has been done to GTK+ 2.0 (and important stuff to Pango
> 1.0, too). All test and demo program features seem to work, at least
> on NT/2K, except "big windows" (> 32K coordinates).
>
> GLib 2.0:
>
> 2002-11-18  Tor Lillqvist
>
> 	* glib/gspawn-win32.c (do_spawn_with_pipes): Do handle
> 	G_SPAWN_DO_NOT_REAP_CHILD after all, similarily as on Unix. If the
> 	flag is not set, don't call DuplicateHandle() on the handle
> 	returned by the helper process, and set the "child pid" as
> 	returned to the caller to zero. Close the handle to the helper
> 	process in all cases.
>
> 2002-11-18  Tor Lillqvist
>
> 	[Win32] Fix the asynchronous g_spawn* to return the process handle
> 	of the started program properly. (Note: not the process id. The
> 	spawn*() functions in the C runtime return the created process's
> 	handle. There doesn't seem to be any way to get the process id of
> 	a child process if you have the handle. But then, the process
> 	handle usually is more useful anyway.)
>
> 2002-10-27  Tor Lillqvist
>
> 	* glib/gmain.c (g_poll): Fix for bug reported by Herman Bloggs
> 	(http://mail.gnome.org/archives/gtk-devel-list/2002-October/msg00101.html)
> 	and others. We waited for events only for GPollFDs whose events
> 	field had G_IO_IN set. We need to wait also for events for
> 	GPollFDs that have just G_IO_OUT set. Non-blocking sockets in the
> 	process of being connect()ed are one such case. Also silence a
> 	couple of gcc warnings.
>
> GTK+ 2.0:
>
> 2002-11-29  Tor Lillqvist
>
> 	* gdk/win32/gdkwindow-win32.c
>
> 	(gdk_window_set_transient_for): Rewrite. Just call SetWindowLong()
> 	with GWL_HWNDPARENT, which despite its name sets the *owner*
> 	window, which should be exactly what we want. The PSDK
> 	documentation is said to be misleading. testgtk's modal window
> 	test now works much better. (#50586)
>
> 2002-11-24  Tor Lillqvist
>
> 	* gdk/win32/gdkgc-win32.c: Remove ifdeffed-out code.
>
> 	(predraw_set_foreground, gdk_win32_hdc_get): Some code moved
> 	around. Call SetROP2() only if necessary. Call SetTextColor() only
> 	if GDK_GC_FOREGROUND flag present.
>
> 	Remove background color handling from here. The background color
> 	of a GdkGC is supposed to affect only GDK_OPAQUE_STIPPLED fill style,
> 	which it is already handled in generic_draw(), and
> 	GDK_LINE_DOUBLE_DASH lines, which aren't implemented properly
> 	anyway. Calling SetBkColor() is unnecessary.
>
> 	(gdk_win32_hdc_get, gdk_win32_hdc_release): Add doc comments, as
> 	these are public functions.
>
> 2002-11-23  Tor Lillqvist
>
> 	* gdk/win32/gdkdrawable-win32.c (draw_polygon,
> 	gdk_win32_draw_polygon, draw_segments, gdk_win32_draw_segments):
> 	Use generic_draw() also for polygons and segments, thus adding
> 	support for tiled and stippled polygons and segments.
>
> 	(gdk_win32_draw_points): Use Rectangle() instead of
> 	SetPixel(). Rectangle() uses the function (raster op) set for the
> 	HDC, SetPixel() doesn't.
>
> 	(widen_bounds): New function, refactoring.
> 	
> 	* gdk/win32/gdkgc-win32.c (predraw_set_foreground): Ifdef out the
> 	GDK_OPAQUE_STIPPLED handling here, has been superseded by the code
> 	in generic_draw(). Always create a solid brush.
> 	
> 2002-11-22  Tor Lillqvist
>
> 	* gdk/win32/gdkdrawable-win32.c (draw_arc, gdk_win32_draw_arc):
> 	Use generic_draw() also for arcs, thus adding support for tiled
> 	and stippled arcs.
>
> 	* gdk/win32/gdkevents-win32.c (synthesize_expose_events): Don't
> 	synthesize expose events for GDK_INPUT_ONLY windows.
> 	(gdk_event_translate): On WM_SIZE, call
> 	gdk_synthesize_window_state() if window was iconified, restored or
> 	maximized. (#98983, Arnaud Charlet)
>
> 	* gdk/win32/gdkmain-win32.c
> 	* gdk/win32/gdkpixmap-win32.c: Minor debugging output changes.
>
> 2002-11-20  Tor Lillqvist
>
> 	Fix by Arnaud Charlet (#98983):
>
> 	* gtk+/gdk/win32/gdkwindow-win32.c
> 	(gdk_window_get_frame_extents): Fix typo in setting y.
>
> 2002-11-14  Tor Lillqvist
>
> 	Start implementing all fill styles (i.e. tiled, stippled, and
> 	opaque stippled in addition to the plain solid style) in the Win32
> 	backend in an elegant and generic way. For now only did the
> 	draw_rectangle() and draw_glyphs() methods. The rest will
> 	follow. Previously some of the drawing methods implemented opaque
> 	stippling, but not tiles or non-opaque stippling.
>
> 	Seems to work fine, now the check marks show up in check buttons,
> 	the stippled background and stippled text in gtk-demo's Text
> 	Widget look as they should, and GtkText's line wrap arrow shows
> 	correctly instead of an ugly rectangle.
>
> 	The implementation does do a lot of pixmap handling and blitting
> 	back and forth, especially on Win9x. But performance is hopefully
> 	not an issue. I don't think many applications do a lot of tiled or
> 	stippled drawing.
>
> 	* gdk/win32/gdkprivate-win32.h: Define a new macro, GDI_CALL, that
> 	calls a GDI function and prints a warning if it failed. Also
> 	API_CALL for non-GDI calls. Cleans all the the if (!BlaBla())
> 	WIN32_GDI_FAILED ("BlaBla") snippets, these can now be written
> 	GDI_CALL (BlaBla, ()).
>
> 	* gdk/win32/gdkdrawable-win32.c: Use GDI_CALL macro in lots of places.
>
> 	(generic_draw): New function that handles all the blitting
> 	necessary to implement tiles and stipples. A function that
> 	actually draws stuff is passed as a parameter to
> 	generic_draw(). If the fill style is solid, it is called
> 	directly, to draw on the destination drawable. Otherwise it is
> 	called to draw on a temporary mask bitmap, which then is used in
> 	blitting operations. The tiles and/or stipples are rendered into
> 	another temporary pixmap. If MaskBlt() is available (on NT/2k/XP),
> 	it is used, otherwise a sequence of BitBlt() is used to do the
> 	final composition onto the destination drawable.
>
> 	(draw_tiles_lowlevel, draw_tiles): Some renaming and code
> 	reorg. Use BitBlt() to blit each tile, not gdk_draw_drawable().
>
> 	(rop2_to_rop3): Instead of bitblt_wrapper, this function does the
> 	binary->ternary rop mapping.
>
> 	(draw_rectangle, gdk_win32_draw_rectangle, draw_glyphs,
> 	gdk_win32_draw_glyphs): Split functionality into two functions,
> 	with generic_draw() doing its magic inbetween.
>
> 	* gdk/win32/gdkevents-win32.c: Remove the TrackMouseEvent code, it
> 	was ifdeffed out and wouldn't have done anything even if
> 	enabled. Remove the GDK_EVENT_FUNC_FROM_WINDOW_PROC code, didn't
> 	have any effect any more anyway after all the changes GTK+ has
> 	gone through in the last years. Remove some #if 0 code.
>
> 	* gdk/win32/gdkgc-win32.c (gdk_gc_copy): Set the copy's hdc field
> 	to NULL in case a GC is copied while it has a Windows DC active.
>
> 	* gdk/win32/gdkprivate-win32.h
> 	* gdk/win32/gdkglobals-win32.c: Remove gdk_event_func_from_window_proc.
> 	Add mask_blt that points to MaskBlt() if available.
> 	
> 	* gdk/win32/gdkmain-win32.c: Remove -event-func-from-window-proc
> 	option.If there is a
> 	PRETEND_WIN9X envvar, set windows_version as if on Win9x.
>
> 	* gdk/win32/gdkpixmap-win32.c (_gdk_win32_pixmap_new,
> 	gdk_pixmap_new): Combine these two, _gdk_win32_pixmap_new() wasn't
> 	used or exported. Make a bit more like the X11 version. Hopefully
> 	I didn't break the fragile palettized display ("pseudocolor")
> 	code.
>
> 2002-11-13  Tor Lillqvist
>
> 	* gdk/win32/gdkdrawable-win32.c (bitblt_wrapper): New
> 	function. Translates the GC's current binary raster op (rop2) to
> 	the appropriate ternary raster op and calls BitBlt(). Previously
> 	used SRCCOPY always.
> 	(blit_from_pixmap, blit_inside_window, blit_from_window): Use
> 	bitblt_wrapper().
>
> 	* gdk/win32/gdkgc-win32.c
> 	* gdk/win32/gdkmain-win32.c:: Various debugging output improvements.
>
> 	* gdk/win32/gdkgc-win32.c (predraw_set_foreground): Check whether
> 	tile/stipple origins are valid when calling SetBrushOrgEx().
> 	(gdk_win32_hdc_get): Ifdef out code that tries to handle the
> 	stipple by converting it into a region, and combining the clip
> 	region with that. A stipple shouldn't work like that, it should
> 	replicate in x and y directions. Stipples will have to be handled
> 	elsewhere.
>
> 	* gdk/win32/gdkmain-win32.c: (gdk_win32_gcvalues_mask_to_string,
> 	gdk_win32_rop2_to_string): New debugging functions.
> 	(gdk_win32_print_dc): Print also DC's rop2 and text color.
>
> 	* gdk/win32/gdkprivate-win32.h: Declare new functions.
>
> 2002-11-12  Tor Lillqvist
>
> 	More work on the Win32 backend. The scrolling problem diagnosis
> 	from 2002-11-07 was wrong, even if the cure happened to work. The
> 	problems were not caused by a lack of WM_PAINT messages while
> 	scrolling. The real issue was that SetWindowPos() and
> 	ScrollWindowEx() don't blit those parts of the window they think
> 	are invalid. As we didn't keep Windows's update region in synch
> 	with GDK's, Windows thought those areas that in fact had been
> 	updated were invalid. Calling ValidateRgn() in
> 	_gdk_windowing_window_queue_antiexpose() seems to be an elegant
> 	and efficient solution, removing from Windows's update region
> 	those areas we are about to repaint proactively.
>
> 	In some cases garbage leftover values were used for the clip
> 	origin in GdkGCWin32. This showed up as odd blank areas around the
> 	pixmaps included in the Text Widget in gtk-demo.
>
> 	Having the clip region either as a GdkRegion or a HRGN in
> 	GdkGCWin32 was unnecessary, it's better to just use a HRGN.
>
> 	The translation and antiexpose queue handling in
> 	gdkgeometry-win32.c seems unnecessary (and not implementable in
> 	the same way as on X11 anyway, no serial numbers) on Windows,
> 	ifdeffed out.
> 	
> 	All of testgtk and gtk-demo except "big windows" now seem to work
> 	pretty well.
>
> 	Bug #79720 should be fixed now.
> 	
> 	* gdk/win32/gdkevents-win32.c (gdk_event_translate) In WM_PAINT
> 	handler: Don't check for empty update rect. When we get a
> 	WM_PAINT, the update region isn't empty. And if it for some
> 	strange reason is, that will be handled later anyway. Don't leak
> 	hrgn.
>
> 	* gdk/win32/gdkgc-win32.c:  Set clip origins to zero
> 	when appropriate.
>
> 	(gdk_gc_copy): Increase refcount on colormap if present.
>
> 	(gdk_win32_hdc_get): Handle just hcliprgn. If we have a stipple,
> 	combine it with clip region after selecting into the DC.
>
> 	(_gdk_win32_bitmap_to_hrgn): Rename from _gdk_win32_bitmap_to_region.
>
> 	(_gdk_win3_gdkregion_to_hrgn): New function, code snippet
> 	extracted from gdk_win32_hdc_get().
>
> 	* gdk/win32/gdkgeometry-win32.c: Ifdef out the translate_queue
> 	handling.
>
> 	(gdk_window_copy_area_scroll): Increase clipRect to avoid
> 	ScrollWindowEx() not scrolling pixels it thinks are invalid.
> 	Don't call UpdateWindow().
>
> 	(_gdk_window_move_resize_child): Don't call UpdateWindow().
>
> 	(gdk_window_premove, gdk_window_postmove,
> 	gdk_window_clip_changed): Add debugging output.
>
> 	(_gdk_windowing_window_queue_antiexpose): Just call ValidateRgn()
> 	on the region.
>
> 	(_gdk_window_process_expose): No use for the serial number
> 	parameter now. Instead of a rectangle, take a region parameter, as
> 	Windows gives us one in WM_PAINT.
>
> 	* gdk/win32/gdkmain-win32.c (gdk_win32_rect_to_string,
> 	gdk_win32_gdkrectangle_to_string, gdk_win32_gdkregion_to_string):
> 	New debugging functions.
>
> 	* gdk/win32/*.c: Use above functions.
>
> 	* gdk/win32/gdkwindow-win32.c (gdk_propagate_shapes): Plug memory
> 	leak, free list after use.
>
> 	* gdk/win32/gdkprivate-win32.h: Drop the clip_region field from
> 	GdkGCWin32. Only use the HRGN hcliprgn. Declare new functions.
>
> 2002-11-03  Tor Lillqvist
>
> 	Lots of changes to the Win32 backend:
>
> 	One big improvement is that scrolling of windows with background
> 	pixmaps now works much better. (This can be seen in for instance
> 	testgtk's "text" test.) Blitting inside a window
> 	(gdk_draw_drawable) also works much better now (can also seen in
> 	the "text" test).
>
> 	Another major change is we don't (try to) do guffaw scrolling as
> 	there is no static window gravity on Windows. Guffaw scrolling
> 	would be unnecessary anyway, as there is the ScrollWindow()
> 	API. This improves the behaviour of the Text Widget demo in
> 	gtk-demo a lot. But I have no idea how the lack of static win
> 	gravity should be handled in other places where the X11 code uses
> 	it. Especially _gdk_window_move_resize_child().
>
> 	Big windows still don't work correctly, I assume.
>
> 	Another vague area is the translate_queue. I don't think the queue
> 	items actually ever gets used, at least not in the code as of now.
>
> 	There is still some problem in expose handling. By moving an
> 	obscuring window back and forth over testgtk's main window, for
> 	instance, every now and then you typically get narrow vertical or
> 	horizontal strips of pixels that haven't been properly redrawn
> 	after being exposed. A fencepost error somewhere?
>
> 	* gdk/win32/gdkevents-win32.c: Cast known GdkWindowObjects
> 	directly instead of using GDK_WINDOW_OBJECT(). Remove unused
> 	latin_locale_loaded variable.
>
> 	(_gdk_win32_get_next_tick): New function. Used to make sure
> 	timestamps of events are always increasing, both in events
> 	generated from the window procedure and in events gotten via
> 	PeekMessage(). Not sure whether this is actually useful, but it
> 	seemed as a good idea.
>
> 	(real_window_procedure): Don't use a local GdkEventPrivate
> 	variable. Don't attempt any compression of configure or expose
> 	events here, handled elsewhere.
>
> 	(erase_background): Accumulate window offsets when traversing up
> 	the parent chain for GDK_PARENT_RELATIVE_BG, in order to get
> 	correct alignment of background pixmaps. Don't fill with
> 	BLACK_BRUSH if GDK_NO_BG.
>
> 	(gdk_event_get_graphics_expose): A bit more verbose debugging output.
>
> 	(gdk_event_translate): Use _gdk_win32_get_next_tick(). In the
> 	WM_PAINT handler, call GetUpdateRgn() before calling BeginPaint()
> 	and EndPaint() (which empty the update region).
>
> 	* gdk/win32/gdkdnd-win32.c
> 	* gdk/win32/gdkinput-win32.c:
> 	Use _gdk_win32_get_next_tick().
> 	
> 	* gdk/win32/gdkfont-win32.c: Use %p to print HFONTs.
>
> 	(gdk_text_size): Remove, unused.
>
> 	* gdk/win32/gdkgeometry-win32.c
> 	(_gdk_windowing_window_queue_antiexpose): Always return FALSE for
> 	now, until figured out whether antiexposes actually can work on
> 	Win32.
>
> 	(gdk_window_copy_area_scroll): Scroll also children with the
> 	ScrollWindowEx() call. No need to call gdk_window_move() on the
> 	children.
>
> 	(gdk_window_scroll): Don't do guffaw scrolling.
>
> 	(gdk_window_compute_position): Fix typo, used win32_y where x was
> 	intended.
>
> 	(gdk_window_queue_append): Use GetTickCount() for serial number,
> 	not GetMessageTime(), which can be very far back.
>
> 	* gdk/win32/gdkwindow-win32.c (gdk_window_gravity_works): Remove,
> 	we know that there is no such thing on Windows.
>
> 	(gdk_window_set_static_bit_gravity,
> 	gdk_window_set_static_win_gravity): Ditto, remove, they didn't do
> 	anything anyway.
>
> 	(_gdk_windowing_window_init, gdk_window_foreign_new): Call
> 	_gdk_window_init_position() like in the X11 backend.
>
> 	(gdk_window_reparent): Don't call the now nonexistent
> 	gdk_window_set_static_win_gravity(). No idea what should be done
> 	instead.
>
> 	(gdk_window_get_geometry): The returned x and y should be relative
> 	to parent. Used to be always zero..
>
> 	(gdk_window_set_static_gravities): Return FALSE if trying to set
> 	static gravity.
> 	
> 	* gdk/win32/gdkdrawable-win32.c (_gdk_win32_draw_tiles):
> 	Rewrite. Make static. Must take tile origin parameters, too.
>
> 	(gdk_win32_draw_rectangle): Pass the tile/stipple origin to
> 	_gdk_win32_draw_tiles(). Remove #if 0 code.
>
> 	(blit_inside_window): Don't call ScrollDC(), that didn't work at
> 	all like I thought. A simple call to BitBlt() is enough.
> 	
> 	* gdk/win32/gdkcolor-win32.c (gdk_win32_color_to_string,
> 	gdk_win32_print_paletteentries, gdk_win32_print_system_palette,
> 	gdk_win32_print_hpalette)
> 	* gdk/win32/gdkdrawable-win32.c (gdk_win32_drawable_description)
> 	* gdk/win32/gdkevents-win32.c (gdk_win32_message_name):
> 	Move all debugging helper functions to gdkmain-win32.c.
>
> 	* gdk/win32/gdkmain-win32.c: (gdk_win32_lbstyle_to_string,
> 	gdk_win32_pstype_to_string, gdk_win32_psstyle_to_string,
> 	gdk_win32_psendcap_to_string, gdk_win32_psjoin_to_string): New
> 	debugging functions.
>
> 	(static_printf): Helper function for the above. sprintfs into a
> 	static circular buffer, return value should be used "soon".
>
> 	* gdk/win32/gdkgc-win32.c: Use above debugging functions.
>
> 	* gdk/win32/gdkprivate-win32.h: Declare new functions, remove
> 	obsoleted ones.
>
> 2002-10-28  Tor Lillqvist
>
> 	* gdk/win32/gdkwindow-win32.c (gdk_window_set_decorations,
> 	gdk_window_set_functions): Don't call GetWindowLong for
> 	GWL_EXSTYLE, the extended window style wasn't used or
> 	changed. After setting the window style with SetWindowLong, call
> 	SetWindowPos with the SWP_FRAMECHANGED flag for the window to
> 	actually be updated, as Platform SDK docs say one should. (#95812,
> 	huzheng)
>
> Pango 1.0:
>
> 2002-11-12  Tor Lillqvist
>
> 	* pango/pangowin32-fontcache.c (free_cache_entry,
> 	cache_entry_unref, pango_win32_font_cache_load): Add more
> 	debugging output.
>
> 	* modules/basic/basic-win32.c (uniscribe_shape): Plug memory leak:
> 	Free return value from pango_win32_font_logfont(). Call
> 	pango_win32_font_cache_unload() for the hfont returned from
> 	pango_win32_font_cache_load() after using it.
>
> 2002-10-24  Tor Lillqvist
>
> 	* modules/basic/basic-win32.c: Update the non-Uniscribe ranges to
> 	cover some more simple scripts.
>
> 	(itemize_shape_and_place): Handle unknown glyphs.
>
> 	(script_engine_list): Only return the "everything" range if
> 	Uniscribe is available. It would be nice to build up a more
> 	specific range list based on the information ScriptGetProperties()
> 	returns. That function lists information about each script the
> 	Uniscribe version used can handle. Unfortunately, though, the
> 	information is severely limited. It doesn't tell what Unicode
> 	blocks a script covers. It only gives one language that uses
> 	that script, and sometimes an charset number, but for most scripts
> 	just the totally useless DEFAULT_CHARSET.
> 	
> 2002-10-22  Tor Lillqvist
>
> 	* configure.in: Add --with-usp10 flag to indicate where to find
> 	the usp10.h header, for using Uniscribe on Win32. Set USP10_H
> 	autoconf variable, HAVE_USP10_H config.h macro and HAVE_USP10_H
> 	automake conditional.
>
> 	* acconfig.h: Add HAVE_USP10_H.
>
> 	* pango/pangowin32-private.h (PANGO_WIN32_DEBUGGING): Change
> 	semantics of this flag. If defined, also need to set env var
> 	PANGO_WIN32_DEBUG to get the copious debugging output.
> 	Change PING() macro accordingly. Add variable pango_win32_debug.
>
> 	* pango/pangowin32.c (pango_win32_get_dc): New function. Code
> 	factored out from pango_win32_font_class_init() and
> 	pango_win32_font_map_class_init().
> 	(pango_win32_get_debug_flag): New function.
> 	(pango_win32_render): Handle y offsets, too. Potentially need to
> 	call ExtTextOutW several times, one for each run of sequential
> 	glyphs with the same y offset.
> 		
> 	* pango/pangowin32.h: Declare above new functions, in the part
> 	only for shaper engine use.
>
> 	* pango/pangowin32.def: Export above new functions.
>
> 	* pango/pangowin32-fontmap.c (pango_win32_font_map_class_init):
> 	Call pango_win32_get_dc() as mentioned above.
>
> 	* modules/basic/Makefile.am: If HAVE_USP10_H, let basic-win32.lo
> 	depend on usp10.h.
>
> 	* modules/basic/basic-win32.c: If HAVE_USP10_H, and the Uniscribe
> 	DLL usp10.dll is present, use Uniscribe.
> 	(uniscribe_shape, itemize_shape_and_place,
> 	set_up_pango_log_clusters, convert_log_clusters_to_byte_offsets,
> 	make_langid, init_uniscribe): New functions.
> 	(dump_glyphs_and_log_clusters, lang_name, charset_name): Debugging
> 	functions.
>
>
>
>
>
> To Post a message, send it to:   [email protected]
> To Unsubscribe, send a blank message to: 
> [email protected]
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.