2005-07-01  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.1 ===
	
	* NEWS: Updates

2005-07-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesel.c (cmpl_init_state): Prevent an infinite
	loop when G_FILENAME_ENCODING is invalid.  (#309280, Padraig Brady)

Thu Jun 30 14:17:24 2005  Manish Singh  <yosh@gimp.org>

	* gdk/x11/gdkprivate-x11.h: declare _gdk_xgrab_check_button_event.

	* gtk/gtkbutton.c: fix signature of gtk_button_grab_broken.

2005-06-30  Matthias Clasen  <mclasen@redhat.com>

	* gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
	infinite loop if a mask is zero.  (#309222, David Saxton)

	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): 
	Clarify the code, gcc 4 complains about predecrement in MAX().

	* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): Don't
	prematurely unregister callbacks. 

	* NEWS: Updates

2005-06-29  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkbutton.c (gtk_button_grab_broken): Handle broken
	grabs.

	* gtk/gtkrange.c (gtk_range_grab_broken): Handle broken 
	grabs.

	* gdk/gdkevents.h: Add a boolean to specify wether the broken
	grab was implicit.

	* gdk/x11/gdkdisplay-x11.c (gdk_display_pointer_is_grabbed): 
	As the documentation states, don't return TRUE for
	implicit grabs.

	* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
	a boolean field to store wether a pointer grab is implicit.

	* gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_button_event): 
	Track implicit grabs.

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Call
	_gdk_xgrab_check_button_event for button events.

2005-06-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkiconview.c (gtk_icon_view_calculate_item_size2): 
	Make sure that cell boxes are always completely inside
	the item area. 

2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* demos/gtk-demo/main.c (create_tree): Make the list of
	demos scrollable.

	* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): 
	Fix positioning at the end of the line for lines ending
	in invisible characters.
	(gtk_text_layout_get_line_display): Set display->layout 
	to a PangoLayout, even for totally invisible lines. 

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
	GrabBroken events which are caused by overgrabbing inside
	the application; menus rely on these for their operation.
	
	* gdk/gdkevents.h (struct _GdkEventGrabBroken): Add a 
	grab_window field.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): Set
	grab_window to NULL when generating GrabBroken events for
	WM_KILLFOCUS messages.

	* gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_unmap) 
	(_gdk_xgrab_check_destroy): Set grab_window to NULL when
	generating GrabBroken events when the grab window becomes
	unviewable or is destroyed.

	* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab): 
	Generate GrabBroken events when overriding a grab inside
	the application. In this case, set grab_window to the new
	grab_window.
	
2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkbutton.c (gtk_real_button_activate): Continue
	to activate even if we can't grab the keyboard.
	(gtk_button_finish_activate): Only ungrab when we have
	a keyboard grab.  (#172998, William Jon McCann)

2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): 
	Avoid a segfault. (#309054)

2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
	fields for grab timestamps.

	* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab): 
	Store grab timestamps when grabbing.
	
	* gdk/x11/gdkdisplay-x11.c (gdk_display_keyboard_ungrab) 
	(gdk_display_pointer_ungrab): Don't unset the grab_window
	if the timestamps indicate that the ungrab will fails.

	* gtk/gtkmenu.c (gtk_menu_grab_notify): Cancel menus when 
	they are grab-shadowed by something thats not a 
	submenu.  (#145416, Euan MacGregor)

2005-06-27  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtk[hv]ruler.c (gtk_[hv]ruler_draw_ticks): 
	Fix indentation.

2005-06-27  Kjartan Maraas  <kmaraas@gnome.org>

	* gtk/gtkhruler.c: (gtk_hruler_draw_ticks): Fix leaks
	* gtk/gtkvruler.c: (gtk_vruler_draw_ticks): Same
	Closes bug #308953.

2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path): Use
	GMappedFile.

	* configure.in: Require GLib 2.7.1

2005-06-26  Matthias Clasen  <mclasen@redhat.com>

	* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize): 
	Unregister XIM callbacks here.  (#309054)

	* modules/input/gtkimcontextxim.h: Small cleanup.

	* gtk/gtkmenu.c (gtk_menu_paint): Pay attention to the
	scroll offset when drawing the box.  (#308834, Tom von 
	Schwerdtner)

2005-06-26  Tor Lillqvist  <tml@novell.com>

	* gdk/Makefile.am
	* gtk/Makefile.am: Current GNU tools do understand the PRIVATE
	keyword, so no need to remove those entries from the import
	library. libtool installs the .dll.a import library itself, so no
	need to do it here. Install the .def file.

Sun Jun 26 00:04:36 2005  Manish Singh  <yosh@gimp.org>

	* gdk/gdkevents.c (gdk_event_get_time, gdk_event_get_state): add
	GDK_GRAB_BROKEN to the switch cases.

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): remove unused
	variables.

	* gtk/gtkpaned.c (gtk_paned_grab_broken): return TRUE.

2005-06-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_grab_broken): Stop column
	header drag operations if the grab is broken.

	* gtk/gtkhsv.c (gtk_hsv_grab_broken): Stop the drag if
	the grab is broken.

	* gtk/gtkcombobox.c (gtk_combo_box_popdown): Don't do 
	explicitly ungrab pointer and keyboard. We're unmapping
	the grab window anyway. 
	(gtk_combo_box_popup): Handle grab failures.

2005-06-25  Matthias Clasen  <mclasen@redhat.com>

	* gdk/x11/gdkmain-x11.c (gdk_keyboard_grab, gdk_pointer_grab):
	Don't emit grab-broken for overgrabbing, until we figure
	out how to do that without breaking the menu code.

2005-06-25  Matthias Clasen  <mclasen@redhat.com>

	Add a GrabBroken event to GDK, and a grab-broken-event
	signal to GtkWidget.  (#107320, Simon Cooke, initial patch 
	by John Ehresman)

	* gdk/gdkevents.h: Add a GDK_GRAB_BROKEN event type,
	define a GdkEventGrabBroken event struct.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): 
	Generate GrabBroken events in response to WM_KILLFOCUS.

	* gdk/x11/gdkmain-x11.c: Generate GrabBroken events
	when a grab is broken by the window becoming unviewable,
	or by another grab from the same client.
	
	* gtk/gtkwidget.h (GtkWidgetClass): Add grab_broken_event.

	* gtk/gtkwidget.c (gtk_widget_event_internal): Translate
	GrabBroken events into grab_broken_event signals.

	* gtk/gtkmain.c (gtk_main_do_event): Propagate GrabBroken
	events.

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Deactivate
	the menu when the grab is broken.

	* gtk/gtkcolorsel.c (gtk_color_selection_grab_broken): Stop 
	the color picker if the grab is broken.

	* gtk/gtkpaned.c (gtk_paned_grab_broken): Stop the drag if
	the grab is broken.

2005-06-25  Matthias Clasen  <mclasen@redhat.com>

	Add some new stock items.  (#166480, Kristof Vansant)
	
	* gtk/stock-icons/stock_fullscreen_16.png: 
	* gtk/stock-icons/stock_fullscreen_24.png: 
	* gtk/stock-icons/stock_leave_fullscreen_16.png: 
	* gtk/stock-icons/stock_leave_fullscreen_24.png: 
	* gtk/stock-icons/stock_info_16.png: 
	* gtk/stock-icons/stock_info_24.png: New icons.

	* gtk/stock-icons/Makefile.am: Add new icons.

	* gtk/gtkstock.h: Define names for the new icons.

	* gtk/gtkstock.c (builtin_items): Register new stock items.
	
	* gtk/gtkiconfactory.c (get_default_icons): Register new 
	stock icons.

2005-06-24  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkrgb.c (gdk_rgb_select_conv): Fix up selection of
	conversion functions for MSB machines: convert_0888[_br]
	now work on bytes so are endian independent. 
	(Reported by David Zeuthen)

2005-06-24  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtktextview.c (gtk_text_view_scroll_hpages): Don't
	jump to the next line if we are at the end of the line.  
	(gtk_text_view_move_cursor_internal): Make movement by
	paragraphs up/down symmetric.  (#307055, Behnam Esfahbod)

2005-06-23  Tor Lillqvist  <tml@novell.com>

	Improve and simplify line segment rendering on Win32, especially
	the implementation of GDK_CAP_NOT_LAST, and dashed lines. Fixes
	bugs #306396 and #308413.

	* gdk/win32/gdkprivate-win32.h (GdkGCWin32): Save the GdkGC's
	line_style, cap_style and join_style as such in the
	GdkGCWin32. Don't need to keep the pen_double_dash flag, we can
	check the line_style.

	* gdk/win32/gdkgc-win32.c (fixup_pen): New internal function. Sets
	up the GDI pen type, style, end cap and join attributes to use
	based on the pen width, GDK line style, end cap style, and join
	style.

	For a narrow (zero-width) GDK pen with the GDK_CAP_NOT_LAST end
	cap style, which typically are used for XOR drawing where it is
	essential that the last pixel is not drawn, use a GDI cosmetic
	pen. Only for a cosmetic pen does GDI not draw the last pixel. I
	deduced this by experimetation, the documentation is rather vague.

	For other GDK pens use a geometric GDI pen. If the width is 0 or 1
	and the GDK end cap style is GDK_CAP_BUTT, and the line style is
	GDK_LINE_SOLID, use PS_ENDCAP_ROUND. This ensures that also
	single-pixel length lines are drawn. (For sngle-pixel width lines
	roundness as such is of course irrelevant.) For dashed lines, use
	PS_ENDCAP_FLAT.

	For wide lines use PS_ENDCAP_FLAT, _ROUND or _SQUARE,
	respectively, for GDK_CAP_BUTT, GDK_CAP_ROUND and GDK_CAP_PROJECTING.

	For one pixel on-off dashed lines, use PS_ALTERNATE, it seems to
	work better than PS_USERSTYLE. For other dashed lines, use
	PS_USERSTYLE and the dashes as set by the user (or the default
	four-pixel on-off style).

	(gdk_win32_gc_values_to_win32values, gdk_win32_gc_set_dashes):
	Call fixup_pen() to do the pen settings after modifying some of
	the GDK GC attributes that affect pens.

	* gdk/win32/gdkdrawable-win32.c (render_line_horizontal,
	render_line_vertical, draw_segments): Check GdkGCWin32::line_style
	instead of the the removed pen_double_dash member. Don't use
	PATCOPY unconditionally in the PatBlt() call, use a raster op
	code that depends on the GC function in use.

	(draw_rectangle, draw_segments, draw_lines): Be more careful in
	deciding when to do the manual dash rendering.

	(draw_segments): Don't do any manual "last point" drawing at
	all. The above changes takes care of narrow line segments being
	drawn correctly in most cases, at least on NT-based Windows.

2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): 
	Fix an error in the cache timeout logic.  (#166601, Morten
	Welinder)

	* gtk/gtktreeview.c (gtk_tree_view_key_press): Change the
	keynav for header reordering and resizing to Alt-arrows and
	Shift-Alt-arrows, following a proposal by the keynav 
	authority. (#308666, Calum Benson)

	* gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path): Remove
	a leftover debugging envvar.  

2005-06-23  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkcairo.c (gdk_cairo_set_source_pixbuf): Fix the
	big endian case for 3-channel source. (Reported by
	David Zeuthen)

2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkbutton.c (gtk_button_construct_child): Don't
	trigger warnings if there are extra references to the
	hbox.  (#308677, Dan Winship)

	* gtk/gtkfilesystemunix.c (bookmark_list_write): Use
	g_file_set_contents().  (#308722, Morten Welinder)

2005-06-22  Matthias Clasen  <mclasen@redhat.com>

	* gdk/x11/gdkdnd-x11.c (xdnd_finished_filter): Set the
	time field in the event.  (#308573, Morten Welinder)

	* gtk/gtkfilesystemunix.c: Remove gratitious differences
	between the stable branch and HEAD, which sneaked in with
	the bookmark renaming.  

2005-06-22  Kjartan Maraas  <kmaraas@gnome.org>

	* gtk/gtkhsv.c: (gtk_hsv_expose): Don't leak the cairo context
	Closes bug #308581.

2005-06-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkarrow.c:
	* gtk/gtkimage.c:
	* gtk/gtklabel.c:
	* gtk/gtkpixmap.c: Modify all of the GtkMisc widgets to round down
	on centering calculations to match the behaviour of other parts
	of GTK+. (#307419, Ryan Lortie)

2005-06-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkdnd.c (gtk_drag_source_set): Connect to 
	button-release-event as well, to handle touchscreen 
	scenarios better.  (#171490, Markku Vire)

	* gtk/*.h: Trivial cleanups. (#169647, #303455, 
	Fabricio Barros Cabral, Benoit Carpentier)

	* gdk/gdk.symbols: 
	* gdk/gdkwindow.h: 
	* gdk/x11/gdkgeometry-x11.c (gdk_window_move_region): New
	function which can be used to implement scrolling in 
	non-window widgets.  (#135165, Søren Sandmann)