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/
>
>
>