* 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().
* 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.
* 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.
1. desktop entries on the desktop work.
2. Update the mc.keys.in for using some gnome-libs icons
instead of the old ones.
3. Find command rewritten for GNOME.
miguel.
* 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!).
* main.h: Added prototype for main_corba_register_server().
1999-02-10 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
* 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.
* 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.
- Kill the stack in the treestore. It was the wrong approach
at fixing the problem. Now emit all of the change notifications
after the tree has been finished the check.
- GtkCTree is not a tree internally but a list and the gaps
are, well, gaps. Deal with it.
Miguel.
* treestore.h: Replaced TreeStore.check_name_list by a GSList, for
minimal memory savings.
* treestore.c (tree_store_remove_entry): Removed unused code for
base_sublevel computation.
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.
* 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.
* 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.
* 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 :)
* 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.
* 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.
* 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.
* 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).
* 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.
* 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.
Sun Jan 31 20:04:13 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/vfs.c (vfs_strip_suffix_from_filename): Whoever replaces every
occurance of 0 with NULL should stop this stupidy. And replacing '\0'
with NULL is plain wrong!!. Reverted this replacement.
* vfs/ftpfs.c (load_no_proxy_list): ditto
Fri Jan 29 22:55:56 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* slang/slang.h: renamed to slang-mc.h
* slang/Makefile.in: delete slang.h on "make clean"
* configure.in: link slang/slang-mc.h to slang/slang.h when the
included slang is used. Problem was that MC's slang.h was used
when we compiled with an already installed SLang and the systems
header file were included with <slang/slang.h>.
Unfortunatly I can't use AC_LINK_FILES to make the links because
if we needn't make any links AC_LINK_FILES makes a link from
srcdir to top_builddir (builddir != srcdir).
Temporary add $LGPM to $LIBS when checking for the resizeterm
and keyok functions (ncurses might be linked against GPM).
Substitude PACKAGE (intl/Makefile makes use of it)
Sun Jan 31 19:42:47 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* gnome/Makefile.in (install_mx): make it work with srcdir != builddir
(gmc.gnorba is located in $srcdir)
* src/hotlist.c (add_new_entry_input, add_new_group_input): Make the
quick_widget arrays static and various changes needed because they
are now static. add_widgets_i18n recalculates button positions
which get lost when the quick_widget arrays are non static.
* src/screen.c (to_buffer): nul terminate string when using strncpy
* src/setup.c: Save and restore new option ftpfs_first_cd_then_ls.
Sun Jan 31 19:57:24 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* vfs/ftpfs.c (insert_dot): New function. Insert a "." into the linked
list. Stat'ing the root directory of a ftpfs fails if the dot is
missing.
(retrieve_dir): insert "." into the linked list if the ftp server
haven't send it.
Sun Jan 31 19:50:24 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
* The following changes make ftpfs work with a remote AmiTCP
server are the result of somehow longish EMail debugging session. I
don't know any public server of this kind but I was told the
combination Unix/Amiga boxes are often used in intranets.
* vfs/ftpfs.c (translate_path): New function. Translate a Unix path,
i.e. MC's internal path representation (e.g. /somedir/somefile) to
a path valid for the remote server. Every path transfered to the
remote server has to be mangled by this function right prior to
sending it. Currently only Amiga ftp servers are handled in a
special manner.
* vfs/ftpfs.c (various places): use translate_path
* vfs/ftpfs.c (login_server): Assume we have to mangle pathnames if
the greatings string from the server contains the word Amiga. If
this assumption is wrong I have to find another way to turn on
path translation.
* vfs/ftpfs.c (ftpfs_get_current_directory): Prepend a leading slash
if it is missing. MC needs it as seperator between hostname and
path in its internal url representation.
* 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.
* 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
2. corba-gmc is now the default "gmc" installed
3. corba-gmc now by default tries to activate a running instance
instead of registering a server.
Miguel.
* 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.