1999-03-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.c (desktop_icon_realize): Remove the
	WM_CLIENT_LEADER property from icon windows so that window
	managers will not store SM information for them.

	* gnome-open-dialog.c: Added missing #includes.

	* gdesktop-init.c (desktop_init_at): Removed an unused variable.

	* gdesktop.h: Added some missing prototypes.

	* gmain.h: Added some missing prototypes.

	* Makefile.in: Added gsession.[ch] to the list of sources.

	* gmain.c (create_panels): Consider whether we have a CORBA server
	and session management.

	* gdesktop.c: #include "gdesktop-init.h"
	* gdesktop.c: Added a missing cast to GNOME_DIALOG.

	* gmain.c (create_panels): Removed the run_desktop global
	variable.

	* glayout.c (create_container): Set the wmclass of the panel to
	include its unique ID.

	* gsession.[ch]: New file with the functions that deal with
	session management.

	* glayout.c (gnome_exit): Use session_set_restart().

	* gcorba.c (corba_init): Now returns an int with an error value.
	(corba_init_server): Initialize the server properly.
	Fixed all the object implementation code.
	(corba_create_window): New function used to create a window with
	the CORBA server.

	* gmain.c (gnome_check_super_user): Now the check for running as
	root is done here.  There should be no GUI code in src/.

1999-03-29  Jonathan Blandford  <jrb@redhat.com>

	* gdesktop.c (create_desktop_dir): improved wording.
	(create_desktop_dir): improved wording.

1999-03-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* mc.keys.in: Now that the menu code uses the full filename, we do
	not need "%d/%f" for html files.

1999-03-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdialogs.c (file_progress_show_bytes): Total may be zero (for
	instance, if you are copying zero-byte files).  Take this into
	account instead of issuing a warning.

1999-03-25  Jonathan Blandford  <jrb@redhat.com>

	* gdesktop.c (set_background_image): now we can set the background
	from GMC.

1999-03-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (create_new_menu_from): closedir after running.

1999-03-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (apply_metadata_change): Fix the
	test for setting the icon.  It was being done incorrectly and thus
	it was never possible to change the icon.

	* glayout.c (gnome_launch_mime_editor): Add mime-type-edit command
	to the menu: this launches mime-type-capplet

1999-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (apply_metadata_change): Fixed
	incorrect logic when testing whether the icon changed or not.
	This makes icons change correctly again.

	* Makefile.in (GNOMEHDRS): Added gdesktop-init.h.

1999-03-23  Jonathan Blandford  <jrb@redhat.com>

	* gscreen.c (panel_tree_drag_motion): lets try to cut down on the flickers.

1999-03-22  Jonathan Blandford  <jrb@redhat.com>

	* gdesktop-init.c (gdesktop_init): Do what the documentation says.

1999-03-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop-init.c (desktop_load_init_from): New file that loads
	new configuration files from the installation directory.

	* gdesktop.c: Drop all the reload code from there, put it above. 

	* gpopup2.c (create_mime_actions): Attach to the menu, not the uiinfo.

1999-03-19  Jonathan Blandford  <jrb@redhat.com>

	* gscreen.c (panel_tree_drag_motion): Dragging now automatically
	highlights the tree.  God does it flicker... )-:

	* gtkdtree.h (gtk_dtree_construct): removed unused prototype.

	* gscreen.c (panel_tree_check_auto_expand): removed the
	auto-collapse of trees, as it is confusing to the user.

	* gcustom-layout.c (custom_layout_set): We don't want to let the
	user remove all of the settings.

	* gdialogs.c (file_progress_show_bytes): bug fix proposed by Max
	Weninger <max@takefive.co.at>

	* gcmd.c (dentry_apply_callback): new function.
	(gnome_new_launcher): We can now create new 

1999-03-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpopup2.c (create_mime_actions): Free full_name, just once, not
	once per action.  

1999-03-19  Paul Raines <raines@slac.stanford.edu>

	* gtkdtree.c (gtk_dtree_load_path): Uses a phantom node to get
	directories with the expandable flag.  Avoids loading directories
	at two levels.

1999-03-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_open): Fix condition.  Should not
	open a new panel if it fails to mount the device. 

Thu Mar 18 14:59:12 1999  Timur Bakeyev  <mc@bat.ru>

	* gnome-open-dialog.c (read_directory): s/basename/x_basename/g

1999-03-17  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c (generate_icon_sel): I don't know
	who broke this, but it was a mess.  It now does the right thing,
	and works...

1999-03-16  Jonathan Blandford  <jrb@redhat.com>

	* gnome-open-dialog.c (read_directory): We now honor .order files.

1999-03-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gicon.c (get_icon_set): Use iset->filename (which is a
	strdup()ed string) instead of filename as a key in the hash table,
	since the user will very likely free filename.

	* gdialogs.c (symlink_dialog): Finished implementing the new
	symlink dialog.

	* gdesktop.c (icon_event): I'm an idiot.  Someone teach me boolean
	logic again.  Fixed edit-on-release for icons.

1999-03-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdialogs.c (real_input_dialog_help): Now we use a
	gnome_request_dialog() for generic input dialogs.  They look
	prettier and consistent now.
	(file_progress_show): Update the progress bars.  Thanks to Greg
	for noticing this!

	* Makefile.in: Removed references to gpopup.[co].

Mon Mar 15 17:09:37 1999  Gregory McLean  <gregm@comstar.net>

	* gdialogs.c (file_progress_show_bytes): Fixed a GTK Warning when
	done / total >= 1.0
	* file.c : Actually update the progress bar when copying files around.

1999-03-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (x_select_item): It is not necessary to call
	gnome_canvas_update_now() here.

	* gdesktop-icon.c (set_icon): Do not destroy the icon image.

	* gnome-file-property-dialog.c
	(gnome_file_property_dialog_finalize): Do not destroy the icon
	image, since it is a shared resource.

1999-03-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (text_changed): If the file has the "icon-caption"
	metadata set, then change that instead of renaming the file.  This
	can be used by URLs and is also needed by the mountable device
	icons.
	(text_changed_url): Removed this function now that text_changed()
	can handle all cases.

	* gdnd.c (drop_url_on_directory): Set the "icon-caption" metadata
	for URLs.

	* gdesktop.c (icon_event): Handle button-2 clicks and drags
	properly.

1999-03-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmount.c (get_mountable_devices): Show error message if the
	/etc/fstab is not readable by the user.

1999-03-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gview.c (scrollbar_moved): Better, but still shaggy when you
	drag with the scrollbar.

1999-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (create_panel_from_desktop): Do not assert that
	panel->count > 0, because we may actually not have any icons in
	the desktop.
	(desktop_popup): Reload the desktop once the popup menu is done.
	(create_panel_from_desktop): Be consistent with the way totals are
	computed in screen.c:do_file_mark().

	* gnome-file-property-dialog.c (gnome_file_property_dialog_init):
	Set the dialog to not destroy-on-close.

	* gpopup2.c (gpopup_do_popup2): Fixed Miguel's code.

1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpopup2.c (gpopup_do_popup2): Until Federico look over this, I
	am fixing this crash.

1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpopup2.c: Sigh.  It happened again.  More features killed by
	the merge.  

	If a file does not have any metadata/mime way of viewing it, the
	viewer will always work.

1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (text_changed): Rename the metadata and refresh the
	desktop.  This also fixes bug #573.

1999-03-11  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c (create_settings_pane): change the
	wording to be a tad clearer.
	(apply_metadata_change): only set the icon if it has changed.

1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpopup2.c (create_mime_actions): Do not free the file name here,
	since it is passed on to the callback.  It will be freed on the
	destroy handler instead.

	* gpopup2.c (escape_underlines): New function to escape the
	underlines in a string so that GtkLabel will include them in the
	final result.
	(create_mime_actions): Escape the underlines from the MIME action
	descriptions.

1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	Fix bug #261: inconsistent labels in view menu and toolbar,
	unsynchronized items.

	* glayout.c (panel_view_menu_uiinfo panel_view_toolbar_uiinfo):
	Made the view names consistent with the toolbar names.  Also,
	added underscore accelerators to the menu items.
	(copy_uiinfo_widgets): New function to copy the widgets from an
	uiinfo array into a widget array.
	(create_container): Copy the uiinfo widgets to the panel
	structure.

	* gcmd.c (set_view_type): New function to set the list view type
	and synchronize the menu and toolbar items.
	(gnome_close_panel): Free the view menu/toolbar item arrays.

1999-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpopup2.c (perform_mount_unmount): Set the icon's cursor while it is
	being operated on.
	(handle_mount): Use perform_mount_unmount().
	(handle_unmount): Likewise.
	(handle_eject): Set the icon's cursor while it is being ejected.

	* gdesktop.c (desktop_icon_set_busy): New function to set a watch
	or normal cursor for a desktop icon.

	* gdesktop.c (desktop_icon_info_open): Set the cursor to a watch
	while the icon is being opened.  Also, fixed memory leaks.
	(do_eject): Added a missing return value.

1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmount.c (setup_devices): Use new tigert icon.

	* gdesktop.c (do_mount_umount): Use g_readlink here.

	* gpopup2.c (handle_eject): Small tuning.  And use g_readlink :-).

	* gmount.c (mount_point_to_device): New function.  Mapes a mount
	point to its device.  Required since we are now using the mount
	point (as this is not ambiguous) as the key for the devices and
	the eject command needs the device name, not the mount point.

	* gdesktop.c (desktop_icon_info_open): First try to see if
	filename is mountable.  Then do the directory tests and the file
	launching tests.  Fixes mount-by-double click.

1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* glayout.c (save_panel_types): Do not save the setup of a desktop
	panel.

	* gpopup2.c (handle_mount): Use get_full_filename().
	(handle_unmount): Likewise.
	(handle_eject): Likewise.
	(handle_open): Likewise.

	* gdesktop.c (update_url): Made static.
	(desktop_reload_icons): Call update_url() when updating an
	existing icon.

	* gpopup2.c (handle_properties): Do not update the icon url here.

1999-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	This is a semi-big slew of changes to integrate the DESKTOP_BRANCH
	into the main trunk.  Now the gdesktop code creates a temprary
	WPanel structure and passes it on to the core file management
	functions.  Also, the menu code is improved (we now use gpopup2;
	gpopup should go away shortly and gpopup2 should replace it).
	This makes the desktop act consistently with the file panels.
	Thanks to Jonathan for his help with this branch.

	* gdnd.c (perform_action): Use mc_lstat(), not mc_stat().

	* glayout.c (update_panels): Do not update the panels that are
	desktop panels.

	* gdesktop.c (icon_is_in_area): An icon is not considered to be in
	a 0x0 area.

	* gpopup2.c (handle_open): Fetch the desktop icon from the
	filename and call desktop_icon_info_open().

	* gdesktop.c (desktop_icon_info_get_by_filename): New function to
	look up a desktop icon by its filename.

	* glayout.c (create_new_menu_from): Test for the ".desktop" suffix
	correctly.

	* gpopup2.c (handle_properties): If the file comes from a desktop
	panel, always allow edition of the icon image.

1999-03-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
	
	* gdialogs.c: Support ui->ctx to be NULL, as file.c will set this
	to NULL for background operations.

1999-03-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (icon_drag_data_received): Pass the full directory
	name to gdnd_perform_drop.

	* gpopup.c (create_regexp_actions): This routine no longer creates
	the default copy/move/delete context menu entries.

	(file_actions): Include the copy/move/delete options here.  This
	also enabled me to reorder things to put "Delete" closer to the
	top, as it is a pretty common operation.

1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (session_save_state): Add call to gnome_config_sync().

	* gutil.c (my_system_get_child_pid): reset SIGPIPE to a sensible
	value. 
	(my_system_get_child_pid): Close also stdin/stdout/stderr

	* gdesktop.c (is_mountable): Allow user-nfs devices to be mounted

1999-03-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (can_drop_on_clist): New function to figure out if the
	user is trying to drop on a valid region of a GtkCList.  It sucks
	to have to poke into its internal geometry, though.

1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (apply_metadata_change): only set
	the needs-terminal property if we actually created such entry.

1999-03-08  Sergey Panov  <sipan@mit.edu>

        * gcustom-layout.c, gprefs.c: Make the preferences dialog
        translatable. (include files in gcustom-layout.c and use of
        the _() macro in gprefs.c)

1999-02-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (create_settings_pane): Simplify
	the test and fix it.

	* gdnd.c (drop_on_file): Fix these so that they can use the
	metadata drop-action.

	* gdesktop.c (desktop_icon_info_open): Ugly.  Needs to share more
	code here.  Use the metadata first, and the is_exe to find out how
	to launch an application.

	* gnome-file-property-dialog.c (perm_group_new): Check the return
	value of getgrgid.
	(perm_group_new): Do not use a grp if it does not exist.

1999-02-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (my_app_create_menus): New function, used to create
	our menus and set the realy properly, to make cpanel (ie,
	current_panel) always consistent with what the user users.

	So, no need to kill the tearoff menus in gmc now.

	* gmount.c (is_block_device_mountable): compare the device name
	here. 
	
	(get_mountable_devices): Do not stop scanning devices. 	
	
	* gview.c (scrollbar_moved): Call view update here, with
	update_gui = FALSE.

	* gdesktop.c (desktop_icon_info_open): Add needs terminal support.

	* gnome-file-property-dialog.c (create_settings_pane): Add Needs
	terminal check box

1999-02-25  Jonathan Blandford  <jrb@redhat.com>

	* gpopup2.c: even more bug-fixes.  Plenty more left to do, but now
	all the menu code seems to work other then the
	select-and-popup-menu problem.

	* gaction.c (gmc_can_view_file): new function.  Can we view the file?

1999-02-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gaction.c (gmc_open_filename): Add support for needsterminal.

	* gscreen.c: Add New Folder option to the panel popup.

1999-02-25 Owen Taylor  <otaylor@redhat.com>

	* gdialogs.c (file_delete_query_recursive): GNOME
	replacement for recursive delete query dialog.

	* gprefs.c gcustom-layout.[ch]: Add a new page to
	the preferences dialog to allow the user to change
	the columns in the custom view.

1999-02-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmount.c (desktop_cleanup_devices): Export this routine now and
	call it from gdeskop instead of overloading gmount_setup_devices. 

	* gprint.c: Sample file, it uses an externally provided program
	(not in 1.0 so far) to setup printer devices.
	
	* gmount.c (gmount_setup_devices): No longer cleans up here.

	* gicon.c (gicon_get_filename_for_icon): Return const char *, this
	tells the user of this routine "you better not touch or free this
	you dofus".

	* gnome-file-property-dialog.c (apply_metadata_change): Always set
	the name of the icon to the new value, as the entry will always
	match the imlib image anyways (due to the fixes I did to const
	correctness). 
	(generate_icon_sel): Do not free the value.  We do not own this
	return value. 

	* gdesktop.c (is_mountable): NULL terminate string returned from
	readlink.  Yes guys, readlink does not NULL terminate things. 
	(do_mount_umount): ditto.
	
	* gnome-file-property-dialog.c (init_metadata): ditto

Tue Feb 23 17:41:45 1999  George Lebl  <jirka@5z.com>

	* gmain.c: set the restart property of the gnome client to
	  RESTART_IMMEDIATELY or RESTART_NEVER if we're gonna quit

1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (gnome_file_property_dialog_new):
	When dealing with a symbolic link, check the stat info from the
	real file, not the link.

	* gscreen.c (panel_tree_drag_data_received): Use path here (which
	is what is selected on the tree, not panel->cwd).

	* gdesktop.c (desktop_drag_data_received): Simplify.

	* gscreen.c (panel_icon_list_drag_data_received): Pass the full
	path to gdnd_perform_drop.
	(panel_clist_drag_data_received): same.

	* gdnd.c (drop_on_directory): We no longer take a file_entry
	here.  The directory we get passed is already a fully qualified
	name of the target location.

	* gwidget.c (x_create_input): Hook to the changed signal and sync
	the input with our view of the entry.  This fixes the paste bug
	reported. 

Tue Feb 23 01:57:22 1999  George Lebl  <jirka@5z.com>

	* gmount.c: fix obvious typos, use str in option_has_user, fix
	  mt_opts typo and is_block_device_mountable can't return TRUE nor
	  FALSE, so it returns NULL

1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (apply_metadata_change): Fix memory leak.

1999-02-23  Jonathan Blandford  <jrb@redhat.com>

	* gpopup2.c (handle_open_with): use the new dialog.  Doesn't quite
	work -- I'll make sure it does tonight.

	* gnome-open-dialog.c: new widget -- an "Open with..." dialog.

1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_reload_icons): Fix memory leak.

	* glayout.c (create_new_menu_from): Fix memory leak.

	* gdesktop.c (desktop_icon_info_open): Launch a panel at the
	location of the mount point.

	* gmount.c (setup_devices): Use g_list_free, not g_free.  Fed,
	test your fixes to my code ;-)

	* glayout.c (create_container): Add a Desktop menu if the WM is
	not GNOME compliant.

	* gdesktop.c (setup_motif_dnd_proxy): Use Window instead of
	gint32, fix from George Lebl.
	(setup_xdnd_proxy): ditto.

1999-02-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (file_entry_fill): Initialize fe->f.dir_size_computed.

1999-02-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmain.h: Removed set_current_panel() since it was never used.

	* glayout.c (set_current_panel): Made static and renamed from
	set_new_current_panel().
	Removed old toolbar cruft.

	* gmount.c (get_mountable_devices): Made static.

	* Makefile.in (ICONS): Added i-floppy.png, i-cdrom.png,
	i-printer.png.  Thanks, Tigert!

1999-02-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmount.c (gmount_setup_devices): New function to set up the
	mountable devices on the desktop directory.  Moved over from
	gdesktop.c.  Added an argument that specifies whether it should
	clean up the device list first.
	(cleanup_devices): Delete the metadata for the devices.
	(setup_devices): Free the list of device names.  Use the proper
	icon for each device.
	(create_device_link): Better error checking.

	* gdesktop.c (create_desktop_dir): Use gmount_setup_devices().
	(desktop_icon_info_destroy): Made static.
	(desktop_popup_items): The command for rescanning mountable
	devices should go here.
	(handle_rescan_devices): Call gmount and refresh the desktop.

	* gdesktop.h: Removed the declaration of tree_panel_visible, since
	it has nothing to do with the desktop.

	* glayout.c (gnome_panel_commands_menu): Removed the recreate
	devices command.

	* gdesktop.c (desktop_popup_items): Added a new command to create
	a file window.

1999-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (do_mount_umount): Removed unused variable.
	(do_eject): Return FALSE if there is no eject command.
	(setup_devices): Removed unused variable.

	* gdnd.c (drop_on_file): Pass the directory to if_link_is_exe().
	(gdnd_validate_action): Likewise.
	(gdnd_perform_drop): Made consistent with the rest of the code by
	taking the directory name along with the file entry.
	(gdnd_validate_action): Likewise.

	* gdesktop.c (icon_drag_motion): Pass the directory to the gdnd
	functions.
	(icon_drag_data_received): Likewise.
	(desktop_drag_motion): Likewise.
	(desktop_drag_data_received): Likewise.
	(desktop_icon_info_open): Pass the directory to if_link_is_exe().

	* gscreen.c (panel_icon_list_drag_data_received): Pass the
	directory to gdnd functions.
	(panel_clist_drag_data_received): Likewise.
	(panel_tree_drag_data_received): Likewise.
	(panel_clist_drag_motion): Likewise.
	(panel_icon_list_drag_motion): Likewise.

1999-02-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (reload_desktop_icons): Load the information provided
	on the .desktop file for the desktop icon information: icon
	filename and text to be displayed.pwd
	

	* gpopup.c (create_actions): Add ejectable 

	* gdesktop.c (do_eject): Add eject command.
 
1999-02-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpopup.c (create_actions): Add support for mountable icons.

	* gdesktop.c (try_to_mount): Add an option to automatically mount
	links on the desktop that point to devices. 
	(is_mountable): Returns true if a pathname is mountable.

	* glayout.c: Add the dirsizes command here.

	* gmount.c: New file.  Implements support routines for
	mount/umount.
	
1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* i-symlink.png: Flipped the image around, since we are putting
	the little icons on the lower-right corner.
	* i-stalled.png: Likewise.

	* gicon.c (gicon_get_filename_for_icon): Doh, use image_hash here.

1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gicon.c: Lots of changes to support the little symlink/stalled
	icons that get overlaid on the normal file icons.  We now have the
	concept of an icon set, which is a cache of normal icons plus
	their overlaid versions.

	* gnome-file-property-dialog.c (apply_metadata_change): Use
	gicon_get_filename_for_icon().
	(generate_icon_sel): Likewise.

	* gnome-file-property-dialog.c (create_general_properties): Use
	buffers of size MC_MAXPATHLEN.
	(init_metadata): Likewise.

1999-02-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmetadata.c: Removed the gmeta_del_icon_pos() function, since it
	is no longer used anywhere.

	* gdesktop.c (reload_desktop_icons): Use gnome_metadata_delete()
	instead of gmeta_del_icon_pos().
	(desktop_icon_info_delete): Likewise.
	(desktop_icon_info_destroy): Do not call gnome_metadata_delete().

1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (arrange_desktop_icons): I am such a doofus, I did
	not initialize two variables here.

1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (reload_desktop_icons): Take auto-positioning and
	snap-positioning into account.  This is the right thing to do.
	(get_icon_auto_pos): Do auto-positioning in two steps, first from
	the requested position to the end of the slot array, then from
	slot zero forwards if required.

1999-02-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcmd.c (gnome_open_terminal_with_cmd): New routine, based on the
	gnome_open_terminal routine, that will allow the user to specify a
	command to execute (used internally).

	* gaction.c (gmc_edit_filename): Support for the GNOME editor
	environment properties. 

	* gdesktop.c (create_desktop_dir): Support GNOME_DESKTOP_DIR
	variable to configure the desktop directory.

1999-02-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* mc.keys.in.in: Use "gnome-moz-remote file:%d/%f" for the html
	file actions.

	* gscreen.c (toolbar): Added a "rescan" button.

	* gprefs.c (create_prop_box): Make the preferences dialog modal.
	Also, set the window title and set the window's parent.
	Removed some unused functions.

1999-02-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_popup): Handle popup menus for the desktop.
	(arrange_desktop_icons): New function to auto-arrange the desktop
	icons.
	(reload_desktop_icons): Take care of positioning the new icons by
	ourselves; do not rely on desktop_icon_info_new() to do it.
	(remove_from_slot): Reset the icon's slot to -1.
	(reload_desktop_icons): Show all the icons after they have been
	loaded, instead doing it one by one.

	* gscreen.c (file_list_popup): Handle popup menus for the blank
	areas of the file panels.
	(panel_icon_list_button_press): Call file_list_popup().
	(panel_file_list_press_row): Likewise.

1999-02-14  Sergey Panov <sipan@mit.edu>

        * glayout.c: Fixed my own stupid typo( stock ID instead of NULL)
        it was not critical. A few minor, rather cosmetic changes in
        GnomeUIInfo structures.

1999-02-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* mc.keys.in.in: Use Tigert's new icon for man pages.

1999-02-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdialogs.c (file_mask_dialog): Renaming files was not working
	due to having the "file-must-exist" bit turned on.

	* gnome-file-property-dialog.c (apply_metadata_change): Metadata
	rename the file.  

	Change fpd->file_name to point to the new name so that any
	metadat changes take effect on the new name, not the old name.

	Test return value from move_file_file.
	
	(init_metadata): Fixed typo.

1999-02-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* mc.metadata.in: Added a regexp for EPS files.

	* mc.keys.in.in: Use Tigert's new icon for Postscript files.
	Possible FIXME: are there different MIME types for PS and EPS
	files?

1999-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.c (set_icon): Do not destroy the image if it is
	the same as the old one.  Sigh, imlib really needs proper
	refcounting.

	* gscreen.c: Use gpopup_do_popup() until the new version is
	finished.

	* gpopup2.c (create_actions): Made the action selection logic
	simpler.
	(gpopup_do_popup2): Now can only operate on panels.
	(file_actions): Sanitized the actions a bit.

	* gutil.c (my_system_get_child_pid): sa_handler must be
	gnome_sigchld_handler, not gnome_sigchld_installed.

	* gpopup.c (dicon_properties): Do not call reread_cmd().  This is
	a hack until the menus for panels/desktop are finished.

	* gscreen.c (panel_file_list_press_row): Use gpopup_do_popup2().

1999-02-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gutil.c (my_system_get_child_pid): Implement a erase-temp-file
	when child dies instead of waiting for child that was launched
	from shell/temp-file to finish.

1999-02-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_place): Better icon placement by
	rounding to the proper slot number.
	(select_range): Simpler range selection for exact Windows behavior.

	* gdnd.c (drop_on_directory): Do not ask for the action twice.
	This was a leftover from a bit of code reorganization.

	* gscreen.c (panel_icon_list_button_press): Fixed "=" -> "!="
	typo.

1999-02-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gaction.c (gmc_open_filename): Add support for running .desktop
	files. 
	Made const correct.
	(gmc_view): Made const correct.

1999-02-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* Makefile.in (ICONS): Added i-fifo.png to the list of icons.

	* gicon.c (gicon_init): Load the proper FIFO and socket icons.
	(gnome_file_entry_color): Return the proper icon for FIFOs.

	* i-fifo.png: Added this file, and made i-sock.png be the right
	image (thanks, Tigert!).

	* gscreen.c (ILIST_FROM_SW): New macro to extract the icon list
	from the scrolled window.
	(panel_create_icon_display): Create a scrolled window and put the
	icon list inside it.  Changed the rest of the code to know about
	this.

	* gcorba.c (do_window_close): It turns out that we *do* need to
	call CORBA_free().  It was a bug in ORBit which was causing this
	to crash.

1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (drag_end): Reload the desktop when a drag from the
	desktop terminates (the user may have moved something away).

1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcorba.c (do_window_close): Removed call to CORBA_free, as
	PortableServer_POA_deactivate_object already calls CORBA_free on
	the object.

1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* glayout.c (gnome_close_panel_event): This function should return
	FALSE.

	* gcorba.c (corba_init): Cast poa to PortableServer_POA.
	(impl_GNOME_FileManagerWindow_close): Call gnome_close_panel(); do
	not destroy the widget by hand.

	* gcmd.c (gnome_close_panel): This function should be void.

	* gpopup2.c (popup_handle_rescan): Call reread_cmd().

	* gscreen.c (panel_icon_list_button_press): Return TRUE if we
	handled a popup menu.

1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	(impl_GNOME_FileManagerFactory_create_window): Fix bug
	spooted by federico.  I was connecting to the wrong signal.

1999-02-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_class_init): Added two new signals,
	scan_begin and scan_end.
	(gtk_dtree_expand): Call scan_begin() and scan_end().
	(gtk_dtree_select_row): Call scan_begin() and scan_end().
	(gtk_dtree_expand): Use gtk_ctree_select(), not gtk_dtree_select_row().
	(gtk_dtree_collapse): Select the node when it is collapsed.

	* gscreen.c (panel_create_tree_view): Added handlers for the
	scan_begin and scan_end signals of the tree -- these will set the
	cursor to a watch while the tree is being scanned.

1999-02-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_destroy): Delete the metadata
	associated with this icon.

1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (entry_click): On mouse clicks, mark the input as
	changed-without destroy.

1999-02-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (x_create_panel): Removed a couple unused variables.

1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_select_row): Disable row selection when
	were are removing entries from the tree.

	* gutil.c (my_system_get_child_pid): Fix.  We always wait for the
	child process.

	* gtkdtree.c (gtk_dtree_lookup_dir): Scan the whole tree.
	Appanrently now the nodes expose are not ordered, but can contain
	holes and gaps

1999-02-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_insert_node): This function was never
	returning the newly-created sibling.

Sun Feb  7 05:29:17 1999  Timur Bakeyev <mc@bat.ru>

	* Makefile.in: Remove references and dependences to/from libslang -
	we don't need this in GNOME. Changed the order of linking - libgtkedit
	require libgnomeui.a, so swap $(LDFLAGS) and $(EXTRALIBS). The same for
	corba edition.
	
	gdnd.c, gmetadata.c, gpopup2.c, gtools.c: Adde #include "global.h" or
	move it before #include <gnome.h> to avoid warnings about redefining
	MIN, MAX nad RE_DUP_MAX. More clean compiling.
	
	* gpopup2.h: New file - to avoid errors during "make distcheck". What
	it is for, really?

1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (apply_metadata_change): #include
	string.h and replace references to rindex to strrchr.

1999-02-07  Tomas Ogren  <stric@ing.umu.se>

	* glayout.c, gnome-file-property-dialog.c: s/rindex/strrchr/
	To get rid of BSDism and make it compile on solaris 2.6

1999-02-06  Ettore Perazzoli  <ettore@comm2000.it>

	* gscreen.c (x_create_panel): The location bar is now a simple
 	GtkHBox instead of a GtkToolbar, and as a consequence the location
 	entry widget is expanded to fill all of the window horizontally.

1999-02-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (drag_data_get): Set the Netscape URL from the icon
	if it is available.  Wheee!  We can now drop icons onto Netscape.

	* gmain.h: Added prototype for gmc_open_filename().

	* gdesktop.c (desktop_icon_info_open): Fixed call to
	gmc_open_filename().  See why it is good to have prototypes? :-)

	* gdnd.c (perform_action): Oops.  Removed a leftover "break" that
	was causing the loop to exit, so you could not operate on more
	than one file.

1999-02-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpopup2.c (popup_handle_properties): Update the URL information
	on change.

	* gnome-file-property-dialog.c (generate_actions_box): Fix memory leak.
	(create_general_properties): Fix memory leak.

	* gdesktop.c (desktop_icon_update_url): New function.  Updates any
	changes done to the url/caption on the file-property-dialog.

	* gnome-file-property-dialog.c
	(gnome_file_property_dialog_finalize): Release all of the
	resources allocated (metadata routines alwayre return an allocated
	block of memory).

	Add support for changing the url an icon points to and the caption.

	* gdnd.c (drop_url_on_directory): Better set the icon-filename
	metadata entry instead of hard coding it.

1999-02-05  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_reverse_selection_cmd_panel): new function -- does
	good things

	* gscreen.c (panel_icon_list_select_icon): uses new popup menu
	(panel_icon_list_button_press): ditto

	* gpopup2.c (gpopup_do_popup2): new implementation of popup
	menu.  Many changes -- almost all internal.  Much cleaner now...
	Off to England.

1999-02-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gicon.c (gicon_get_url_image): Return an image for url types.
	(gicon_init): Load the url image.

	* gdesktop.c (desktop_icon_info_new): Use an URL image for
	desktop-urls.   Use the url as the caption for those icons. 
	
1999-02-04  Jonathan Blandford  <jrb@redhat.com>

	* gprefs.c (caching_and_optimization_props): wording changes

1999-02-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_open): Run "execute" if the file
	is an executable.  I forgot that gmc_open does not test for
	executable-ness. 

1999-02-04  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c (apply_uid_group_change): Bug fix.
	(apply_metadata_change): Another bug fix.

1999-02-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdnd.c (gdnd_validate_action): Show the correct feedback when
	dragging URLs.

1999-02-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_open): Use gmc_open_filename
	instead of the stuff that goes trough a file_entry as we loose the
	full pathname.

	* gnome-file-property-dialog.c (generate_actions_box): Tag "open"
	for translation
	(apply_metadata_change): Use fm-open instead of fm_open for the
	metadata keys.

	* gscreen.c (panel_file_list_configure_contents): Make the icon on
	the type column be displayed.
	(panel_file_list_select_row): Removed dead code.
	(panel_file_list_press_row): Select the row before calling
	gpopup_do_popup. 

1999-02-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (drop_types): Allow dropping URLs on file panels.

	* gdnd.c (gdnd_validate_action): Added an "on_desktop" argument;
	this specifies that the user is dragging over the desktop.  Added
	cases for drags of desktop icons and URLs.
	(gdnd_perform_drop): New public function to handle drops.  This is
	now the master function to handle drops -- use this to make all of
	MC consistent.
	(drop_on_directory): Made static and renamed from
	gdnd_drop_on_directory().  Made it fit for use by
	gdnd_perform_drop().
	(drop_url_on_directory): New function to drop an url on a
	directory, moved over from gdesktop.c.
	(drop_uri_list_on_directory): New function to handle drops of URI
	lists on a directory.
	(drop_on_file): New function to handle drops on a non-directory
	file entry.  This is moved over from gdesktop.c,
	desktop_icon_drop_uri_list().  This is yet to be finished.

	* gdesktop.c (desktop_icon_drop_uri_list): Fix memory leak.
	(desktop_drag_motion): Use gdnd_validate_action().
	(dnd_icon_targets): Allow dropping URLs on icons.
	(icon_drag_motion): Use gdnd_validate_action().
	(desktop_drag_data_received): Use gdnd_perform_drop().
	(icon_drag_data_received): Use gdnd_perform_drop().

	* gscreen.c (panel_icon_list_drag_data_received): Use
	gdnd_perform_drop().
	(panel_clist_drag_data_received): Use gdnd_perform_drop().
	(panel_tree_drag_data_received): Use gdnd_perform_drop().

	* gcmd.c (gnome_about_cmd): Fixed Foundation typo, and updated the
	copyright date.

1999-02-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (create_general_properties): Use
	strrchr instead of rindex

1999-02-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c: Init gicon here to avoid crashing when we have the
	metadata database locked.  Not really important, but makes the
	code cleaner (in terms of fixes).

1999-01-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gnome-file-property-dialog.c (icon_sel_callback): Fix the
	conditional here.
	
1999-02-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_drag_motion): If the user is dragging a
	Netscape url, allow ACTION_LINK.
	(setup_desktop_dnd): Now we use a single GtkInvisible widget to
	proxy both DnD and clicks on the desktop.
	(setup_motif_dnd_proxy): New function to set up a widow as a Motif
	DnD proxy (to allow drops from Netscape, for example).
	(setup_desktop_click_proxy_window): Use the proxy_invisible widget.
	(drop_url): Reload desktop icons after creating the url entry.
	(desktop_icon_info_place): Allow a drop from something other than
	a desktop icon to be placed where the user wants.
	(desktop_drag_motion): Unconditionally specify ACTION_MOVE if we
	are dragging a desktop icon.
	(desktop_icon_info_place): Remove the icon from its slot before
	calling the smart-positioning routines.

1999-01-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (reload_desktop_icons): Reload the icon image for a
	file that already exists in the desktop, because it may have
	changed.

	* gdesktop-icon.c (desktop_icon_reshape): Center the text
	correctly if the user is using huge icons.

Mon Feb  1 00:49:18 1999  Timur Bakeyev <mc@bat.ru>

	* gscreen.c (panel_configure_file_list): Add central justification,
	as we got it (useless, imho :)

Sun Jan 31 19:42:47 1999  Norbert Warmuth  <nwarmuth@privat.circular.de>

	* Makefile.in (install_mx): make it work with srcdir != builddir
	(gmc.gnorba is located in $srcdir)

1999-01-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (reload_desktop_icons): Move metadata_unlock after
	the positioning loop (as we use the metadata there too).
	(desktop_icon_info_new): Accept a new parameter: url.
	(drop_url): New function.  Creates the files that represent urls
	on the desktop.
	(text_changed_url): New routine to handle url-renames

	Use the metadata "desktop-url" property to figure out if an icon
	represents an url.

1999-01-28  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c (create_settings_pane): We only let
	you set info if we are a regular file, or a link to a regular file.

	* gdesktop-icon.c (desktop_icon_reshape): Cut-n-paste error fixed
	by Quartic.

1999-01-27  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.h (struct _GnomeFilePropertyDialog):
	Now make open field mandatory and icon selection optional.
	* gnome-file-property-dialog.c: as above
	
	* gpopup.c (panel_action_properties): only allow setting images if
	we_can_afford_the_speed.

	* gicon.c: make we_can_afford_the_speed non-static

1999-01-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcorba.c: Provide new code to activate an existing
	FileManagerFactory factory.

	installed gmc is now corba-gmc.  plain-gmc is still available if
	you want it.

Thu Jan 28 02:15:48 1999  Timur Bakeyev <mc@bat.ru>

	* gdialogs.c: fixed "regexp.h" -> "eregexp.h" conversion.
	
	* oldnd.c: Replaced copy_strings() with g_strconcat().
	
1999-01-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_clist_motion): Stop the emission of the
	motion_notify_event signal so that it does not reach the clist.
	We do not want it to select rows while dragging.
	Replaced copy_strings() with g_strconcat().

	* gdnd.c (gdnd_validate_action): Do not override GDK_ACTION_ASK.

	* gdesktop.c: Updated the TODO list at the top of the file.

Wed Jan 27 03:14:46 1999  Timur Bakeyev <mc@bat.ru>

	* Converted memory managment to Glib - where it wasn't done. Now we 
	use g_new()/g_malloc()/g_strdup()/g_free() routings. copy_strings() re-
	placed by g_strconcat(), and sprintf() by g_snprintf(). Some other,
	minor changes.

1999-01-26  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_setup_drag_scroll): Renamed from
	panel_setup_drag_motion().
	(panel_clist_drag_motion): Use gdnd_validate_action().
	(panel_clist_motion): Return immediately if the event window is
	not the clist_window.  Otherwise, forward the event to
	panel_widget_motion().

	* gdnd.c (gdnd_find_panel_by_drag_context): New public function to
	find a panel based on a drag context.  This is basically the old
	find_panel_owning_window() made public.
	(gdnd_drop_on_directory): Test for the source widget being a tree,
	and if so, do not use the default behavior for panels.
	(gdnd_validate_action): New function to compute the final drag
	action given some conditions.  This is now used to make dragging
	behavior consistent across the desktop and the file panels.

1999-01-26  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c: Many Many Many changes.  Now it's
	pretty cool.  You can set all meta-data but the icon now.  Need to
	make gmc do the right thing with it, though.

1999-01-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_select_row): This should be also protected 
	against async notifications.

1999-01-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Only use
	GTK_DEST_DEFAULT_DROP since we want to do exotic stuff in the
	drag_motion handler to validate drops.
	(panel_icon_list_drag_motion): Use gdnd_validate_action().

	* gdnd.c (gdnd_drop_on_directory): Removed hack that prevented the
	user from dropping files on the same panel as the source one.
	This should not be done here.

	* gdnd.c (get_action): Sensitize the menu items based on the
	allowed actions in the drag context.
	(actions): Add some underlined accelerators for the action menu.

	* gdesktop.c (icon_drag_motion): Use S_ISDIR() in addition to
	fe->f.link_to_dir.

	* gscreen.c (panel_file_list_scrolled): Removed this function, as
	it was not used for anything useful.

	* gdnd.c (gdnd_drop_on_directory): Duh.  Use context->action, not
	context->suggested_action.

1999-01-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_load_path): Keep track of when we are
	loading the tree (and thus we do not care about async
	notifications to the tree state changes) and when we are done (and
	thus, we care about the async treestore structure notifications). 

1999-01-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcmd.c (ep_add_callback): Set Window's position to
	GTK_WIN_POS_MOUSE.
	(gnome_external_panelize): ditto.
	(gnome_filter_cmd): ditto.

	* gdialogs.c (file_progress_query_replace_policy): Set Window's
	position to GTK_WIN_POS_MOUSE. 
	(file_progress_real_query_replace): ditto.
	(file_mask_dialog): ditto.

	* gdialogs.c: Tag the strings for localization.  Remove debugging
	messages. 

	* gmain.c (gmc_window_setup_from_panel): Helper routine used to
	set the GTK_WIN_POS_MOUSE on a window and set the parent with
	gnome_dialog_set_parent (iff you have the WPanel * pointer to the
	parent). 

	* gtools.c (query_dialog): Set the window position to GTK_WIN_POS_MOUSE.

	* gtkdtree.c (gtk_dtree_destroy): Kill the add_entry notification hook.
	(gtk_dtree_init): Install a notification function for treentry.
	removal.
	(entry_added_callback, entry_removed_callback): Implemented.  Now
	the tree is in sync with the panels and reload will update the
	tree correctly.

1999-01-22  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.c (set_text): Update the call to
	gnome_icon_text_item_configure() for the new API.

1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_drag_data_received): Do not force links on
	the desktop.

	* gscreen.c (panel_create_file_list): Do not use
	GTK_DEST_DEFAULT_ALL for the drop site.  Only use
	GTK_DEST_DEFAULT_DROP, since we need to check motion ourselves.
	(panel_clist_drag_motion): Do not allow dropping on the clist buttons.
	(panel_clist_button_press): Do not assign the
	panel->maybe_drag_start flag if the user clicked outside the clist_window.

	* gdesktop.h: Removed old crud (desktop_icon_t, icon_t).

	* gscreen.c (drag_types, drop_types): Use the constants from gdnd.h.

1999-01-21  Jonathan Blandford  <jrb@redhat.com>

	* gnome-file-property-dialog.c (apply_uid_group_change): uh, lets
	do this in Octal. (:

	* glayout.c: comment out compare panels.

	* gnome-file-property-dialog.h: new file.  This is a new widget
	for the file-properties dialog.  It doesn't handle mode changes
	quite right yet, but does everything else beautifully...

	* gnome-file-property-dialog.c: new file

	* gpopup.c (panel_action_properties): use new dialog
	(dicon_properties): as above.

1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_create_file_list): Added GDK_ACTION_ASK to the
	destination actions.
	(panel_create_icon_display): Likewise.
	(panel_create_tree_view): Likewise.

	* gdesktop.c (desktop_drag_motion): If the user explicitly
	requested action ASK, then do not make feedback show MOVE.

	* gscreen.c (panel_widget_motion): Pass in all drag actions now
	that Gtk handles button 2 by itself.

	* gdesktop.c (icon_event): Also delay the call to select_icon()
	until button release if the icon is selected and there are no
	modifier keys pressed.  This lets us perform drags on
	multi-selections easily.

1999-01-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (setup_icon_dnd_dest): Always specify ACTION_MOVE,
	since we want to be able to move the icons around.  Connect to the
	drag_motion signal.
	(dnd_icon_targets): List desktop icons as a target to be able to
	move them just a notch in the desktop.
	(icon_drag_motion): Decide which action we can use for dropping
	stuff on a desktop icon.
	(setup_icon_dnd_dest): Always specify all the actions.
	(icon_drag_data_received): Allow for icons to be moved just a
	notch by accepting drops from icons.

	* gdnd.h: Added #defines for the DnD target type names.

	* gdnd.c (gdnd_init): New public function to intern the target
	atom names.
	(gdnd_drag_context_has_target): New public function to see if a
	drag context has a certain target type.

	* gdesktop.c (setup_desktop_dnd): Do not use
	GTK_DEST_DEFAULT_MOVE, and connect to drag_motion.
	(desktop_drag_motion): If we are dragging from a desktop icon,
	indicate the action as MOVE.  Otherwise, force the action to be
	LINK unless the user explicitly requested ASK.
	(setup_desktop_dnd): Intern the atoms for the drop targets.

1999-01-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c: Selection code now is simpler and should be easier to
	use in the listing modes.

1999-01-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gicon.h (gicon_image_to_name): Added prototype for
	gicon_image_to_name().

	* gicon.c (gicon_get_icon_for_file): 
	(gicon_get_icon_for_file_speed): Added a "directory" argument.
	It is needed because the file_entry structure only contains the
	pruned filename, and we need the complete name for the metadata
	functions.

	* gdesktop.c (desktop_icon_info_new): Pass the directory to
	gicon_get_icon_for_file_speed().

	* gpageprop.c (item_properties): Build the directory name and pass
	it to gicon_get_icon_for_file_speed().

	* gscreen.c: Do not #include "directory.xpm".  Do #include "setup.h".
	Removed unused function button_switch_to().

	* gscreen.c (panel_fill_panel_icons): Pass the directory to
	gicon_get_icon_for_file().

	* gscreen.c (panel_create_tree_view): Allow button 2 to start the
	drag as well.
	(panel_clist_scrolling_is_desirable): Make both scrolling
	thresholds consistent.  Also, do not allow scrolling past the
	correct limit.
	(panel_icon_list_scrolling_is_desirable): Likewise.
	(panel_tree_scrolling_is_desirable): Likewise.
	(panel_clist_scroll): Do not allow scrolling past the correct limits.
	(panel_icon_list_scroll): Likewise.
	(panel_tree_scroll): Likewise.

1999-01-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Do not set the style of
	the icon list.

1999-01-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gprefs.c (apply_callback): Update the directory contents after
	the settings have changed.

1999-01-19  Jonathan Blandford  <jrb@redhat.com>

	* gdialogs.c (file_op_context_create_ui): OP_DELETE now has it's
	very own dialog. whee.

	* gscreen.c (panel_create_pixmaps): now we use dir-open.xpm
	instead of the (apparently) ugly yellow one.

1999-01-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_select_row): Wonder why the code was
	returning for the clicks on the root node.

1999-01-19  Jonathan Blandford  <jrb@redhat.com>

	* gprefs.c: applied a heavily modified patch by Dave Camp
	<campd@oit.edu>  The preference box now works.

1999-01-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_construct): And the GTK+ people broke the
	API again.

1999-01-18  Jonathan Blandford  <jrb@redhat.com>

	* gscreen.c (x_create_panel): chnaged padding on the Filter label
	(do_ui_signal_connect): new view switching code.  Toolbar now works
	(go_home): new function -- takes one home

	* gtkdtree.c (gtk_dtree_construct): change ctree_set_reorderable.

1999-01-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (icon_event): Rewrote event handling for icons on the
	desktop.  This function handles button presses and releases and
	does some anal-retentive checking to avoid stuck pointer grabs.
	(icon_event_after): New fallback function for button presses.
	This is only called when an icon is being edited and the user
	clicks outside the icon's text item, indicating that editing
	should be accepted and terminated.
	(selection_stopped): New callback used to re-install the mouse
	grab once the icon text item stops selecting text.

	* gdesktop.h (DesktopIconInfo): Removed the finishing_selection
	flag now that the event handling code is cleaned up.

1999-01-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gpageprop.c (item_properties): Use the metadata information for this.
	(item_properties): Set the icon-filename metadata bit

1999-01-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (create_new_menu_from): Handle both the system dir and
	the locally installed directory.

1999-01-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_do_select_dir): Select the node, and test
	against full visibility of a node.

	* gscreen.c (panel_fill_panel_icons): While loading the icon list,
	mark those items that are selected as, well, ahem, selected.
	(x_fill_panel): Use the system getwd routine to find out the real
	location in the file system

1999-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpageprop.c (item_properties): Use file contexts appropriately.

	* gdnd.c (perform_action): Use file contexts appropriately.

1999-01-13  Jonathan Blandford  <jrb@redhat.com>

	* glayout.c (create_container): finished the New->menu.  Looks
	better now.
	(create_container): Moved the statusbar creaton.  Now you can get
	the hints.

	* gcmd.c (gnome_run_new): new function.

	* glayout.c (create_container): beginnings of the New-> menu.  It
	doesn't have much yet, hopefully we'll have a good way to let apps
	register themselves with it.

1999-01-13  bertrand <Bertrand.Guiheneuf@inria.fr>
	
        * gdialogs.c
	* gwidget.c: 
	* gprop.c: 
	s/gtk_toggle_button_state/gtk_toggle_button_active

1999-01-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_delete): Pass the file operation
	context to erase_dir() and erase_file().

	* gcmd.c (gnome_sort_cmd): Cast the sort functions to avoid
	warnings.

	* gdialogs.c: Converted to use FileOpContext.

	* gmain.h: Added some prototypes needed in the Gnome version.

1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_drag_data_received): Drops on the desktop by
	default will always be Link commands.  If the user wants to
	copy/move he needs to use the button-2 to do this.
	(desktop_icon_info_delete): Treat links as files, not directories.

	I have got enough complaints about this.
1999-01-12  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_open_files): now you can open multiple files.
	* glayout.c: layout changed some.  moved run command.
	commented out ftplink/mkdir command for now.  gonna do mkdir
	next.  Why is the ftplink command needed?

1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (run_cmd): Add run command.  Add back FTP link
	command.  Add Mkdir command.  Use standard key definitions.

	* gview.c: Use new standard keybindings
	
	* gtkdtree.c: Now it uses the treestore code.

	* treestore.c: New file format which includes the scan status of
	the directories.

	* treestore.c: Provide _opendir, _readdir, _closedir operations
	for the tree cache.

	Next step: load/save the tree_entry->scanned flag (without this,
	you wont notice a big speedup).

1999-01-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gutil.c (my_system_get_child_pid): Acknowledge new EXECUTE_WAIT
	flag.  This is required by the vfs code.

1999-01-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_create_file_list, panel_create_icon_display):
	I got excited adding the gtk_drag_source_set.  I generate those
	events myself, no need to put them here.

1999-01-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (stock_from_text): Return this value.

1999-01-08  Jonathan Blandford  <jrb@redhat.com>

	* glayout.c: now open the new (non-functional) dialog box.  If you
	want functionality, I suppose you could put the old one back in.
	I'll work on it more this weekend, though, so hopefully it can get
	back to the old state relatively quickly.
	* gprefs.c (gnome_configure_box): New function, new file, first
	start at unified properties box.

1999-01-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_select_icon): Remove debugging message.

	* glayout.c: Add a create directory option.
	
1999-01-07  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_filter_cmd): now it works!  It's even sorta
	useful.  I'm so psyched... (:
	

1999-01-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_drag_data_received): Do not update
	contents if nothing was done (ie, the drop was cancelled).
	(panel_create_file_list): Duh.  Restore this, as, ahem, we dont
	have banding selection on CList.
	(panel_icon_list_select_icon): Open the new panel only on button
	release.
	(panel_file_list_select_row): New panel started on clist when you
	press middle button.

	(panel_create_file_list): Ahaha!  I found that CList now has a
	gtk_clist_set_buttion_actions.  Go figure why we need this and why
	it was implemented, but now buttons work as they should on clist.

	* gdnd.c (gdnd_drop_on_directory): Do nothing if the files dragged
	are on the same directory we are.

1999-01-07  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_filter_cmd): Function filled in now.  Actually
	works (amazing!.)  Next: put a history on it, and maybe an event
	box for the label.

	* glayout.c: use the function below.

	* gcmd.c (gnome_filter_cmd): New function (or a sorry excuse for
	one, anyway...)

	* gscreen.c (x_create_panel): now uses gnome-appbar instead of the
	old, psuedo status bar.

1999-01-06  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_external_panelize): Now it works.  Just need to save
	results so the next time works.  Will do this tomorrow.
	(gnome_external_panelize): think I finished this now.

1999-01-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.c (desktop_icon_realize): Make icons sticky as
	well.

	* gpageprop.c (item_properties): Use a file operation context.
	* gdnd.c (perform_action): Likewise.
	* gdesktop.c (desktop_icon_info_delete): Likewise.

	* Makefile.in: Added fileopctx.o.

1999-01-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_drop_uri_list): Implement
	drops-on-executable. 

	* gmetadata.c, gaction.c, gdesktop.c, gicon.c: Use g_free instead
	of free to follow the convention in gnome-metadata.c

	* gtools.c (query_dialog): Fix the new version of this.  It was
	overwriting memory all over.

	* gdialogs.c (): Use GNOME stock;  Fill in some FIXME strings. 
	(file_progress_real_query_replace): Use the formatted
	message. 

	Change the inlined N_( for _( in various places. 
	(cancel_cb): Cancel button now cancels a copy or move operation.

	* gtools.c (query_dialog): Remove the hotkey indicator in the
	gnome version specific query_dialog box.

1999-01-05  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_external_panelize): mostly hooked up now.
	will finish tomorrow (shouldn't take very long...)

1999-01-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* Makefile.in (GNOMESRCS): Removed temp-hack.c from the list of
	sources.
	(GNOMEHDRS): Ditto for gdialogs.h.

	* gscreen.c (x_create_panel): Removed periods from the toolbar
	button tooltips.

1999-01-04  Jonathan Blandford  <jrb@redhat.com>

	* glayout.c: menu changes.

	* gcmd.c (gnome_external_panelize): new function.  Does absolutely
	nothing yet but look pretty (and it doesn't do that all that well,
	yet...)  I'll hook it up to it's actual functions, tomorrow.

1999-01-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_reset_sort_labels): Various fixes to fix some of my
	recent changes.  I bet Jonathan found that things were not quite
	working.  Sorry for the previous untested changes.

	This also fixes the bugs reported on gnome-list regarding the
	CList problems.  This is the correct fix (basically, we were using
	a CList that was configured in one way, even if the display format
	had changed.  Now, the CList is kept in sync with the format by
	calling a routine that somehow got dropped during some recent
	changes).

	* gtools.c (query_dialog): Simplified.  

1999-01-02  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c (gnome_sort_cmd): pretified
	(gnome_select_all_cmd): New command -- selects all files (in
	theory). 

	* glayout.c: rearrange the edit menu some.

	* gscreen.c (x_create_panel): new icon view icons -- brief and
	custom.

1999-01-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (select_range): Fixed selection of ranges where the
	starting and ending icons are in the same vertical or horizontal
	slot.
	(reload_desktop_icons): Fixed incorrect usage of
	g_list_remove_link().  Also, moved the functionality from the old
	load_desktop_icons() here.  Now all icons are always loaded
	efficiently, and there is no need for the "incremental" flag.
	(desktop_icon_info_delete): Delete the icon position information.

	* gmetadata.c (gmeta_del_icon_pos): New public function to delete
	the icon position information from a file.

1999-01-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_create_listbox): Temporary hack

	* gmetadata.c (gmeta_get_icon_pos): Fixed the memory leak here. 

	* gicon.c (gicon_get_icon_for_file): Actually return a value
	here. 

1999-01-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_fill_panel_list): Assertion that will pin point
	if a CList gets out of sync with the panel->format.

1999-01-01  Momchil 'Velco' Velikov <velco@fadata.bg>

	* gscreen.c (panel_fill_panel_list): NULL terminate the column
	array.  This is strange, as it should not need the ending NULL.

1999-01-01  Jonathan Blandford  <jrb@redhat.com>

	* gcmd.c ((GtkWidget *widget, WPanel *panel): Now hooked up
	correctly.  Still needs to set the option menu correctly.  Oh
	well...

1998-12-31  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpopup.c (dicon_properties): Made static, and renamed from
	desktop_icon_properties().
	(dicon_execute): Likewise.
	(dicon_actions): Renamed from desktop_icon_actions.

	* gdesktop.c (desktop_icon_info_destroy): Renamed from
	desktop_icon_destroy(), for consistency with the rest of the
	functions that handle DesktopIconInfo structures.
	(desktop_icon_info_open): Likewise.
	(desktop_icon_info_delete): Likewise.

1998-12-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Provide auto-scroll
	handlers for the drag stuff.

1998-12-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (create_panels): Register corba server here.

	* gcorba.c: Fix a servant declaration to point to the correct
	vepv. 

1998-12-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (find_icon_by_drag_context): Made static.

	* gdesktop.h (DesktopIconInfo): Now that this type is public,
	renamed it from struct desktop_icon_info, for consistency.

1998-12-30  Jeff Garzik  <jgarzik@pobox.com>

	* gprop.c, gpopup.c: s/g_copy_strings/g_strconcat/

1998-12-30  Jonathan Blandford  <jrb@redhat.com>

	* gaction.c (gmc_execute): now takes an filename instead of a file
	entry for an argument
	(gmc_open_filename): handles the new gmc_execute code.

	* gdesktop.c (desktop_icon_drop_uri_list): commented out
	action_drop.  Needs defining.

1998-12-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_delete): New function, used for
	dicon_delete. 
	(load_desktop_icons): Implemented the incremental reloading of
	desktop icons.  This should make the code much nicer.
	(reload_desktop_icons): Call x_flush_events to force a display at
	that point.

	* gpopup.c (dicon_delete): Implement this operation.
	(desktop_icon_execute): Use the existing implementation for
	launching desktop icons instead of a new hacked up version 

	(desktop_icon_actions): Until copy/move is implemented, do not
	even list them to the user.

	* gdesktop.c (create_desktop_dir): No trashcan setup until it
	works. 

	* gscren.c (panel_widget_motion): Use button 2 for dragging and
	asking. 
	

	* gscreen.c (panel_create_file_list): Use a notebook instead of
	the hack I was using before for switching the panel contents.

	* gtkdtree.c (gtk_dtree_new): We now rely on the whole code to be
	running in the proper visual.  The more I look at this, the more
	desires I have to do a proper imlib.

	* gdesktop-icon.c (desktop_icon_init): ditto.

Tue Dec 29 16:55:24 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>

	* gmain.c: According to the man page the color keyword for executable 
	files 	is `executable' and not `execute' -- changed. 

1998-12-28  Jonathan Blandford  <jrb@redhat.com>

	* glayout.c: Initial rehash of the menu code.

1998-12-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gprop.c (perm_mode_new), gcliplabel.c: Uset gtk_label_set_text.

Thu Dec 24 18:38:45 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>

	* layout: Adapted for the new option Compute Totals in the
	Configuration dialog.

1998-12-22  Jonathan Blandford  <jrb@redhat.com>

	* gdialogs.c (file_progress_real_query_replace): Cleaned up some.  Still has a
	bit of work to do, but in general, much better.

Mon Dec 21 22:33:07 1998  Norbert Warmuth  <nwarmuth@privat.circular.de>

	* layout: Deleted obsolete widgets from the Virtual FS configuration
	dialog. 

1998-12-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_select_icon): Show the popup menu on
	button release here.  This is what makes most sense. 
	(panel_widget_motion): Drags with button 3 now produce a popup
	dialog box that asks

1998-12-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdialogs.c (create_op_win): Remove second spurious packing.
	(create_op_win): OP_MOVE uses the same stuff OP_COPY does.  Fix
	this. 
	(file_progress_show_target): More compliant to the original
	functions.
	(file_progress_show_source): More compliant to the original
	functions.

	* gdesktop.c (create_desktop_dir): Fix mem leak.

Tue Dec 15 10:51:12 1998  Gregory McLean <gregm@comstar.net>

	* gdesktop-icon.c : Attach a desktop_icon wmclass to the desktop
	icons to allow even more wizardry with the desktop icons, mainly
	to exclude them from window lists, don't decorate them, skip 
	desktops and other boring stuff.

1998-12-14  Sven Neumann  <sven@gimp.org>

	* lightened up the dir-pixmaps a little to please your eyes and
	tigert ;-)

1998-12-14  Owen Taylor  <otaylor@redhat.com>

	* gnome.TODO: Added a number of tree and icon
	view todos.

1998-12-14  Owen Taylor  <otaylor@redhat.com>

	* gscreen.c (x_create_panel): Keep up with changes
	to GtkDockItem.

1998-12-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_update_input): Use gtk_entry_get_text here.

1998-12-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Set white background.

1998-12-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdnd.c (perform_action): Fixed a pair of incorrect braces.
	Files were not being operated on because of this.

1998-12-12  Owen Taylor  <otaylor@gtk.org>

	* gscreen.c (panel_tree_drag_motion): Doubled timeout
	for autoexpand - reducing opening unwanted directories.

	* gscreen.c (tree_drag_open_directory): Use 
	gtk_ctree_expand() not gtk_ctree_expand_recursive,
	which increases confusion and could be
	_vvveeerrrryyyy_ expensive. (/afs ?)

	* gscreen.c (panel_tree_drag_leave): Fixed up
	signature - "drag_leave" has no x,y.

	* gscreen.[ch] (panel_tree_check_auto_expand): When
	we've expanded rows during a drag, collapse them
	again when the drag leaves that row.

1998-12-12  Owen Taylor  <otaylor@gtk.org>

	* gtkdtree.c (gtk_dtree_destroy): Remove timer upon
	destruction to be safe. (Should this, and
	dtree->timer_id itself be in gscreen.c instead?)

	* gscreen.c (panel_tree_drag_leave): Change == to !=
	so that timeouts are properly removed.

1998-12-11  Matt Wilson  <msw@redhat.com>

	* gscreen.c: The solid lines in the tree are kinda harsh.  Replace
	them with soothing dotted lines.

1998-12-11  Matt Wilson  <msw@redhat.com>

	* dir-open.xpm, dir-close.xpm: Away with the tacky yellow folders -
	I like these brown ones from tigert better.

1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpopup.c (create_actions): The tests for F_PANEL and F_DICON
	were wrong.  Fixed them.  This does not mean that the popup menus
	are right, though.

1998-12-11  Owen Taylor  <otaylor@redhat.com>

	* gscreen.c gdesktop.c gdnd.h: enable dragging locale files
	into Netscape.

1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gicon.c (gicon_get_icon_for_file): First try to fetch the inline
	icon data (i.e. thumbnails), second try the generic icon filename.

1998-12-11  Owen Taylor  <otaylor@redhat.com>

	* gdesktop.c (window_button_press): Ehen cancelling editing
	account for clicks on other GMC windows.

1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (click_proxy_filter): Doh.  We may get DestroyNotify
	for other windows than the proxy, so deal with it.

1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (click_proxy_button_press): Use a nice arrow cursor
	for rubberbanding.
	(click_proxy_filter): Keep a firm jaw when the window manager dies
	and thus the proxy window is destroyed.
	(setup_desktop_click_proxy_window): Moved the proxy window
	creation code to this function.
	(click_proxy_property_notify): Handle PropertyNotify events from
	the root window for when the proxy window changes.  Now the window
	manager can restart itself as it pleases and GMC will handle it
	correctly.

1998-12-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	Wheeeee!  Desktop icons can be selected by rubberbanding.  You
	need Englightenment to do this, as so far it seems to be the only
	WM with support for the _WIN_DESKTOP_BUTTON_PROXY property.

	* gdesktop.c (click_proxy_filter): New event filter for button
	presses and releases on the root window.
	(click_proxy_button_press): New function to handle button presses
	on the desktop.
	(click_proxy_button_release): New function to handle button
	releases on the desktop.
	(click_proxy_motion): New function to handle rubberbanding motion
	on the desktop.
	(setup_xdnd_proxy): Flush the server after ungrabbing it.
	(find_click_proxy_window): Flush the server after ungrabbing it.
	(store_temp_selection): Stores the temporary selection to the
	master selection, or viceversa.  This is needed for dynamic
	updating while the user rubberbands.
	(update_drag_selection): New function to update the selection
	while the user is rubberbanding on the desktop.
	(icon_is_in_area): New function to see if an icon is inside the
	rubberbanding area.

	* gdesktop-icon.h: Added fields for querying the icon and text
	position and size.

	* gdesktop-icon.c (desktop_icon_reshape): Set the position and
	size fields as computed for layout.

1998-12-11  Owen Taylor  <otaylor@redhat.com>

	* gdesktop.c (editing_started): Grab on the window for the
	icon, not on the canvas, so we can properly detect
	clicks elsewhere.

	(icon_button_release_after): When the user stops selecting,
	regrab the pointer.

1998-12-11  Jonathan Blandford  <jrb@redhat.com>

	* gtkdtree.c (gtk_dtree_do_select_dir): fixed a little bug --
	caused a segfault.

	* gscreen.c (x_create_panel): More changes.  The toolbar is moved
 	to a gtk_toolbar, and is movable.  The entry will be put in it's
 	own toolbar, too.
	(panel_create_cwd): For now, hardcode the usize of the entry
 	widget.  Later on, have it expand (when toolbar supports it)

1998-12-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gcmd.c: #include "../vfs/vfs.h"

	* gdesktop.c (setup_icon_dnd_actions): Moved the code that calls
	gtk_drag_source_set() for an icon here.
	(editing_started): Temporarily disable drags while the icon's text
	is being edited.
	(editing_stopped): Re-enable DnD from the icon once editing has
	stopped.

1998-12-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcmd.c (gnome_close_panel): When a panel is destroyed, chdir to
	root directory, as the process will be holding the inode for the
	directory that was selected until an operation is performed in
	another panel.

	* gicon.c (gicon_get_icon_for_file): Invert the way the testing
	for icons is done to handle directories properly.

1998-12-10  Jonathan Blandford  <jrb@redhat.com>

	* gscreen.c (x_create_panel): made some small stylistic changes.
  	Also, removed the hint bar and consolidated the status bar.

Thu Dec 10 21:38:55 1998  Owen Taylor  <otaylor@redhat.com>

	* gkey.c (delete_select_channel): Fixed list handling
	with g_list_remove().

1998-12-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (dnd_select_icon_pending): Added this flag that
	specifies whether a selection is pending for an icon if the user
	was holding the Control key down while clicking.  We have to delay
	selection in this case so that DnD will work correctly, just like
	Windows.
	(icon_button_press): New function that handles button presses on
	icons; it obsoletes the old desktop_icon_info_event().
	(icon_button_release): New function that handles button releases
	on desktop icons; it will do what is appropriate if there was a
	pending icon selection.
	(drag_begin): Handle pending selections as appropriate.
	(unselect_all): Added an paremeter that specifies which icon to
	exclude from unselection.
	(editing_started): Unselect all icons but the one for which
	editing has started.
	(dnd_icon_sources): Changed the MIME-types for internal drops to
	"application/x-mc-desktop-icon".
	(click_proxy_window): New variable that stores the proxy window
	for clicks on the desktop.
	(setup_desktop_clicks): New function that sets up clicks on the
	root window.
	(find_click_proxy_window): New function to find and set up the
	window for proxying clicks from the root window.

	* image.metadata.in: Added case for `jpg', as there was only a
	case for `jpeg'.

1998-12-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gicon.c (gnome_file_entry_color): If we do not have permissions
	for this directory, indicate this with a special icon.

	* gscreen.c (panel_icon_list_select_icon): Middle button opens a
	new panel on a directory.

1998-12-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c: Moved the old DnD cruft to olddnd.c to keep it there
	for reference purposes.

	* gmetadata.c: Removed the gmeta_get_icon_for_file() function, as
	it is obsoleted by gicon_get_icon_for_file().

	* gdesktop.c (desktop_icon_info_new): Made it use
	gicon_get_icon_for_file().

	* gdesktop-icon.c (set_icon): Now we handle things internally
	using an imlib image, not a filename.
	(desktop_icon_new): Now takes an imlib image for the icon instead
	of a filename.
	(desktop_icon_set_icon): Likewise.

1998-12-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtkdtree.c (gtk_dtree_new): Use imlib's visual and colormap.

	* gscreen.c (panel_create_tree_view): Use the colormap and visual
	from imlib when creating the DTree,

1998-12-08  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (icon_drag_data_received): Doh.  Use the correct
	pathname when calling gdnd_drop_on_directory().

1998-12-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_new): Do not stat the file, as we
	do not need that information anymore.
	(setup_icon_dnd_source): Moved the DnD-as-source code to here.
	(setup_icon_dnd_dest): New function to set up an icon as a DnD
	destination.

	* gdesktop.c (desktop_icon_info_place): Doh, do not place icons
	past the edge of the *whole* screen :-)
	(dnd_press_x dnd_press_y): New variables to store the cursor
	hotspot for DnD icons.  Moved these over from the
	desktop_icon_info structure, as it does not make sense to have
	this inside every icon.
	(button_press): Use dnd_press_x and dnd_press_y.
	(drag_begin): Likewise.
	(drop_desktop_icons): Use dnd_press_x and dnd_press_y to fix the offsets.
	(drag_data_received): Fix the proxy window offsets for all types
	of targets.
	(drop_desktop_icons): Snap the coordinates as appropriate.

1998-12-07  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (drop_desktop_icons): New function to perform a drop
	from desktop icons to the desktop.  It effectively moves the icons
	around.
	(desktop_icon_info_place): Do not place the icons past the edge of
	the screen.

1998-12-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (file_entry_from_file): Finished implementing
	file_entry_from_file().
	(struct desktop_icon_info): Removed the `type' field.  We now stat
	the file when needed to figure out the file type.
	(desktop_icon_info_event): Test whether the file is a directory by
	ourselves, and if it is, open a new panel for it.
	(drag_data_get): Generate the uri-list for internal desktop icon
	drags as well.

	* gdesktop.c (drag_data_received): We do not need to call
	gtk_drag_finish(), since we are using the GTK_DEST_DEFAULT_DROP
	flag for drops on the desktop.
	(desktop_icon_info_event): Reload the desktop icons after
	executing a command from the popup menu.  This kind of sucks, but
	will do for now.
	(desktop_icon_info_event): Upon receiving a button-1 press, if the
	icon was already selected in the first place, delay the
	re-selection phase until we get a mouse release event.  This lets
	us start a multiple-selection drag without having the initial
	click clear the selection first.
	(desktop_icon_info_event): Open the file or directory when the
	desktop icon receives a double click.

	* gmain.c (beep): Made it void, since it does not (need to) return
	anything.
	(xtoolkit_end): Likewise.

1998-12-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_build_selected_file_list): Provide space for
	the terminating NULL.

	* gmain.c (beep): Return a value.

	* gdnd.c (get_action): Typo fix.

1998-12-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (load_imlib_icons): Make it use the new gicon files.

	* gicon.c, gicon.h: New files: they keep an image cache and
	provide the right icon to use based on the filename.  They use the
	GNOME metadata to fecth the "icon-filename" and "icon-inline-png"
	keys for per-image icons.

	* gdialogs.c (file_mask_dialog): Commented the help messages until
	the warnings are figured out.

1998-12-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_new): Connect the signals for DnD
	so that we can drag icons from the desktop.
	(drag_begin): New function to set the drag cursor for icons on the desktop.
	(button_press): New function that stores the hot spot position for
	DnD cursors.
	(drag_data_get): New function to fetch the URI-list of selected icons.

	* gdialogs.c: Fixed some includes.

	* gdesktop.h: Removed the DnD target enum from here, since it is
	specific to each submodule.

	* gdnd.h: Moved the DnD target enums to here.  Added a new
	TARGET_MC_DESKTOP_ICON.

	* gdesktop.c (get_icon_snap_pos): Fixed icon snapping; the
	coordinates not being updated correctly.

	* gscreen.c (panel_drag_data_get): Free the uri list; it was being leaked.

1998-12-04  Jonathan Blandford  <jrb@redhat.com>

	* gdialogs.c (file_progress_show_count): finished the copy dialog.

1998-12-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gblist.c (blist_select_row): Warning fixes.

	* olddnd.c: Moved the old DND code here for reference purposes.

	* gscreen.c: Made the tree a drag source.

1998-12-04  Jonathan Blandford  <jrb@redhat.com>

	* gdialogs.c (trim_file_name): better update dialog

1998-12-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (load_desktop_icons): Added arguments that specify
	where to place the newly-created icons.  This needs some tweaking still.
	(reload_desktop_icons): Now takes arguments for the position of
	the new icons.
	(drag_data_received): Pass in the drop position to reload_desktop_icons().

	* gscreen.c (panel_tree_drag_motion): Added missing variable declaration.

	* gdesktop.c (load_desktop_icons): Added an incremental flag that
	specifies whether icon creation is unconditional regardless of
	whether there is an icon for a file or not.
	(reload_desktop_icons): Use the incremental flag in load_desktop_icons().
	(drag_data_received): Reload the desktop incrementally, to avoid flicker.
	(desktop_icon_info_new): Use mc_lstat(), not mc_stat().  We do
	want to read symlinks, even dangling ones, if they exist.
	(load_desktop_icons): While we are reading the desktop directory,
	first place all the icons that have their metadata icon-position
	set, and build a list of the ones that don't.  *Then* place
	those.  This fixes overlapping icons on weird situations.

	* directory.xpm: Removed bogus garbage.  There was a stale pixmap here.

	* gdesktop.c (setup_desktop_dnd): Allow for GDK_ACTION_ASK as well.

	* gscreen.c (panel_widget_motion): The action argument to
	gtk_drag_begin() is a mask of possible actions, not a single action.

	* gdesktop.c (drag_data_received): Only reload the icons if the
	drop was successful.

1998-12-03  Jonathan Blandford  <jrb@redhat.com>

	* gdialogs.c (create_op_win): starting the op_win dialog stuff

1998-12-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display, panel_create_file_list):
	Hook up to drag_begin and drag_end events.

	* gscreen.c (panel_tree_drag_motion): Improve interactivity
	(x_create_panel): Add a little decorating frame.

	(panel_create_icon_display, panel_create_file_list):
	Hook up to drag_begin and drag_end events.

	(panel_tree_drag_motion): Either queue a scroll on the tree, or
	queue an open-directory event.

	(panel_tree_scroll): Scroll the tree when the drag pointer is in
	one of the boundaries of the tree.

	(panel_tree_scrolling_is_desirable): new function to figure out if
	it is a good plan to scroll the tree view instead of opening it.

	(panel_chdir): Do not sync with the tree when we are in the middle
	of a drag and drop operation.

	(panel_drag_begin, panel_drag_end): New functions to keep track
	of the dragging operations.

1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_tree_drag_data_received): Perform drag and drop
	operations on the Tree.

1998-12-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (setup_desktop_dnd): New function to set up drops
	to the root window.
	(setup_xdnd_proxy): Function by Owen Taylor to set up a DnD proxy
	window.
	(drag_data_received): Function to handle drops on the root window.
	(desktop_destroy): Destroy the DnD setup.
	(reload_desktop_icons): New function to reload the desktop.

	* gscreen.c (drag_types, drop_types): Removed url-list; only
	uri-list should be there.

	* gdesktop.h: Removed TARGET_URL_LIST from the DnD enumerations.

	* gtkdtree.c (gtk_dtree_do_select_dir): Made static, as it is for
	internal use only.
	Fixed a little bunch of compiler warnings.

	* gscreen.c (x_fill_panel): Use gtk_dtree_select_dir(), not
	gtk_ctree_do_select_dir().

	* gpopup.c (gpopup_do_popup): Fixed incorrect assertion and
	actually create the menu (doh).
	(gpopup_do_popup): Do the same magic as in gnome-popup-menu to
	fetch the item that was activated in the menu.  Keep this code out
	of reach of children.
	(fill_menu): New function to fill the menu using the
	gnome-popup-menu magic for fetching the activated menu item.
	Removed ifdef'ed code.

1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (tree_drag_open_directory, panel_tree_drag_motion,
	panel_tree_drag_leave): Drag and Drop support routines for the
	tree to auto-expand the tree when the user stays still on top of a
	directory.

	* gtkdtree.c (gtk_dtree_load_path): Further speed increase.

1998-12-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* glayout.c (file_menu): Use view_cmd and view_simple_cmd in the
	menu instead of panel_action_view and
	panel_action_view_unfiltered, respectively.

	* gpopup.c (create_regexp_actions): Create the menu items using
	gnome-app-helper, for visual consistency.
	(create_actions): Likewise.  Also, fixed S_ISLNK() confusion.
	(get_label_text): Extract the label from the GnomeUIInfo item in
	an ugly way.

1998-12-01  Jonathan Blandford  <jrb@redhat.com>

	* Makefile.in: now handles gdialogs*

	* gdialogs.h:
	* gdialogs.c:Added new files -- takes the place of ../src/filegui.*

1998-12-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_switch_new_display_mode): Destroy the old
	widget.  Add the list view to the proper table.

	* glayout.c: Remove the exit menu option.

	* gtree.c (gtk_dtree_contains): New routine used to avoid
	duplicate entries in the tree display.

1998-11-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_select_icon): Use gpopup_do_popup().
	(panel_file_list_select_row): Use gpopup_do_popup().
	Moved the popup menu code to gpopup.c.

1998-11-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (display_mini_info): Use g_strdup_printf() to make it
	i18n-ize nicely.
	(panel_create_filter): Use _(), not N_().
	(x_create_panel): Likewise.

1998-11-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_create_panel): Add panel view.  Put the views
	inside a new table.  Add tree view to the left.
	(panel_create_icon_display): IconList no longer starts in frozen state.

	Update Makefile.

1998-11-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_update_input): Use gtk_editable_changed on the entry.
	(x_create_listbox): Fix more CList api change.
	* gscreen.c (CLIST_FROM_SW): Adapt to new GtkScrolledWindow
	inheritance.

1998-11-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* Makefile.in (OOBJS): Add filegui.o back until the GTK-specific
	filegui is written.

	* gdesktop.c (check_window_in_one_panel): Provide better error
	messages here for debugging purposes.

	Disable stubs for filegui.c until they are actually implemented.
	I need to debug stuff.

	* gdnd.c (find_panel_owning_window): Use the new
	gtk_drag_get_source_widget function to find out reliably if the
	drag source happens to be in this application.

	* gscreen.c (x_create_panel): Set the usize for the ministatus
	label to be (0, -1), this means: do not request any horizontal
	space, use any vertical space given.

	Put the ministatus inside an hbox, and use
	gtk_container_set_resize_mode in this hbox to stop any queue
	events from being propagated up in the hierachy of widgets

	This kills all of the CList/GnomeIconList/Scrollbar/Toolbar
	flickering now.

1998-11-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtree.c: More work on gtree.  It is basically ready to stick
	into gmc-window.c/mc  I just need to know when you are ready
	Federico.

1998-11-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gpopup.c (gpopup_do_popup): Hide the edit/view separator if
	those items were disabled, too.

	* gdesktop-icon.c (desktop_icon_realize): Added
	WIN_STATE_FIXED_POSITION and WIN_STATE_ARRANGE_IGNORE to the
	window hints for the desktop icons.

1998-11-24  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_event): Run the popup menu for the
	icons in the desktop.

	* gpopup.[ch]: New files that take care of the popup menus for
	files in the desktop and in the panels.

	* Makefile.in: Added gpopup.[ch] to the list of sources.

1998-11-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_info_place): Save the icon position
	when it is moved.
	(desktop_destroy): Removed the save_icons_pos() function and do
	not invoke it from desktop_destroy().

1998-11-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_list_insert): Make it work with the new CList
	policies.

1998-11-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c: Put in a bunch of stubs for the functions in
	filegui.h.  These will be removed as the dialogs get
	custom-written for Gnome.

	* gmetadata.[ch]: Changed the function names to "gmeta_*".

	* gscreen.c (CLIST_FROM_SW): Use scrolled_window->child, as
	viewport is obsolete.

1998-11-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* Makefile.in (OOBJS): Do not link ../src/filegui.o.  GMC does not
	link right now, but I guess I'll add stubs until we finish with
	the dialog boxes.

	* gdnd.c: #include <sys/types.h>

	* Makefile.in (checklinks): Fix sourcelinks -> maksourcelinks typo.

1998-11-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (session_save_state): Use gnome_geometry_string.

1998-11-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_file_list_compute_lines): Quick hack to get mc
	to compile with the new CList.

1998-11-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* Makefile.in: Removed gtrans.c from the list of sources.

	* gdesktop-icon.c: #ifdef cleanups.

	* gscreen.c (panel_create_file_list): Doh.  Return the scrolled
	window, not the clist.

	* gdnd.c (get_action): Implement the DnD actions menu.

1998-11-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdnd.c: New file that handles all the DnD stuff.  Mainly used to
	clean up gdesktop.c.

	* gscreen.c (panel_icon_list_drag_data_received): Use
	gdnd_drop_on_directory().
	(CLIST_FROM_SW): Added this macro to fetch the clist from the
	scrolled window in panel->list.
	(panel_create_file_list): Create a scrolled window and put the
	clist inside it.  This is required per the new clist API.
	(panel_configure_file_list): Use the scrolled window's adjustment.
	(panel_file_list_size_allocate_hook): Use the scrolled window
	instead of the clist.
	(panel_file_list_compute_lines): Use the scrolled window instead
	of the clist.
	(panel_file_list_configure_contents): Use the scrolled window
	instead of the clist.
	(panel_create_file_list): Do the DnD setup here, not in the
	realization callback.
	(x_create_panel): Do not realize the panel explicitly.
	(panel_create_pixmaps): Create the pixmaps using imlib instead of
	Gdk.

1998-11-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (text_changed): Doh.  Set the new filename of the
	desktop icon info structure.

1998-11-05  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (text_changed): We rename the files when the text
	changes.
	(save_icons_pos): New function to save the icon position metadata
	for all the icons in the desktop.
	(desktop_destroy): Save the icon positions when we exit.

1998-11-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (editing_started):
	(editing_stopped): New functions to install and remove
	pointer/keyboard grabs while icons are being edited,
	respectively.

1998-11-03  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (select_icon): Raise the icon when it is selected.

1998-11-02  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (select_range): Doh.  Fix dii -> ldii typo.  Also,
	use Windows semantics -- ranges are considered rectangular instead
	of linear.

	* gdesktop.c: Now desktop icons are stored in the layout_slots
	array.  We need to know which icons are in which slots.
	(unselect_all): Use the layout_slots array.
	(desktop_icon_info_place): Append the icon to the list in the
	proper slot.
	(desktop_icon_info_new): Initialize the position and slot fields
	in the desktop icon info structure.
	(desktop_icon_info_free): Remove the icon from its slot.
	(desktop_destroy): Destroy the layout slots and the icons
	properly.
	(remove_from_slot): New convenience function to remove an icon
	from the slot it is in.
	(get_icon_snap_pos): Do a bit nicer snapping by really using the
	closest slot.
	Added a last_selected_icon variable to keep track of the icon that
	was last selected, for shift+click selections.
	(select_icon): Finish selection semantics and clean up.  Now it is
	nice and simple and complete.
	(select_range): New function that handles range selections.

1998-11-01  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.h (DesktopIcon): Added a child item for stippling
	the icon when it is selected.

	* gdesktop-icon.c (desktop_icon_select): Show/hide the stippling
	as appropriate.

	* gdesktop.c (desktop_icon_info_event): Handler for events on
	desktop icons.
	(select_icon): New function that handles icon selection based on
	mouse clicks and modifier keys.

	* gdesktop.c (struct desktop_icon_info): Added a type field to the
	structure.  It specifies the type of icon (file, directory), and
	is used to determine the DnD and menu behavior.

1998-10-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c: We are now using the new desktop icon code.  It is
	not yet complete, but what is there does work.  We have icon
	creation, auto-layout and snapping.  Next step is drag and drop
	and popup menus.

	* glayout.c: #ifdef out the stuff that uses the old desktop code.
	I will replace it gradually.
	* gmain.c: Likewise.
	* gscreen.c: Likewise.

1998-10-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_button_release): Remove unused
	variable.

	Provide hand written CList-start drag code

1998-10-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmetadata.c (meta_get_icon_pos): Renamed from
	meta_get_desktop_icon_pos().
	(meta_set_icon_pos): New public function to save the icon position
	information.

	* gdesktop-icon.c (canvas_size_allocated): New function.  We reset
	the canvas scrolling region here, when the canvas gets size
	allocated, to ensure that the canvas has always the correct
	scrolling region.  We do it here instead of in the reshape()
	function to avoid flicker.

1998-10-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmetadata.[ch]: New files with functions to handle all metadata
	issues -- fetching icons, icon positions, etc.

	* Makefile.in: Added gmetadata.[ch] to the list of sources.

1998-10-28  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop-icon.c (create_window_shape): Use shaped icons only
	when the user has selected them.
	(desktop_icon_reshape): New public function to recompute the shape
	of the icon.  This should be used when the global
	desktop_use_shaped_icons flag changes.
	Added documentation comments to the public functions.

	* Makefile.in: Fixed for gdesktop-icon.

	* gdesktop-icon.[ch]: Renamed from desktop-icon.[ch], per Miguel's
	request.

	* desktop-icon.c (reshape): Position the icon text item correctly.

1998-10-27  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* desktop-icon.c (desktop_icon_new): Do now reshape more than
	needed by splitting the set_icon and set_text functions apart.

1998-10-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_set_position): Do not lower the
	window.  The gnome-compliant wm will know what to do with windows
	on the Desktop layer.
	(post_setup_desktop_icon): Likewise.

	* desktop-icon.c (create_window_shape): Fetch the mask of the
	image "by hand", as we cannot rely on the canvas item having
	created it yet.

	* desktop-icon.c (desktop_icon_realize): Doh.  We need to
	initialize the gnome_win_hints before we set any of the hints.

1998-10-21  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (create_desktop_icon): Renamed from
	my_create_transparent_text_window.  Now uses the DesktopIcon
	widget for its work.
	(get_desktop_icon_for_dentry): Renamed from
	get_transparent_window_for_dentry.  Uses the DesktopIcon widget.
	(get_desktop_icon_for_di): Renamed from
	get_transparent_window_for_di.
	(desktop_icon_properties): Do not size_request the icon, since now
	we can get its dimensions directly from the DesktopIcon structure.

	* desktop-icon.[ch]: New file that takes care of desktop icons.
	It provides the spiffy widget that is used for them.

	* Makefile.in: Added desktop-icon.[ch] to the list of sources.
	MC should use Automake, I think.

1998-10-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Small size adjustment.

	* glayout.c (create_container): Small size adjustment.

	* gmain.c (xtoolkit_create_dialog): Center windows.

1998-10-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_select_item): Force a canvas update when an icon
	has been selected.

1998-10-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_drag_data_get): New routine to provide data
	with the new DnD protocol.

	* gmain.c (dialog_key_pressed): If an icon has the focus, then do
	not process any of our events.
	Only stop the signal if we actually handled the event.
	(dialog_key_pressed):

1998-10-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_renamed): Add support for renaming files.

1998-10-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c: Use the new icon list.

1998-09-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c: Hook to invoke the editor from the context menu.

Fri Sep 18 13:51:16 1998  Pavel Roskin <pavel_roskin@geocities.com>

	* Makefile.in: Consequent "make" should not rebuild gmc every time

Mon Aug 31 10:46:32 1998  Owen Taylor  <otaylor@redhat.com>

	* gscreen.c (display_mini_info): Removed calls to
	gtk_clip_label_set() hack, since its cut-n-paste code didn't work
	with new GTK's. If excessive resizes are a problem, they can be
	solved by adding an adjustment around the label, and calling
	gtk_container_set_resize_mode().

1998-08-20  Raja R Harinath  <harinath@cs.umn.edu>

	* gdesktop.c: Include "mad.h", for xmalloc.
	* gkey.c: Likewise.
	* gscreen.c: Likewise.
	(panel_create_file_list): Use `g_free', not `free'.

Wed Aug 19 19:45:16 EDT 1998 The Rasterman <raster@redhat.com>

	* gdesktop.c - changed dnd setting routine for desktop icon to set
          events on child window...
        * gtrans.c - chnaged routines to make window with child rawing area
	  and set shape on parent window

1998-08-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_make_local_copies_and_transfer): Fix.

1998-07-04  Carsten Schaar  <nhadcasc@fs-maphy.uni-hannover.de>

	* gmain.c (session_management_setup): Replaced
 	'gnome_client_new_default' with 'gnome_master_client'.

1998-06-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_update_input): The previous hack was not
	required, the right fix was to change Gtk.

1998-06-22  Manish Vachharajani <mvachhar@vger.rutgers.edu>

	* gwidget.c: Don't call gtk_entry_scroll_adjust, it is a private member

1998-06-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (drop_cb): Mhm.  Negotiation of the drop type was not
	quite like I expected.  Anyways, fixed a bug: we need to take
	text/plain drops on the launch icons on the desktop.

1998-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_setup_icon): Assign the dentry->geometry
	from the drop position.   New .desktop files are now placed on the
	site they were dropped.
	(drop_cb): Use proper prototype.

Sun May 31 13:19:59 1998  Norbert Warmuth  <k3190@fh-sw.de>

	* Makefile.in: use @LIBVFS@ when referring to libvfs-mc.a (one
	reference wasn't converted, yet).

1998-05-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gwidget.c (x_create_input): Set the entry's visibility if it is
	a password field.

1998-05-26  Marc Ewing <marc@redhat.com>

	* Makefile.in: use @LIBVFS@ when referring to libvfs-mc.a

1998-05-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (session_save_state): Perform shutdown if `shutdown'
	flag is set.

1998-05-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (entry_release): Enhanced our marked handler for input
	lines.

	* gdesktop.c (desktop_create_directory_entry): Fix, make a
	g_strdup copy of the name. Fixes bug report #78.
	(desktop_icon_context_popup): Simplified this routine as we are
	using file_popup now anyways.

1998-05-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c: Move the New window menu entry from ``Window'' to
	``File''.

	* gwidget.c (x_unfocus_widget): Fix wartning.

	* glayout.c (set_hintbar): Call flush events after setting the
	hintbar.

1998-05-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_create_input): Disable the use of the GNOME entries
	for now, as they are very slow.  We need to figure out what is
	wrong with this.

	With this change, dialog boxes close quickly instead of taking
	ages to close.

	* gscreen.c, gdesktop.c (file_popup_add_context, file_popup):
	Share the context menu code in gdesktop.c and gscreen.c.  The
	desktop pop up menus now include all of the stuff that would have
	appeared in the Panel.

	* gdesktop.c (desktop_icon_remove): Remove the file associated
	with this desktop entry if it is on the ~/desktop directory.

1998-05-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (load_dnd_icons): Remove the code and the icons that
	we had here privately.  Use new gnome-stock functionality
	instead.

1998-05-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_drag_request): All of the drag_request code is
	now shared by both the Icon View and the Listing view;
	New drag request type:  file:ALL.  If the user is looking at a
	remote site, and the target application does not have VFS support
	it should not list url:ALL but file:ALL as the accepted drop
	type.

	This will make copies of the remote files and pass the files to
	the application.

1998-05-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtrans.c (set_window_text): Pass new justification parameter to
	gnome_icon_paint_text().

	* gpageprop.c (item_properties): Restore the arrow cursor for the
	desktop icon windows.

	* gdesktop.h (desktop_icon_t): Removed unused title field.

	* gtrans.c (set_window_text): Made it use the new
	GnomeIconTextInfo functions.

1998-05-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_create_icon_display): Set some good separator
	characters for the file icon list.

1998-05-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gprop.c (perm_owner_new): Forget about history for now.

	* gpageprop.c (item_properties), gprop.c: Add executable editing
	(command, and terminal).  Save the dentry after modification

1998-05-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gprop.c (change_icon): Test for gp, as the combobox emits the
	"changed" signal when shutting down.  Great.

	* gdesktop.c (desktop_reload): Missing mc_closedir
	(desktop_setup_icon): Fix memory leak.
	(get_desktop_icon): Fix memory leak.
	(desktop_create_directory_entry): Set the size of the exec
	vector.
	(desktop_create_launch_entry): Same.

	We now create launch entries instead of trying to support
	regular dropped stuff on the desktop, this makes things easier and
	more consistent.

1998-05-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (x_select_item): Test for full icon visibility instead
	of partial visibility only.

1998-05-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (create_popup_submenu): Use continue, not break on
	this loop.

Sat May 16 02:29:51 1998  Tom Tromey  <tromey@cygnus.com>

	* gdesktop.c (url_dropped): `exec' field of desktop entry now a
	vector.
	(dentry_execute): Likewise.
	(desktop_icon_remove): Likewise.
	(get_transparent_window_for_dentry): Likewise.
	(desktop_create_directory_entry): Likewise; also initialize
	exec_length.

1998-05-16  Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>

	* gscreen.c (create_popup_submenu): fixed bug which caused it to require
	0 instead of 1 marked files for F_SINGLE file_actions.
	* gscreen.c (file_popup): first item in the menu displays "..." when
	multiple files are selected.

Thu May 14 23:31:15 1998  Tom Tromey  <tromey@cygnus.com>

	* gmain.c (session_save_state): Use "+" instead of "%s" in format
	specification.  Free `argv'.

1998-05-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtrans.c (create_transparent_text_window): Removed the hack to
	lower the window on exposes.  Guess what happens when you have two
	icons on the same spot.

Thu May 14 02:02:56 1998  Norbert Warmuth  <k3190@fh-sw.de>

	* Makefile.in (EXTRALIBS): add @LINTL@

1998-05-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtrans.c (set_window_text): draw pixmaps without transparency
	correctly.

1998-05-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_icon_list_realized): Add drag and drop support
	to the icon list view;

1998-05-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_fill_panel_icons): New function:  Fill up the
	icon list.
	(x_create_panel): Change in the approach:  we create both of the
	widget views at creation time and we now carefully show every
	component.  I attach everything to the table, but not necesarly
	show it.

	* gblist.c (blist_select_row): New widget derived from GtkClist.
	replace select_row and unselect_row with null functions, as the
	gmc code takes care of the rest.

1998-05-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_icon_drag_start): Do not attempt to use
	icons if we could not load the images for the icon.

	* gwidget.c (x_update_input): Keep the cursor always visible.

	* gview.c (view): Use a buttonbar widget.

	* gwidget.c (buttonbar_clicked): Provide a trivial implementation
	of the buttonbar that only responds to key sequences.

	* gmain.c (dialog_panel_callback): Call midnight_callback to get
	the main bindings working.

	* gdesktop.c (perform_drop_manually): Use p to walk the dropped
	data.  This is an important bug fix.

	* gmain.c (idle_destroy_window), main.c: Session management now
	supports not showing a toplevel window (in case all of the windows
	were closed).

1998-04-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtrans.c (make_transparent_window): Put hack back.

	* gcache.c (image_cache_load_image): Federico spooted the problem:
	I have to duplicate my keys for the hash.

	* gmain.c (create_panels): Create one panel per directory
	specified.  For some strange reason the code hangs if you start up
	more than one panel at once.  This is not a gmc bug, it appears to
	be an Imlib/gtk/gdk interaction.  I am for now creating one panel
	in the main program execution thread and the rest during the idle
	handler.

	(session_save_state): Added session management support.

1998-04-29  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gprop.c (gprop_general_new): Added an simple icon preview to the
	icon selector.

1998-04-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c: Finish desktop_icon_remove implementation.

	* glayout.c (update_panels): GNOME specific Implementation of the
	update_panels routine.

Tue Apr 28 06:52:24 1998  Norbert Warmuth  <k3190@fh-sw.de>

	* gcmd.c (gnome_open_terminal): Changed my_system(1,...) to
	my_system(EXECUTE_AS_SHELL,...)

1998-04-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (layout_panel_gone): Removed debugging information.
	Renamed "Panel" to "Window" to make it less confusing to users.
	Moved the "New window" from the "File" menu to the "Window" menu.

	* gmain.c (dialog_panel_callback): Walk the list of panels to
	determine to which panel the activated widget belongs.

1998-04-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_create_radio): Fix the WRadio widgets.

1998-04-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* glayout.c (create_container): Add wmclass.

1998-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_reload): Show all of the widgets on a reload
	operation.

	* gscreen.c (x_panel_update_marks): Do only set the marks if the
	widget has been created

	* glayout.c (assign_other): Keep track of all of the opened
	panels.  We were never removing them from the containers list.
	This fixes a number of problems.

	* gwidget.c (x_dialog_stop): Only call gtk_main_quit if this
	dialog did not inlcude the DLG_GNOME_APP flag, as those windows
	did not launch a gtk_main event loop.

	* gcmd.c: Try various terminal programs in the PATH before giving
	up

	* glayout.c: Unselect command is unselect_cmd, not select_cmd

	* gcmd.c (gnome_quit_cmd): Add quit confirmation.

	* gdesktop.c (perform_drop_manually): Check the type for the
	source file (directory/file) and perform the proper operation.
	Before this we always did a *_file_file operation.
	(perform_drop_manually): Use copy_dir_dir correctly
	(desktop_setup_default): Use copy_dir_dir correctly

	* gwidget.c (x_create_label): Remove debugging labels.

	* gscreen.c: Do not show the view/view unfiltered if the
	selectioned item is a directory.

	* gwidget.c (x_radio_toggle): Never commit non-compilable code.

1998-04-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (remove_hotkey, x_create_radio): Radio buttons should
	not display the special Hotkey specificator.

	* gcmd.c (gnome_close_panel): Implement the close-the-panel
	functionality.

	* gscreen.c (x_panel_destroy): Implement the gnome mode way of
	destroying the panel.

	* gview.c (view_status): Add cacheing of the information status,
	to avoid excessive flicker.  It would be better if GtkLabel did
	not flicker though.
	(scrollbar_moved): Scroll correctly.  We now use
	view_move_backward and view_move_forward to adjust the scrollbar
	contents.  This displays the scrollbar correctly.

	* gwidget.c (x_listbox_select_nth): This may be invoked before the
	widget has been created, work around this problem.

	* gscreen.c (show_dir): Set the title bar for the window to the
	current directoy.  Reported by both Mike and Elliot.

	* layout: Updated to the new hotlist dialog box.

1998-04-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtrans.c (create_transparent_text_window): Destroy the cursor
	properly.

1998-04-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gview.c (x_init_view): Initialize view->sadj.

	* gdesktop.c (start_desktop): use destkop_load instead of
	desktop_reload.
	(desktop_load): This reloads + shows every widget on the
	desktop_icons list.

1998-04-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.h: Added extern declarations for the
	want_transparent_icons and want_transparent_text variables.

	* gtrans.c (set_window_text): Now we use the new global variables
	want_transparent_icons and want_transparent_text to decide how to
	paint the pixmap and mask.  The want_transparent_* variables can
	thus be configured for the smartness/speed of your X server when
	using shaped windows.

Fri Apr 12 02:40:41 1998  Norbert Warmuth  <k3190@fh-sw.de>

	* gwidget.c (x_create_input): return 1 if the widget has been
	initialized manually (there was no return value)

	(x_create_buttonbar): to few arguments to sprintf (button number
	was missing); return a value.

1998-04-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_create_panel): Added back and forward buttons.  I
	need a "Home" icon too.

	* gwidget.c (x_create_input): Make the selection if the input has
	not yet been touched.

	* gscreen.c (panel_action_open): If opening an item fails, try
	panel_action_open_with.

	* gview.c: Implement the viewer scrollbar.

1998-04-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_drop_data_available): Reload the panel contents
	upon a drop.

	* gmain.c (gnome_dlg_send_destroy): Hide the widgets just before
	they are going to get destroyed, to avoid the shutdown
	flickering.
	(x_destroy_dlg_start): New routine/hook invoked when the destroy
	has just started
	(x_set_idle): Cancel the idle handlers properly.

	* gwidget.c (x_create_check): Finish the checkbox implementation.

	* gdesktop.c (get_desktop_icon): Fix this routine: it was
	cretating a file name when the filename was not set properly.

1998-04-01  Marc Ewing  <marc@redhat.com>

	* gscreen.c: Added #include <gdk/gdkprivate.h>

1998-03-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gcache.c: Added an Image cache for all of the imlib-loaded
	images to avoid destroying/reloading the images.

	* gdesktop.c, gtrans.c: Use the image cache.

1998-03-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_create_panel): Show the GnomeApp when we are done
	packing all of our information.

	* gmain.c (create_panels): do not show any of the windows yet.

1998-03-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_fill_panel): Colors are properly displayed now.

	Use the clipped labels.

	* gcliplabel.c, gcliplabel.h: Derived label that does label
	clipping (it does not request the allocation for the whole string,
	but settles with whatever is provided in the size_allocation).

1998-03-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gtrans.c (create_transparent_text_window): Set the window's
	cursor to the normal top-left arrow.

Mon Mar 23 01:40:35 1998  Norbert Warmuth  <k3190@fh-sw.de>

	* gtools.c (translate_gdk_keysym_to_curses): renamed KEY_BACKTAB
	to KEY_BTAB (the name ncurses uses)

	* Makefile.in: Install the icon-files and the layout-file from $srcdir.

1998-03-20  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (icon_properties):
	* gpageprop.c (item_properties): Modified to accept dentry title
	changes as well.
	(item_properties): Fixed base and fname confusion in call to
	concat_dir_and_file().

	* gprop.c (gprop_general_new):
	(gprop_general_get_data): Renamed to general from icon.  The
	general Gprop now lets you enter the title and icon filename for a
	dentry.

1998-03-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (icon_properties): Whoops, actually save the dentry.
	(post_setup_desktop_icon): Moved the icon positioning call outside
	of this function so that property-changed icons will not move on
	the desktop.

	* gdesktop.c (desktop_icon_context_popup): It is not necessary to
	set the menu position.
	(desktop_icon_context_popup): gtk_signal_connect_object_after to the menu
	items with gtk_widget_destroy as a callback so that we can destroy
	the menu widget appropriately.

1998-03-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (display_mini_info): Implement mini status.

1998-03-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (get_transparent_window_for_dentry): New function,
	creates the proper transparent icon window for a dentry.
	(post_setup_desktop_icon): New function, does post-setup stuff for
	a desktop icon (setting it as a drop target, positioning it, etc.).

	* gpageprop.c (item_properties): Now the dentry parameter is a
	desktop_icon_t instead.
	We now return a bitmask that indicates what stuff changed.  The
	caller can use this information to decide what to update, repaint, etc.

	* gdesktop.h: Moved the icon_t and desktop_icon_t structures here.

	* gpageprop.c (item_properties): Insert icon control if appropriate.

	* gprop.c (gprop_icon_new):
	(gprop_icon_get_data): Renamed from gprop_dir_*().

	* gscreen.c (panel_action_properties): Re-reads panel only if necessary.

	*gpageprop.c (item_properties): now returns TRUE if something got
	changed, FALSE otherwise.  This should be used to decide whether
	to re-read the panel or not.

	* gpageprop.c: #include "../vfs/vfs.h".
	#include "dialog.h".

	* gprop.c (gprop_dir_new):
	(gprop_perm_new):
	(gprop_general_new): Connect to the destroy signal of the toplevel
	widget and destroy the Gprop structure on the callback.

Wed Mar 18 23:09:35 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_file_list_select_row): Use control/shift click
	to add files to the selection.

Wed Mar 18 22:32:53 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_action_properties): Make Federico's
	page-properties code functional.

	* gpageprop.c: New file, implements most of the page properties on
	top of the gprop.c code.

Wed Mar 18 20:35:45 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_create_launch_entry): Support for the "Drop"
	target in mc.ext now.

	* Add support for dragging the icons on the desktop.

	(desktop_icon_make_draggable): new function.
	(drop_from_event): simplify.
	(my_create_transparent_text_window): Get the motion notify event.
	(drops_from_event): create a vector based on thge drop event.
	(drop_cb): splitted, call url_drop for regular drops, otherwise it
	is a icon drop.
	(artificial_drag_start): new routine, used now by gscreen.c and
	gdesktop.c
	(drop_on_directory): Check result value of operation.
	(desktop_icon_set_position): sane interface.
	(stop_desktop): Flush all of our state to disk.

1998-03-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c: Removed tests for the gprop stuff.
	(file_popup): It is not necessary to show the popup menu.

	* gprop.c (perm_group_new):
	(perm_owner_new): Fill the combo lists with users and groups,
	respectively.

	* gprop.h: New files gprop.[ch].  These create the property pages
	for desktop entries.

	* Makefile.in: Added gprop.[ch] to the rules.

	* glayout.c: Put gnome_about_cmd as a callback for the About menu item.

Tue Mar 17 22:40:36 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_setup_icon): Lots of changes to accomodate
	dropping icons on the root window.

	(do_symlinks): Implement symlink action.

	(icon_delete, desktop_icon_context_popup): Implement icon context
	menus.  only deleting an icon is working right now.

	* gscreen.c: Load the drag and drop icons from the installation
	directory.

	* Makefile.in (install_gmc): Install our icons.

Tue Mar 17 02:38:37 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (desktop_setup_default): Create a default desktop
	entry on the root window for the Home directory if not mc.desktop
	exists -yet-

	Get drops on the root window to work.   Joy and hapiness!

Tue Mar 17 00:43:50 1998  Tom Tromey  <tromey@cygnus.com>

	* glayout.c (gnome_panel_about_menu): "About" item now a stock
	menu item.

1998-03-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (filter_item_activate): Make it convert the glob
	pattern to a regexp if appropriate.

Sat Mar 14 17:13:26 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (gnome_dlg_send_destroy): New signal handler for
	"delete_event".  I return TRUE (ie, do not kill this window), and
	manually queue que destruction of this window.

	* gtools.c (query_dialog): Do not allow resizing; do not destroy
	the dialog ourselves, this is properly handled by dlg.c now
	(pack_button): Do not use the defaults: we do not want growing
	buttons;

Fri Mar 13 16:01:28 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (buttonbar_clicked, x_create_buttonbar): Button bar
	widget implemented.

	* gtools.c: Implement the non-modal version of the message
	routine.

	* gview.c: Create a GnomeApp widget to contain the viewer.

	* gmain.c (xtoolkit_create_dialog): Add a new mode where the
	container window is a GNOME_APP window.

1998-03-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (x_select_item): Make it use GTK_VISIBILITY_FULL
	instead of a plain boolean value.
	* gwidget.c (x_listbox_select_nth): Likewise.

	* gscreen.c (filter_items): New global variable full of filters.
	Please, someone fill in the regexp parts, as I was too lazy to do
	them :-)
	(panel_create_filter): Now the filter has a very nice button that
	pops up a menu for selecting the filter.

Thu Mar 12 22:11:23 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (x_update_input): Use GnomeEntry widgets instead of
	the GtkEntry.

	* gwidget.c (listbox_select): Fix for the listbox selection with
	the mouse.
	(x_create_button): Use stock pixmaps.

	* gcmd.c: Moved all of the _cmd routines from glayout to this
	place.
	(save_panel_types): Provide GNOME implementation.

	* glayout.c: New and improved menu layout.  Use stock pixmaps.

1998-03-12  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmc-chargrid.c (gmc_char_grid_draw): Someone teach me how to
	subtract.  Fixed a stupid offsetting bug.
	(update_region): Added clipping of region bounds.

	* gmc-chargrid.c: Changed the struct attr with pointers mess with
	something saner.
	Added an in_resize flag to avoid calling our internal signal
	handlers recursively.
	(gmc_char_grid_draw): Added proper draw handler for our case; the
	widget's window does not fill its allocation.
	(paint): New wrapper for update_region(); it converts window
	coordinates to row/column character coordinates.
	(gmc_char_grid_expose): Use paint().

1998-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmc-chargrid.c (update_strip): Doh.  Fixed painting of
	background rectangles.
	(gmc_char_grid_expose): Fixed off-by-one errors in area
	calculation.  Ripped off the code from gtkterm to do this :-)
	(free_attrs): New internal convenience function.

Thu Mar 12 00:08:06 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gview.c (view_percent): Added status display.

Wed Mar 11 22:35:02 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (entry_release): Now the WEntrys track the current
	selection.p
	(x_update_input): Repaint the widget after changing the position.

	* gscreen.c (x_fill_panel): Remember the selected item on the
	panel before filling it up, as gtk_clist emits a select_item
	signal when filling it up, which changes the current selection
	(and thus some routines that invoke the reload panel option
	fail).

	(create_popup_submenu): Implement context sensitive menus (regular
	files, and symlinks).

	(panel_realized): Use a different icon when we are dragging a
	group of files.

	(panel_artificial_drag_start): Add Elliot's Artificial drag start
	support.

1998-03-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmc-chargrid.c (gmc_char_grid_get_size): New public function.
	(gmc_char_grid_put_text): New public function.  It is the same as
	gmc_char_grid_put_str, but can take any arbitrary string plus its
	length.
	(gmc_char_grid_put_char, gmc_char_grid_put_str,
	gmc_char_grid_put_text): These functions now take a background
	pixel parameter --- the GmcCharGrid widget now supports fg/bg attributes.

	* gmc-chargrid.h: Changed colors field to attrs.

	* gmc-chargrid.c: New Character Grid widget for the file viewer.
	This is a very lean and fast widget for displaying a grid of
	monospaced characters.  Just like a crippled-down terminal.

Tue Mar 10 23:46:29 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (x_adjust_top_file): We no longer adjust the top
	displayed filename.

	(panel_build_selected_file_list): Fix for the transfered data.

	(panel_drop_data_available): Now drop support uses the new
	coords.x and coords.y fields from the DropDataAvailableEvent to
	find out which directory receives the drop.

	* glayout.c: added: configure_box, configure_vfs
	(get_other_type): Return the correct value.

1998-03-10  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (panel_file_list_size_allocate_hook): Now we
	connect_after to the size_allocate signal and block the handler.
	Things are still not perfect, though.

	* gtools.c (message): Added return NULL.  This needs to be fixed.
	(translate_gdk_keysym_to_curses): FIXME: Replace KEY_BACKTAB by '\t'
	while KEY_BACKTAB is added somewhere else.
	(translate_gdk_keysym_to_curses): return -1 as last resort.

	* glayout.c (get_current_index): Add g_assert_not_reached() for
	fatal case.

	* gmenu.c (menubar_new): Cast g_menubar to unsigned long.

	* gwidget.c (x_create_input): Cast entry to GTK_OBJECT.

	* gkey.c (find_select_closure_callback): Fix = -> == typo.

Tue Mar 10 00:10:32 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gscreen.c (panel_drop_data_available): Now drop support uses the
	new coords.x and coords.y fields from the DropDataAvailableEvent
	to find out which directory receives the drop.

	* gwidget.c (x_radio_focus_item): Add support for focusing radio
	buttons.

Mon Mar  9 15:12:00 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtools.c (translate_gdk_keysym_to_curses), dlg.c
	(dlg_key_event): Support for backtab.

	* gwidget.c: highlight properly the focused radio entry.

	* gmain.c (x_init_dlg): After setting up the X widget, set the
	Gtk focus to h->current;

1998-03-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c (x_panel_select_item): Set the colors of the row.

	* gmain.c (xtoolkit_init): Changed gnome_init() to new version.
	(xtoolkit_init): Call gnome_init() properly.  Also, return 0.

Sat Mar  7 15:24:49 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gwidget.c (entry_click): Focus the entry on clicks.

Fri Mar  6 20:50:19 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (create_panels): New per-port variable, used to flush
	all of the pending X events.

	(x_set_idle): Implement idle functions, now the find command works
	properly.

	* gwidget.c (x_create_radio): Connect to the "toggled" signal to
	keep track of the radio button.

	(listbox_select): callback for the select and double click
	actions.
	(x_update_input): This can be invoked before the
	widget X resources have been allocated.  Take care of this.

	(x_create_input): update the cursor position as well.

	(x_list_insert, x_create_listbox, x_list_delete_nth,
	x_listbox_select_nth): implement the Listbox widget.

	* gconf.h:  New configuration options:
	PORT_HAS_PANEL_ADJUST_TOP_FILE and
	PORT_HAS_PANEL_RESET_SORT_LABELS

1998-03-06  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmain.c (get_color): Make it use GdkColorContext correctly.

	* gscreen.c (panel_create_filter): The filter control is now a
	nice GnomeEntry.  It does not work due to gmc trapping key events;
	I'll look into it tomorrow.
	(internal_select_item): Fixed broken behavior.  Now uses GtkCList properly.
	default_filters: new structure with pre-defined glob patterns.
	This is actually broken, because it will only work when
	easy_patterns is enabled.  I have to figure a way to make it work
	with regexp mode as well.

Thu Mar  5 23:54:58 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gdesktop.c (drop_on_panel): New function;  Used by the directory
	icons and by regular panels to support drag targets;

	* gscreen.c (panel_drop_data_available): Performs the drop action
	on a panel.  It needs fixing, as the DropDataAvailabelEvent does
	not provide any information as to where the drop actually
	happened.

	(fixed_gtk_widget_dnd_drag_set, fixed_gtk_widget_dnd_drop_set):
	Only set the main window of the clist to be the source/target of
	the drag and drop code.  The little square at the end did not make
	much sense as a drop/drag spot.

1998-03-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gmain.h: Added prototype for x_filter_changed().
	Added #include "panel.h".

	* gconf.h (PORT_HAS_FILTER_CHANGED): New flag for conditional compilation.

Wed Mar  4 22:43:00 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gtools.c (query_dialog): Rewritten to use the MC dialog/widget code.

	* gutil.c (my_system), acconfig.h: By default gnome will not have
	a subshell (at least for now) and will now exec everything
	asyncronously by default.

	* gscreen.c: Exactly what was I thinking when I used the
	g_panel_contents structure will remain a mistery for future
	programming psycologists.  It was a huge mistake.

	* gdesktop.c: Use the new icon/text display routine from
	Federico.

Tue Mar  3 21:03:52 1998  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* gmain.c (x_destroy_dlg): Call gtk_grab_remove when destroying
	the dialog.

	* gmain.c (x_focus_widget): Handle special case of toplevels.

1998-03-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gscreen.c: Some hackish changes to work around idempotence bugs
	in gtk_clist_select_row().
