* dlg.c (init_dlg): Walk the list of widgets only if it exists.
1999-09-21 Federico Mena Quintero <federico@redhat.com>
* gmain.c (x_init_dlg): Only call x_focus_widget() if there is a
current widget.
* gdesktop.c (handle_recreate_default_icons): New option to
re-create the default set of icons.
* gdesktop-init.c (gdesktop_links_init): Create the link to the
user's home directory here.
* gscreen.c: Added it here too.
* glayout.c: Add File-new option here
* gcmd.c (gnome_newfile_cmd): Added new routine. Invoke when you
want to create a new file.
* gscreen.c (panel_fill_panel_list): Select or unselect the rows
as appropriate, not just select them. This is needed because the
clist changes the selection under us when appending rows.
Finally, do not call select_item() at the end; just reset the
panel->selected value.
(panel_fill_panel_icons): Likewise.
(tree_drag_open_directory): Disabled the auto-collapse
functionality yet again, since it has numerous problems. BUGFIX:
GNOME bug tracker #1656.
* gcmd.c (gnome_reverse_selection_cmd_panel): Re-enabled this
function. The reverse selection bug was somewhere else after all.
* glayout.c (gnome_panel_edit_menu): Re-inserted the item for
reverse selection. It was pointing to the wrong callback, that is
why it never worked.
The two following entries are BUGFIX: GNOME bug tracker #1789.
* gscreen.c (panel_fill_panel_list): Do not allow selection of "..".
(panel_icon_list_select_icon): Likewise.
* glayout.c (gnome_panel_edit_menu): Removed the Invert Selection
command. It is completely broken for the expected GNOME
semantics.
* gscreen.c (editing_icon_list): New function to figure out
whether an icon in the icon list is being edited. This is a
FANTASTICALLY UGLY HACK, but we cannot add new functions to the
icon list at this point as it would break forwards compatibility.
Sigh. BUGFIX: GNOME bug tracker #382, #1065.
* glayout.c (gnome_panel_desktop_menu): Added some underline
accelerators.
* gdesktop.c (desktop_arrange_icons_items): Renamed to the desktop
namespace. Added underline accelerators.
(handle_arrange_icons_name): Made static.
(handle_arrange_icons_type): Likewise.
(handle_arrange_icons_size): Likewise.
(handle_arrange_icons_access): Likewise.
(handle_arrange_icons_mod): Likewise.
(handle_arrange_icons_change): Likewise.
(desktop_arrange_icons): Made static.
(strip_tearoff_menu_item): Made it return the number of items in
the menu, not the list of children.
(desktop_icon_info_destroy): Remove the icon from the icon hash
table.
(text_changed): Update the icon hash table information.
* gdesktop.h: Cleaned up some unused prototypes.
* gview.c (view_status): Use the correct g_snprintf() format
argument.
* gcmd.c (sort_get_func_from_type): Indented according to the MC
conventions. People, *PLEASE* follow the Gnome Programming
Guidelines, especially when modifying existing code.
* gdesktop.c (swap): Likewise.
(auto_pos): Likewise.
(get_icon_auto_pos): Likewise.
* gcmd.[ch]
* glayout.c
* gprefs.c
* gdesktop.[ch] (mostly auto_pos and desktop_arrange_icons):
Reworking of the desktop's Arrange Icon code -- in addition to
being able to sort by various criteria now (name, file size, etc),
there are now 3 options (Right to Left, Bottom to Top, Rows instead
of Columns) controlling layout positioning. (Located in the "Desktop"
Preferences tab)
* acconfig.h: Add WITH_SMBFS
* macros/gnome-vfs.m4: Support conditional samba support.
1999-06-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gsession.c (create_default_panel): Use directory specified in
command line.
* gcorba.c (corba_create_window): Pass the directory we receive or
cwd if this value is NULL.
* gmain.c (non_corba_create_panels): Use parameter for startup
directory (use the this_dir external directory for this).
(create_panels): Pass this_dsir to non_corba_create_panels and
corba_create_window.
everywhere; every time you invoke a file.
* src/screen.c (do_enter_on_file_entry): split GNOME version and
non-gnome version.
(parse_display_format): listen to the warning.
* gscreen.c: make sure that we bring up an open_with if
open it.
* gcmd.c (gnome_select): new selection dialog.
* gdesktop-init.c (desktop_init_at): do not use access for it is
poor when you are root.
1999-04-07 Jonathan Blandford <jrb@redhat.com>
* screen.c (do_enter_on_file_entry): added a consistent behaviour
for GNOME stuff.
* glayout.c (create_container): Use gtk_window_set_default_size(),
not gtk_widget_set_usize().
* gdesktop.c (get_slot_from_pos): Clamp the slot positions to be
inside the screen.
* gmain.c (gnome_check_super_user): Improved the message a bit.
* gscreen.c (file_list_popup_items): Use "New Directory", not "New
Folder", to be consistent with the desktop and File menus. Thanks
to Kevin Fox for pointing this out.
(panel_icon_list_drag_data_received): Update the panels properly.
(panel_clist_drag_data_received): Likewise.
(panel_tree_drag_data_received): Likewise.
* gcmd.c (gnome_close_panel): Doh. Do not access g_free()d
memory.
* glayout.c (copy_uiinfo_widgets): Return the copied array as a
return value, not in an argument.
* gcmd.c (set_view_type): Added a sanity check.
are almost complete (i.e. to handle all nitty gritty cases), but they
seem to be working OK right now. SM should be much more stable now.
Please tell me if you find any weird behavior - Federico
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-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* dlg.c (dlg_run_done): Do not call the callback of a NULL current
widget.
* setup.h: Added missing prototype for setup_init().
* filegui.c (check_progress_buttons): Added a missing return
value.
* dlg.c (remove_widget): Added a missing return value.
* main.c: Removed the global directory_list variable.
Removed the main_corba_register_server() function.
* main.h: Removed the global run_desktop variable.
* panel.h: Now the panel structure has a unique numerical ID used
for session management.
* screen.c (panel_new): Maintain a unique ID for each panel.
* main.c (maybe_display_linksdir): Handle display of the desktop
init dir here.
(main): Call gnome_check_super_user().
(init_corba_with_args): Call corba_init_server().
* main.c (init_corba_with_args): Do CORBA initialization here. Also
removed the global force_activation option.
1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
* vfs.c (vfs_add_current_stamps): Only do stamping of the panels
if they exist.
* mcserv.c: #include <sys/wait.h>
(get_client): Put `#ifdef __EMX__' around an otherwise-unused
variable.
* utilvfs.c (vfs_split_url): Fix NULL <-> 0 confusion when
comparing characters.
* ftpfs.c (retrieve_dir): Removed unused variable dot_dot_found.
* extfs.c (extfs_init): Assign `key' to c, not `&key'.
Basically, I had to setup an ssh tunnel to be able to use CVS. After
5 hours trying to get the damn thing to cvs update it was clear to me
why the .es people do not like to use the gnome cvs.
We really need a tunnel for .es hackers (as they have excellent connectivity
to the rest of Europe, they are just routed trough a 2 byte link to the US).
1999-03-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* treestore.c (process_special_dirs): Free memory here.
Fix test: Skip only "." and "..", before it could skip "?.".
1999-03-22 David Martin <dmartina@mailexcite.com>
* wtools.c (real_input_dialog_help): Do a strncmp with the lenght
of th same translated "Password:" string.
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-22 David Martin <dmartina@mailexcite.com>
* ftpfs.c: Internationalize the messages that are displayed as
hints.
1999-03-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* extfs.c (extfs_init): Fix the code here: If the key is empty or
only contains a new line, C would be pointing into an invalid location.
* 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.
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.
* 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.
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.
* 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.
* 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.
* 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!
* setup.c: Declare extern int tree_panel_visible for the GNOME
version.
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.
* 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.
* 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.
wide items will be transleted in gnome-libs.
mc/gtkedit/editmenu.c removed from POTFILES.in because it is not used,
but was poluting *.po files with extra translations which, in turn, were
interfering with translations in gnome-libs.
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.
seems fine.
1999-01-21 Jonathan Blandford <jrb@redhat.com>
* 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.
the New-> menu item now works.
Installing a .desktop item in ${prefix}/share/mc/templates will now put
it in the New item menu. The exec field of it will create the new item,
so choose it correctly.
Next on the TODO; rehash the toolbars.
* 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-12 Jonathan Blandford <jrb@redhat.com>
* cmd.c (mkdir_cmd): now mkdir_cmd will accept relative, and
absolute directories.
* 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?