Ok, so this time I got the stuff to auto-load desktop startup links.
This means you can ship stuff to pre-configure the desktop of the
users now.
We support program-based setup and url-links.
Details on the lib/README.desktop file
* 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.
* gcmd.c (dentry_apply_callback): new function.
(gnome_new_launcher): We can now create new
1999-03-19 Jonathan Blandford <jrb@redhat.com>
* file.c (panel_operate): Ugly hack for GNOME. We only treat the
copy as if it were many files, and skip the only_one branch.
* main.c (main): Put in a warning when run as root.
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...
* 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.
* boxes.c (symlink_dialog): Put this inside an "#ifndef
HAVE_GNOME" since we now provide a nicer version of the dialog.
* wtools.c (real_input_dialog_help): Removed un-needed #ifdef.
1999-03-16 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gdialogs.c (symlink_dialog): Finished implementing the new
symlink dialog.
* cmd.c (edit_symlink_cmd): Generate the title of the dialog after
we have computed the source filename.
(edit_symlink_cmd): Use g_strdup_printf() instead of g_strconcat()
for better internationalization.
* wtools.c: Removed unused function input_dialog_help_2().
(real_input_dialog_help): Put this inside an "#ifndef HAVE_GNOME",
because now the Gnome version implements its own pretty dialog.
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].
* 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.
I should know better by now...
1999-03-15 Jonathan Blandford <jrb@redhat.com>
* capplets/mime-type/mime-info.c (write_initial_keys): Now we
explicitly remove then recreate the file, so that we can guarantee
that the mime-type gets reread.
* 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.
* 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.
* file.c (erase_file): Here we need to mc_lstat(), not mc_stat().
Since we use the resulting buf.st_size to update the progress, we
need the size of unresolved links. This also makes it consistent
with screen.c:do_file_mark().
* screen.c (select_item): Return immediately if this is a desktop
panel.
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().
* 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.
* 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.
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.
* 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.
* 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.
* gmount.c (setup_devices): Use new tigert icon.
* 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.
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 Federico Mena Quintero <federico@nuclecu.unam.mx>
* file.c (erase_dir): Erase metadata for directories as well.
(erase_dir_iff_empty): Likewise.
(copy_file_file): Delete/copy the metadata even for
char/block/sock/fifo files. Same thing for when copying symlinks.
(copy_dir_dir): Delete/copy the metadata.
(move_dir_dir): Delete/move the metadata.
(recursive_erase): Delete the metadata.
* gdialogs.c: Support ui->ctx to be NULL, as file.c will set this
to NULL for background operations.
1999-03-10 Miguel de Icaza <miguel@nuclecu.unam.mx>
* utilunix.c (g_readlink): New function. Wraps all the nonsense
of readlink into a nice routine.
* filegui.c: Support ui->ctx to be NULL, as file.c will set this
to NULL for background operations.
* background.c (do_background): Handle EINTR in dup2.
* 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.
* 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
* 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.