1. 11 Aug, 2008 1 commit
  2. 09 Aug, 2008 1 commit
  3. 21 Jul, 2008 1 commit
    • Michael Natterer's avatar
      remove _gtk_binding_signal_new(). · 7f006959
      Michael Natterer authored
      2008-07-21  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtkbindings.[ch]: remove _gtk_binding_signal_new().
      
      	* gtk/gtkfilechooserdefault.c
      	* gtk/gtkmenu.c
      	* gtk/gtkmenushell.c
      	* gtk/gtkscalebutton.c
      	* gtk/gtktextview.c
      	* gtk/gtktoolbar.c
      	* gtk/gtkwidget.c: use g_signal_new_class_handler() instead. Add
      	some missing I_() to the signal names.
      
      
      svn path=/trunk/; revision=20874
      7f006959
  4. 01 Jul, 2008 1 commit
  5. 30 Jun, 2008 1 commit
    • Cody Russell's avatar
      Practically everything changed. · fce9c8b7
      Cody Russell authored
      2008-06-30  Cody Russell  <bratsche@gnome.org>
      
              * Practically everything changed.
      
              Change	all references	of GIMP	Toolkit	(and variations	of it)
              to GTK+	Toolkit, showing no mercy at all to our	beloved
      	ancestry. (#540529)
      
      
      svn path=/trunk/; revision=20709
      fce9c8b7
  6. 22 Jun, 2008 1 commit
    • Johan Dahlin's avatar
      Include "config.h" instead of <config.h> Command used: find -name · d97cdbdf
      Johan Dahlin authored
      2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
      
          * *.[ch]: Include "config.h" instead of <config.h>
          Command used:
          find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
          Rubberstamped by Mitch and Tim
      
      
      svn path=/trunk/; revision=20669
      d97cdbdf
  7. 08 Apr, 2008 1 commit
    • Michael Natterer's avatar
      fix a touchscreen-mode keynav corner case: when navigating to the parent · 4cfa620f
      Michael Natterer authored
      2008-04-08  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current): fix a
      	touchscreen-mode keynav corner case: when navigating to the parent
      	menu, make sure we don't close two menus at the same time in case
      	the deepest open menu has no selectable items.
      
      
      svn path=/trunk/; revision=19981
      4cfa620f
  8. 27 Feb, 2008 1 commit
    • Michael Natterer's avatar
      gtk/gtkmenushell.c gtk/gtktable.c gtk/gtktext.c gtk/gtktipsquery.c · 45debfb0
      Michael Natterer authored
      2008-02-27  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtkmenushell.c
      	* gtk/gtktable.c
      	* gtk/gtktext.c
      	* gtk/gtktipsquery.c
      	* gtk/gtktoolbar.c
      	* gtk/gtktreeitem.c
      	* gtk/gtktreeview.c
      	* gtk/gtkviewport.c
      	* gtk/gtkwin32embedwidget.c: remove g_return_if_fail() from
      	private functions and virtual function implementations.
      
      
      svn path=/trunk/; revision=19668
      45debfb0
  9. 12 Feb, 2008 1 commit
  10. 06 Feb, 2008 1 commit
    • Michael Natterer's avatar
      gtk/gtkcontainer.c gtk/gtkexpander.c gtk/gtkframe.c gtk/gtklabel.c · e7355f82
      Michael Natterer authored
      2008-02-06  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtkcontainer.c
      	* gtk/gtkexpander.c
      	* gtk/gtkframe.c
      	* gtk/gtklabel.c
      	* gtk/gtkmain.c
      	* gtk/gtkmenu.c
      	* gtk/gtkmenuitem.c
      	* gtk/gtkmenushell.c
      	* gtk/gtknotebook.c
      	* gtk/gtkseparatortoolitem.c
      	* gtk/gtksocket.c
      	* gtk/gtktextlayout.c
      	* gtk/gtktoggletoolbutton.c
      	* gtk/gtktoolbutton.c
      	* gtk/gtktoolitem.c
      	* gtk/gtktree.c
      	* gtk/gtktreeitem.c: replace "foo && GTK_IS_FOO (foo)" by simply
      	"GTK_IS_FOO (foo)".
      
      
      svn path=/trunk/; revision=19481
      e7355f82
  11. 18 Jun, 2007 1 commit
  12. 15 Jun, 2007 2 commits
  13. 25 May, 2007 1 commit
    • Michael Natterer's avatar
      Merge fix from maemo-gtk: · f42be737
      Michael Natterer authored
      2007-05-25  Michael Natterer  <mitch@imendio.com>
      
      	Merge fix from maemo-gtk:
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): open submenus
      	also if the menu item we're entering is already selected. Also, it
      	makes no sense to forward the event to the parent menu shell if we
      	are entering a menu item of *this* menu shell.
      
      
      svn path=/trunk/; revision=17911
      f42be737
  14. 30 Apr, 2007 1 commit
    • Michael Natterer's avatar
      pop up the submenu explicitely only in touchscreen mode since otherwise · 1a3b0b48
      Michael Natterer authored
      2007-04-30  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): pop up the
      	submenu explicitely only in touchscreen mode since otherwise
      	selecting the item already pops up the submenu. Restores the
      	drag-selection timeout (spotted by Søren Sandmann, #128968).
      
      
      svn path=/trunk/; revision=17735
      1a3b0b48
  15. 27 Apr, 2007 1 commit
    • Michael Natterer's avatar
      Merged heavily modified patch from maemo-gtk which enables opening and · 533d3fcc
      Michael Natterer authored
      2007-04-27  Michael Natterer  <mitch@imendio.com>
      
      	Merged heavily modified patch from maemo-gtk which enables opening
      	and closing submenus on click, and introduces some usability
      	changes when gtk-touchscreen-mode is enabled (bug #128968):
      
      	* gtk/gtkmenushell.c (struct GtkMenuShellPrivate): added boolean
      	"activated_submenu" to indicate that the current mouse operation
      	(click or drag) has opened a submenu.
      
      	(gtk_menu_shell_button_press): pop up submenus without delay
      	and record the fact in "activated_submenu".
      
      	(gtk_menu_shell_button_release): if a submenu was explicitely
      	opened, or not opened by this release's button_press, or enough
      	time has passed since timeout-opening it, close the submenu here.
      
      	(gtk_menu_shell_enter_notify): when entering a menu item with
      	any mouse button pressed, open its submenu.
      
      	(gtk_real_menu_shell_move_current): in touchsreen mode, close the
      	submenu when moving the focus away from it via keyboard-navigation.
      
      	* gtk/gtkmenuitem.[ch] (_gtk_menu_item_popup_submenu): added
      	parameter "gboolean with_delay" so GtkMenuShell can control this
      	for the different scenarios of submenu showing.
      
      	(_gtk_menu_item_popdown_submenu): new function. also needed by
      	GtkMenuShell for closing submenus on click.
      
      	Renamed internal function gtk_menu_item_select_timeout() to
      	gtk_menu_item_popup_timeout().
      
      	(gtk_menu_item_real_popup_submenu): new utility function which
      	does the actual popup and records the exact time of the popup when
      	the menu was timeout-opened (using g_get_current_time()).
      
      	(gtk_real_menu_item_select): don't add the popup timeout when in
      	touchscreen mode.
      
      	* gtk/gtkmenu.c (gtk_menu_popup): in touchscreen mode, select the
      	first item of every opened menu.
      
      
      svn path=/trunk/; revision=17659
      533d3fcc
  16. 02 Apr, 2007 1 commit
  17. 15 Feb, 2007 1 commit
  18. 05 Feb, 2007 1 commit
    • Michael Natterer's avatar
      add new boolean settings gtk-enable-accels and gtk-enable-mnemonics which · 17fed85c
      Michael Natterer authored
      2007-02-05  Michael Natterer  <mitch@imendio.com>
      
      	* gtk/gtksettings.c: add new boolean settings gtk-enable-accels
      	and gtk-enable-mnemonics which enable/disable accelerators and
      	mnemonics (bug #72375, based on a patch from Tommi Komulainen).
      
      	* gtk/gtkwindow.c (gtk_window_activate_key)
      	* gtk/gtkmenushell.c (gtk_menu_shell_key_press): don't invoke them
      	if the resp. setting is FALSE.
      
      	* gtk/gtkaccellabel.c (gtk_accel_label_refetch)
      	* gtk/gtklabel.c (gtk_label_set_pattern_internal): don't display
      	them if the setting is FALSE.
      
      	* gtk/gtklabel.c: added signal connection to the screen's settings
      	object and traverse all widgets on the screen when the setting
      	changes. It's slightly ugly to also update GtkAccelLabels here,
      	but less ugly than connecting and traversing all widgets twice.
      
      
      svn path=/trunk/; revision=17262
      17fed85c
  19. 16 Nov, 2006 1 commit
    • Michael Natterer's avatar
      Add new infrastructure for notifications of failed keyboard navigation and · 7f374a74
      Michael Natterer authored
      2006-11-16  Michael Natterer  <mitch@imendio.com>
      
      	Add new infrastructure for notifications of failed keyboard
      	navigation and navigation with restricted set of keys.
      
      	The patch handles configurable beeping, navigating the GUI with
      	cursor keys only (as in phone environments), and configurable
      	wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
      	and #309291.
      
      	* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
      	gtk-keynav-wrap-around and gtk-error-bell.
      
      	* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
      	API to emit it. Added New function gtk_widget_error_bell() which
      	looks at the gtk-error-bell setting and calls gdk_window_beep()
      	accordingly.
      
      	* gtk/gtk.symbols: add the new widget symbols.
      
      	* gtk/gtkcellrendereraccel.c
      	* gtk/gtkimcontextsimple.c
      	* gtk/gtkmenu.c
      	* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
      	gtk-error-bell setting instead of calling gdk_display_beep()
      	unconditionally.
      
      	* gtk/gtkcombobox.c
      	* gtk/gtkentry.c
      	* gtk/gtkiconview.c
      	* gtk/gtklabel.c
      	* gtk/gtkmenushell.c
      	* gtk/gtkspinbutton.c
      	* gtk/gtktextview.c
      	* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.
      
      	* gtk/gtkentry.c
      	* gtk/gtklabel.c
      	* gtk/gtkrange.c
      	* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
      	cursor navigation and leave the widget if it returns FALSE.
      
      	* gtk/gtkmenushell.c
      	* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
      	is TRUE.
      
      	* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
      	whether to to wrap-around, and don't select active items on cursor
      	navigation if gtk-keynav-cursor-only is TRUE. Should look at
      	gtk-keynav-wrap-around too, will look into that.
      7f374a74
  20. 14 May, 2006 1 commit
  21. 02 May, 2006 1 commit
  22. 01 Sep, 2005 1 commit
    • Matthias Clasen's avatar
      Intern some more strings. · 94eec042
      Matthias Clasen authored
      2005-09-01  Matthias Clasen  <mclasen@redhat.com>
      
              * gdk/*.c: Intern some more strings.
              * gtk/gtkintl.h:
              * gtk/*.c: Define an I_() macro and use it instead of the
              bulky g_intern_static_string().
      94eec042
  23. 31 Aug, 2005 1 commit
    • Matthias Clasen's avatar
      Intern type names in code generated by glib-mkenums, too. · c09cc893
      Matthias Clasen authored
      2005-08-31  Matthias Clasen  <mclasen@redhat.com>
      
      	* gdk/Makefile.am:
      	* gtk/Makefile.am: Intern type names in code generated by
      	glib-mkenums, too.
      
      	* gtk/*.c:
      	* gdk/x11/*.c:
      	* gdk/*.c: Intern type names before registering the type to avoid
      	unnecessary copies.
      c09cc893
  24. 27 Jun, 2005 1 commit
    • Matthias Clasen's avatar
      Ignore GrabBroken events which are caused by overgrabbing inside the · b2343762
      Matthias Clasen authored
      2005-06-27  Matthias Clasen  <mclasen@redhat.com>
      
      	* 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.
      b2343762
  25. 26 Jun, 2005 1 commit
    • Manish Singh's avatar
      add GDK_GRAB_BROKEN to the switch cases. · 2f330b77
      Manish Singh authored
      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.
      2f330b77
  26. 25 Jun, 2005 1 commit
    • Matthias Clasen's avatar
      Add a GrabBroken event to GDK, and a grab-broken-event signal to · 9b356ea0
      Matthias Clasen authored
      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.
      9b356ea0
  27. 10 Jun, 2005 1 commit
    • Matthias Clasen's avatar
      · 80bf176f
      Matthias Clasen authored
      2005-06-10  Matthias Clasen  <mclasen@redhat.com>
      
      	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_expand):
      	* gtk/gtktoolbar.c (gtk_toolbar_get_show_arrow):
      	* gtk/gtktextview.c (gtk_text_view_get_iter_at_position):
      	* gtk/gtkstock.c (gtk_stock_set_translate_func):
      	* gtk/gtkspinbutton.c (gtk_spin_button_get_adjustment):
      	* gtk/gtkscrolledwindow.h:
      	* gtk/gtkmenushell.c (gtk_menu_shell_get_take_focus):
      80bf176f
  28. 02 May, 2005 1 commit
    • Matthias Clasen's avatar
      Fix up the docs a bit. · 30fc5201
      Matthias Clasen authored
      2005-05-02  Matthias Clasen  <mclasen@redhat.com>
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_set_take_focus):
      	(gtk_menu_shell_get_take_focus): Fix up the docs a bit.
      30fc5201
  29. 05 Apr, 2005 1 commit
  30. 31 Mar, 2005 1 commit
    • Michael Natterer's avatar
      Allow to pop up menus without grabbing the keyboard. Useful for stuff like · 91cb92c0
      Michael Natterer authored
      2005-03-31  Michael Natterer  <mitch@gimp.org>
      
      	Allow to pop up menus without grabbing the keyboard. Useful for
      	stuff like virtual keyboards. Fixes bug #159890
      
      	* gtk/gtk.symbols
      	* gtk/gtkmenushell.[ch]: added boolean property "take-focus"
      	and public API gtk_menu_shell_set/get_take_focus().
      
      	* gtk/gtkmenu.c (gtk_menu_popup)
      	(popup_grab_on_window): don't grab the keyboard if take_focus
      	is FALSE.
      
      	* gtk/gtkmenuitem.c (_gtk_menu_item_popup_submen): propagate the
      	parent menu_shell's take_focus property to the submenu which is
      	about to be popped up.
      91cb92c0
  31. 20 Mar, 2005 1 commit
    • Matthias Clasen's avatar
      Make PLT-reduction work with gcc4, and don't include everything in · cca8dd63
      Matthias Clasen authored
      2005-03-20  Matthias Clasen  <mclasen@redhat.com>
      
      	Make PLT-reduction work with gcc4, and don't include
      	everything in gdkalias.h:
      
      	* gtk/grk.symbols: Group symbols by header and source file.
      	* gtk/makegtkalias.pl: Protect definitions by the same
      	preprocessor symbols used to guard the headers. Move
      	the alias declarations to a separate file which is
      	produced when calling makegtkalias.pl -def
      	* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
      	this file.
      	* gtk/*.c: Include gtkalias.h after the other headers,
      	include gtkaliasdef.c at the bottom.
      	* gtk/*.h: Small cleanups.
      cca8dd63
  32. 11 Feb, 2005 1 commit
    • Matthias Clasen's avatar
      Support vertical menubars (#166632): · 812e0cfd
      Matthias Clasen authored
      
      2005-02-11  Matthias Clasen  <mclasen@redhat.com>
      
      	Support vertical menubars  (#166632):
      
      	* gtk/gtkenums.h (GtkPackDirection): New enumeration for pack
      	directions, with values for left-to-right, right-to-left,
      	top-to-bottom and bottom-to-top.
      
      	* gtk/gtk.symbols:
      	* gtk/gtkmenubar.h:
      	* gtk/gtkmenubar.c: Add two properties, pack-direction and
      	child-pack-direction, which specify how children and
      	grandchildren of a menubar are packed, with getters and setters.
      
      	* gtk/gtkmenubar.c (gtk_menu_bar_set_property):
      	(gtk_menu_bar_get_property): Implement set_property and get_property.
      
      	* gtk/gtkmenubar.c (gtk_menu_bar_size_request):
      	(gtk_menu_bar_size_allocate): Take pack direction into account.
      
      	* gtk/gtkmenubar.c (gtk_menu_bar_move_current): Implement
      	move_current here move all the menubar-specific direction
      	tweaking from the generic menushell implementation here.
      
      	* gtk/gtkmenu.c (gtk_menu_move_current): Move  menu-specific
      	direction tweaking from the generic menushell implementation here.
      
      	* gtk/gtkmenuitem.c (gtk_menu_item_size_request):
      	(gtk_menu_bar_size_allocate): Take pack direction into account.
      
      	* gtk/gtkimagemenuitem.c (gtk_image_menu_item_size_request)
      	(gtk_image_menu_item_size_allocate):
      	(gtk_image_menu_item_toggle_size_request): Take child pack
      	direction into account and pack the image vertically if
      	necessary.
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_real_select_item):
      	Set the submenu direction to left-right for menuitems in
      	vertical menubars.
      	(gtk_real_menu_shell_move_current): Simplify by moving
      	direction tweaking to menu- and menubar-specific
      	implementations. Take pack direction into account when
      	doing fallbacks.
      
      	* tests/testmenubars.c: Test menubars in various packing
      	direction combinations.
      
      	* tests/Makefile.am (noinst_PROGRAMS): Add testmenubars.
      812e0cfd
  33. 09 Feb, 2005 1 commit
  34. 28 Dec, 2004 1 commit
    • Matthias Clasen's avatar
      Return a boolean indicating whether an item in the submenu was selected. · e77e1e24
      Matthias Clasen authored
      2004-12-28  Matthias Clasen  <mclasen@redhat.com>
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first):
      	Return a boolean indicating whether an item in the submenu
      	was selected.
      	(gtk_real_menu_shell_move_current): When going in child
      	direction, don't get stuck at completely insensitive
      	submenus.  (#162055, Billy Biggs)
      e77e1e24
  35. 16 Dec, 2004 1 commit
  36. 15 Dec, 2004 1 commit
    • Matthias Clasen's avatar
      Use _gtk_menu_item_popup_submenu() to make keynav into submenus work · 8b927c6f
      Matthias Clasen authored
      2004-12-15  Matthias Clasen  <mclasen@redhat.com>
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
      	(gtk_real_menu_shell_activate_current): Use
      	_gtk_menu_item_popup_submenu() to make keynav into submenus work
      	instantaneously, independent of the popup delay.  (#161140)
      
      	* gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
      	make it non-static.
      
      	* gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
      8b927c6f
  37. 10 Dec, 2004 1 commit
    • Matthias Clasen's avatar
      Support no-Alt mnemnonics in menu bars (#101309, Owen Taylor) · f3a74ace
      Matthias Clasen authored
      2004-12-10  Matthias Clasen  <mclasen@redhat.com>
      
      	Support no-Alt mnemnonics in menu bars  (#101309, Owen Taylor)
      
      	* gtk/gtkwindow.c: Factor out mnemonic hash code into
      	a separate file.
      
      	* gtk/gtkmnemonichash.[hc]: Factored out mnemonic hash
      	code from gtkwindow.c.
      
      	* gtk/Makefile.am (gtk_c_sources): Add gtkmnemonichash.[hc].
      
      	* gtk/gtkmenushell.c (struct _GtkMenuShellPrivate): Give
      	menu shells their own mnemonic hash.
      
      	* gtk/gtkmenushell.h: Add private api to support mnemonics.
      
      	* gtk/gtklabel.c (gtk_label_setup_mnemonic): Add mnemonic to
      	the menushell mnemonic hash when inside a menu.
      f3a74ace
  38. 30 Nov, 2004 1 commit
    • Matthias Clasen's avatar
      Don't do the popup-on-click handling for menubars. (#159931, Søren · 4e67511f
      Matthias Clasen authored
      2004-11-29  Matthias Clasen  <mclasen@redhat.com>
      
      	* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
      	do the popup-on-click handling for menubars.  (#159931,
      	Søren Sandmann)
      
      	* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't
      	handle popup delay if the submenu is already mapped.
      4e67511f
  39. 25 Nov, 2004 1 commit