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().