1
1

147 Коммитов

Автор SHA1 Сообщение Дата
Miguel de Icaza
2aa1314dba 1999-02-17 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gpopup.c (create_actions): Add ejectable

	* gdesktop.c (do_eject): Add eject command.
1999-02-17 16:32:12 +00:00
Miguel de Icaza
e9f974dd11 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-17 02:18:12 +00:00
Miguel de Icaza
c52fde6398 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-17 00:38:16 +00:00
Miguel de Icaza
6dbe424c38 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-16 20:18:34 +00:00
Miguel de Icaza
53cfcf095d 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-16 03:42:52 +00:00
Miguel de Icaza
e64da0870e Oops, removed debugging stuff - Federico 1999-02-15 22:48:00 +00:00
Miguel de Icaza
d66cb8705a 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 22:44:18 +00:00
Miguel de Icaza
1370e6c166 Notice: release coming in about 90 minutes.
Miguel.

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 21:19:03 +00:00
Miguel de Icaza
2c1f45565b 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-15 17:59:49 +00:00
Miguel de Icaza
2fae6571f9 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.
1999-02-11 18:24:08 +00:00
Miguel de Icaza
2dddadbdc0 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-10 03:51:56 +00:00
Miguel de Icaza
9036590857 Keep the gnome-metadata in sync with the actions of the
file manager.

Miguel.
1999-02-09 00:31:57 +00:00
Miguel de Icaza
12199ba19c 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.
1999-02-06 04:15:29 +00:00
Miguel de Icaza
9260355181 1999-02-05 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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-06 02:40:38 +00:00
Miguel de Icaza
dcd005a0ca 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-06 01:57:26 +00:00
Miguel de Icaza
e3ab7e0c88 1999-01-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtkedit/gtkedit.c: Hack to get a string defined in a macro into
	the catalog file.

1999-02-02  Tuomas Kuosmanen  <tigert@gimp.org>

	* new_icons/gnome-core.png: New icon for core files. Someone
	please add the code part :)
1999-02-05 23:59:13 +00:00
Miguel de Icaza
e67a8b9601 Code to display URL icons on the desktop as the urls. 1999-02-05 23:15:52 +00:00
Miguel de Icaza
c1fad92e34 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 22:30:54 +00:00
Miguel de Icaza
e4e44b6b2a 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.
1999-02-04 01:37:33 +00:00
Miguel de Icaza
04c4abd818 1999-02-03 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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-03 11:46:01 +00:00
Miguel de Icaza
e0328ad911 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-02-02 03:31:39 +00:00
Miguel de Icaza
64aeddb117 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-02-02 02:34:46 +00:00
Miguel de Icaza
4ef71a33c2 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.
1999-02-01 06:26:55 +00:00
Miguel de Icaza
e4cd1393d6 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-30 21:52:40 +00:00
Miguel de Icaza
c44dd59069 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.
1999-01-27 02:55:43 +00:00
Timur Bakeyev
be7cbf3768 Glibing... (3)
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-27 01:14:57 +00:00
Miguel de Icaza
f97cb04b55 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 06:53:48 +00:00
Miguel de Icaza
9c81ea49fd 1999-01-25 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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-25  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* Makefile.am (libvfs_la_SOURCES): Added utilvfs.h.
	* Make-mc.in (VFSHDRS): Likewise.
1999-01-25 16:50:38 +00:00
Miguel de Icaza
7dec59687e 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).
1999-01-22 00:59:11 +00:00
Miguel de Icaza
baa4a4d321 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.
1999-01-21 17:59:30 +00:00
Miguel de Icaza
6159fb712c 1999-01-21 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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 17:38:38 +00:00
Miguel de Icaza
436638f2bd 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-21 09:46:01 +00:00
Miguel de Icaza
20896340fb Stupid typo/bug - Federico 1999-01-20 11:27:20 +00:00
Miguel de Icaza
88cd0bdfc4 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-20 10:40:21 +00:00
Miguel de Icaza
1bc1eea3d0 Amazing. GTK broke the API once again 1999-01-18 22:37:39 +00:00
Miguel de Icaza
4c196a6559 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-18 19:22:23 +00:00
Miguel de Icaza
e0faaa671f Merges from the FileOpContext-changes branch. Please see
the ChangeLogs for full information. - Federico
1999-01-14 01:10:32 +00:00
Miguel de Icaza
fbb3d4d90f VFS does not assert on small buffers in getwd, it now truncates.
Drops on the desktop are now always links.  If you want copy or move,
then use middle button to get the ask dialog box.

Miguel.
1999-01-12 23:49:37 +00:00
Miguel de Icaza
b8f2eaa651 Use lock/unlock functions 1999-01-11 01:22:44 +00:00
Miguel de Icaza
c6ccd3c3b7 Dropping files on desktop icons now works.
Cheers,
Miguel.
1999-01-06 04:03:15 +00:00
Miguel de Icaza
8544e153ba 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 18:41:59 +00:00
Miguel de Icaza
3491af5408 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-31 01:43:11 +00:00
Jonathan Blandford
3114c94e27 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-30 18:29:32 +00:00
Miguel de Icaza
60336b711f Work for the accept-drop-on-icons 1998-12-30 03:24:46 +00:00
Miguel de Icaza
d24269087f Lots of usability changes for the desktop.
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.
1998-12-30 02:51:01 +00:00
Elliot Lee
913f34276e well, it does 'open' and 'properties' on the desktop icons, SLIGHTLY.
gmc is a big piece of junk.
1998-12-21 23:29:46 +00:00
Miguel de Icaza
3ac4cfa567 Merge from MC_MIME_TYPE branch. It has so many bug fixes you wont
even recognize it.

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.

Miguel.
1998-12-17 04:51:24 +00:00
Owen Taylor
bb4317f961 1998-12-11 Owen Taylor <otaylor@redhat.com>
* gscreen.c gdesktop.c gdnd.h: enable dragging locale files
	into Netscape.
1998-12-11 18:12:21 +00:00
Miguel de Icaza
0a00605ba6 Small sync - Federico 1998-12-11 17:55:25 +00:00
Owen Taylor
758260fcc5 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 17:49:09 +00:00