* gmount.c (setup_devices): See if our supported automounter,
magicdev, is running and only create links for mounted CD-ROMs if
so.
(automounter_is_running): For now just return TRUE; we have to
wait for magicdev to export a CORBA server.
* gcorba.c (corba_init_server): Initialize the POA here instead of
in register_servers().
* gmc-client.c: New file. This is a small program to which you
can pass arguments to call the GMC CORBA interface for you. You
can do stuff like create a directory window, rescan the desktop,
etc.
* mc.keys.in.in: changed image/x-xcf to be image/x-gimp. Also,
associated gimp with the various actions. This prolly should be
done distributed with gimp, but it's more useful 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.
* gdnd.c (file_has_drop_action): New function to test whether a
file has the drop-action metadata or MIME action property.
(gdnd_validate_action): Take the drop-action metadata/MIME
property into account.
(gdnd_can_drop_on_file): New function to see whether a
non-directory file can take drops.
* gscreen.c (drop_on_panel): New helper function to drop stuff on
a panel. This uses gdnd_can_drop_on_file so that we have the
correct behavior. This enables dropping on executables and files
with the drop-action metadata/MIME property again.
(panel_icon_list_drag_data_received): Use drop_on_panel().
(panel_clist_drag_data_received): Use drop_on_panel(). Normalize
the Y coordinate to the clist_window.
* ext.c (quote_block): How did this ever work? People, if you
realloc() things, don't keep pointers to stuff inside the original
block.
* screen.c (do_enter_on_file_entry): Pass in the full name to
if_link_is_exe().
* dir.[ch] (if_link_is_exe): Take in the full name, not the directory
and the file entry.
1999-08-26 Federico Mena Quintero <federico@redhat.com>
* gscreen.c (panel_clist_drag_motion): Pass the full name to
gdnd_validate_action().
(panel_icon_list_drag_motion): Likewise.
(panel_tree_drag_motion): Likewise.
* gdnd.c (gdnd_perform_drop): Renamed the "directory" argument to
"dest_full_name" for clarity.
(gdnd_validate_action): Likewise. Pass in the full name to
if_link_is_exe().
(drop_on_file): Do not compute the full name, since we are already
get it from the caller.
(drop_on_file): Pass in the full name to if_link_is_exe().
* gscreen.c (panel_tree_drag_data_received): Free the pathname.
* gdesktop.c (icon_drag_data_received): Pass the full name of the
file to gdnd_perform_drop(), not just the desktop directory.
* gdesktop-prefs.[ch]: New files that handle the desktop
preferences page. Now we have a nice way to configure the
position of desktop icons.
* gprefs.c (create_prop_box): Use desktop_prefs_new() to create
the desktop preferences page.
(apply_page_changes): Do not update the desktop here.
(apply_callback): Take the desktop page into account.
* gdesktop.c (desktop_use_shaped_text): Renamed from
desktop_use_transparent_text.
* Makefile.in: Added gdesktop-prefs.[ch] to the list of sources.
* gmain.c (default_edition_colors): "brightred" is not a standard
X color; use "red" instead.
(get_color): Take into account the result of gdk_color_parse().
* gtkedit/syntax.c (upgrade_syntax_file): Mark error strings for
translation.
* gtkedit/editmenu.c (edit_about_cmd): Mark text in "about" for
translation as it used to be.
* 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.
* gtkedit/syntax.c (upgrade_syntax_file): Mark error strings for
translation.
* gtkedit/editmenu.c (edit_about_cmd): Mark text in "about" for
translation as it used to be.
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.
* gnome-file-property-dialog.c (perm_group_new): If the file
belongs to an unknown user/group, use the group's number as a
string for the entry box. BUGFIX: GNOME bug tracker #1414.
(perm_owner_new): Do the same thing for the user.
* gtkedit/syntax.c (upgrade_syntax_file): Mark error strings for
translation.
* gtkedit/editmenu.c (edit_about_cmd): Mark text in "about" for
translation as it used to be.
* 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)
* gtkedit/syntax.c (upgrade_syntax_file): Mark error strings for
translation.
* gtkedit/editmenu.c (edit_about_cmd): Mark text in "about" for
translation as it used to be.
* po/POTFILES.in: Removed symbolic links, and outdated
gmc-window.[ch] and olddnd.c. These don't repport any new strings,
increase compile time and make po files large. Basically adds
gaction.c, g,mount, smbfs.c to the pre-previous file.
* po/es.po: Added new strings with latest editor changes. Added
strings in gaction.c. Merged with a new mc.pot after the changes
in POTFILES.in.
* gnome/gaction.c (mainly gmc_unable_to_execute_dlg): Moved g_strconcat
to g_strdup_printf, to get compact strings and make coherent
translations. Translate atomic actions (open, edit, view) when
calling this function.
* src/menu.c: (create_menu): Adjust "#ifdef ENABLE_NLS" so that menus
get the right size even when NLS is disabled.
1999-08-08 Norbert Warmuth <nwarmuth@privat.circular.de>
* po/POTFILE.in: Removed gpopup.c as it is not compiled.
* gdesktop.c (try_rename): New function to rename a desktop icon's
file by using a file operation context.
(text_changed): Use try_rename() instead of fiddling with the VFS
directly. BUGFIX: GNOME bug tracker #707. Also, destroy the old
icon before updating the desktop.
* gnome/gconf.h (PORT_STATIC_IN_STRING_FILE_XTIME): new port specific
feature. The Gnome edition first calls all string_file functions
and then uses the return values of these functions. Therefore additional
static buffers in string_file_[acm]time are needed.
* src/screen.c (string_file_[amc]time): These three functions use
file_date which returns a pointer to a static buffer. In the
Gnome edition this buffer has to be coppied to a static buffer
which isn't used in the other two functions (Fix Bug #1766).
* src/util.c, util.h: Moved some constants to util.h
* vfs/tar.c (read_header): Don't segfault when a symlink points to the
root directory.
1999-08-04 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/widget.c (push_history): Add SMB Link to the list of input dialogs
where urls are input without vfs prefix.
Translate the titles of these input dialogs only once.
Removed Gnome specific code because the Gnome edition doesn't use
the input history any more.
* src/util.c (strip_password): Add /#smb: to the list of urls which might
be input with password.
* gnome-file-property-dialog.c (perm_group_new): Set the correct
group name in the group entry box. BUGFIX: Red Hat bugzilla #3244.
* gmount.c (get_mountable_devices): Return the list in getmntent()
order. BUGFIX: Red Hat bugzilla #3621.
* gprefs.c (help_callback): New help callback for the preferences
dialog. It loads the "gmcprefs.html" section from the GMC user's
guide. We need a better framework for this; we need to be able to
map DocBook identifiers (<foo id="bar">) to HTML files or
whatever. BUGFIX: Red Hat bugzilla #3194.
1999-08-05 Federico Mena Quintero <federico@nuclecu.unam.mx>
* doc-gnome/C/gmc.sgml: Set the book element's id to "index" so
that the correct index.html will be generated.
* gnome/gcmd.c (gnome_about_cmd): Change strings in gmc "about" to
static as they only translated once.
* src/menu.c (create_menu, menubar_drop_compute, menubar_paint_idx):
Discount '&' for hotkeys when checking menu widths to avoid the
extra blank space.
Moved this accounting from the drawing to the creating function.
* src/widget.c: Translate History box tittle.
* po/es.po, po/es_ES.po: added translation for history box title
1999-08-01 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/vfs.c: Don't close a function definition with "};". SunCC from
2.5.1 chokes on the extra semicolon.
(mc_munmap): Don't dereference function pointer when checking for
NULL (this check is supposed to prevent a segfault instead of
causing one). This haven't got noticed up to now becaue there's no
file system with mmap but without munmap.
* capplets/mime-type/edit-window.c (initialize_main_win_vals):
Patch from Fabrice.Bellet@imag.fr for i18n and portability.
1999-07-08 <jrb@redhat.com>
* mouse-properties.c (mouse_apply): Added patch by Tom Tromey
<tromey@cygnus.com> to handle left-handed wheeled mice. Fixed
Authors file, too.
* gnome-file-property-dialog.c (perm_group_new): the return values
from the group functions in libc return pointers to static buffers
in the library. Duplicate all return values and free them at the
end.
* gnome-file-property-dialog.c (perm_group_new): Patch from
Germano Leichsenring <germano@jedi.cs.kobe-u.ac.jp> that fixes the
display of groups for non-root users.
* gcorba.c (corba_create_window): Ensure that the directory we
pass to the CORBA server is not NULL.
* gscreen.c: Removed a bunch of unused functions for filters.
* gnome/gmc-chargrid.c (update_strip): Paint every character with the
assigned fore and background color instead of using the colors of
the first character for the whole line.
1999-06-24 smil@linuxfan.com
* src/view.c (view_update_bytes_per_line, display): show correctly the
offset of the file (full 8 digit), display offset in bold colour
(view_labels): use goto_addr instead of goto_line in hex mode
(goto_addr): New function. Goto offset address in hex mode.
* src/view.h: use unsigned long for hexedit cursor position in file
* 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.
David for the ChangeLog entries).
1999-06-22 David Martin <dmartina@usa.net>
* gnome/gnome-file-property-dialog.c (switch_metadata_box): Tag some
strings for localization.
* gnome/gnome-open-dialog.c (gnome_open_dialog_new): Don't assemble
label_string from seperate strings (makes it easier to translate).
* src/view.c (display): added view_gotoxy's in order to make hex mode
work in the gnome edition.
* gtkedit/gtkedit.c (tb_items): Mark strings for localization.
1999-06-22 Norbert Warmuth <nwarmuth@privat.circular.de>
* gnome/gview.c (viewer_size_changed): Update internal viewer state used
in hex mode.
And some fixes to the bug reported on mc-bugs ("Two Big Bugs in
Quickview@mc").
1999-06-22 Norbert Warmuth <nwarmuth@privat.circular.de>
* src/cmd.c (quick_view_cmd): Change panel when the file we want to
view isn't in the current panel (prevents a "file not found"
error).
* src/menu.c (menubar_execute): De-activate the menubar previous to
invoking the callback. This is needed to make change_panel in
quick_view_cmd work (the activated menubar doesn't allow unfocus,
i.e. dlg_one_down|up don't change anything).
* src/view.c (do_view_init): improved error handling w.r.t quick view
(mc used to dump core when the file to view couldn't be opened).
* gdesktop.c (set_icon_wmclass): New function to set the wmclass
and wmname for desktop icons. This lets them be managed correctly
by WMs who try to manage X11R5 clients decently.
(text_changed): Call set_icon_wmclass().
(desktop_icon_info_new): Call set_icon_wmclass().
* gdesktop-icon.c (desktop_icon_realize): Do not clear the
WM_CLIENT_LEADER property.
* gdesktop.c (icon_is_in_area): Fixed off-by-one error in
intersection computation.
* gdesktop-icon.c (desktop_icon_reshape): Set the correct values
for dicon->text_x and dicon->text_y.
* complete.c (complete_engine): Put an #ifndef HAVE_GNOME around
the completion/query engine. Make the Gnome version just beep
instead. We do not have the completion/query engine for Gtk.
1999-06-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gwidget.c (x_update_input): Unblock the changed signal *after*
we call gtk_editable_changed().
* gdesktop-icon.[ch]: Removed the background hack for desktop
icons. Now the GnomeIconTextItem does the right thing.
* gdesktop-icon.c (desktop_icon_reshape): Use the correct size for
the icon text item.
* gdesktop.c (new_terminal): New function to open a terminal from
the popup menu. If the user opens a terminal from the desktop,
then its cwd should be the user's home directory, not the desktop
directory. Fixes bug #2868 in the Red Hat bugzilla.
* gnome/gdesktop-icon.h:
* gnome/gmc-chargrid.c: Replace gdk_font_load() with
gdk_fontset_load(), and change the default font names.
1999-06-01 Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
* util.c (is_printable): in GNOME all characters are printable.
* gdesktop-icon.c (desktop_icon_select): Show the
dicon->background.
(desktop_icon_init): Initialize backgorund as a rectangle that
fills all of the space used by the icon.
* gprefs.c (create_prop_int): Translate this label too.
* gnome-open-dialog.c: Add config.h here. Otherwise there is no
way to translate this dialog. Thanks to David Martina for
pointing this out.
1999-05-27 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_tree_button_press): Beginning of context menu
on tree.
* gtkdtree.c (gtk_dtree_load_path): Comment out the phantom code.
Need to review this code. Lets fix the problem Federico needs
solved now.
* gscreen.c (panel_fill_panel_icons): Add a hack to work around
gnome-libs/gnome-icon-list bug that did not reset the proper
values. A fix will be available in gnome-libs-1.0.10.
Fixes bug #1338.
* gdesktop.c (click_proxy_motion): Terminate rubberbanding if the
event mask does not contain GDK_BUTTON1_MASK. There is a race
condition where we will not get the button release event if we
manage to grab the server in the button_press handler before the
window manager proxies the button release to us.
(perform_release): New function to terminate rubberbanding; this
used to be in click_proxy_button_release(). Also, update the drag
selection based on the last known mouse position, not on the
current one (which is not meaningful if the race condition
mentioned above kicks in).
(click_proxy_button_release): Use perform_release().
* gdialogs.c (file_op_context_create_ui): Handle the "close"
signal from the progress dialog; do not let GnomeDialog close it
for us. This fixes bug #2203 in Red Hat's Bugzilla.
* gnome-file-property-dialog.c (create_general_properties): Mark
some more strings for translations. Thanks to David Martina for
pointing these out.
* mc.keys.in.in: New icons from Tim Davis <davist@cs.man.ac.uk>
* treestore.c (tree_store_save_to): Moved the functionality from
tree_store_save() to here.
(tree_store_save): Save the tree in the default location in an
atomic fashion.
(tree_store_load_from): Moved the functionality from
tree_store_load() to here.
(tree_store_load): Load the tree from the default location.
* treestore.h (MC_TREE_TMP): Added a #define for the temporary
name we'll use when saving the tree. Moved the #defines from
tree.h over to here.
* main.c (main): Use tree_store_load() and tree_store_save().
Removed the mc_tree_store_load/save() versions.
* tree.c (load_tree): Use tree_store_load().
(save_tree): Use tree_store_save().
* gscreen.c (panel_tree_check_auto_expand): Enabled auto-collapse
functionality again. Made the code a simpler by using
gtk_dtree_is_ancestor().
* gtkdtree.c (gtk_dtree_is_ancestor): New function to test whether
a node is an ancestor of a child. This does the same as
gtk_ctree_is_ancestor(), but much more efficiently. GtkCTree
seems to use the pessimal algorithm for this.
(gtk_dtree_collapse): Slight optimization: do not re-select if the
node is already selected.
(gtk_dtree_collapse): Do not freeze/thaw the tree while
collapsing/selecting.
* gmain.c: Removed crufty old SM code.
* gscreen.c (panel_setup_drag_scroll): Made it not return
anything, since scrolling is independent from any other
prelighting actions.
(panel_tree_drag_begin): Do not print debugging message.
(panel_drag_data_get): Assert that we were requested a valid data
type.
(panel_create_tree_view): Only specify GTK_DEST_DEFAULT_DROP for
the tree, since we want to present the correct feedback when the
user is hovering over the blank area in the tree.
(panel_build_selected_file_list): Made it return char *.
(panel_tree_drag_end): Free dtree->drag_dir, not dtree->current_path.
(tree_drag_open_directory): Use panel->drag_tree_node instead of
the coordinates hack.
1999-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (panel_setup_drag_scroll): Made it not return
anything, since scrolling is independent from any other
prelighting actions.
(panel_tree_drag_begin): Do not print debugging message.
(panel_drag_data_get): Assert that we were requested a valid data
type.
Updated/redid de.po.
I have *not* changed all the other .po files, I've done "make
update-po", that's all. Please kill me, should I have messed up the
tree somehow.
Kill me anyway, should I have goofed with CVS somehow. This thing
scares me no end, I keep looking stuff up in the documentation, and
it's with trembling fingers that I do my commits. Luckily I can't
break any code since I don't work on any code :)
* main.c (_do_panel_cd): If we are using GNOME, and the panel is a
desktop panel, open up a new panel for the contents.
gnome/
* gdesktop.c (create_panel_from_desktop): Assign selected_index
when we find the last selected icon.
(desktop_icon_info_open): Desktop directory open case moved to
main.c to handle both general and action cd commands.
vfs/
* extfs.c (extfs_unlink):
(extfs_mkdir):
(extfs_rmdir):
(remove_entry): New functions.
(vfs_extfs_ops): Add unlink, mkdir and rmdir functions to table.
Add descriptions for these to the extfs README.
* gscreen.c (panel_icon_list_button_press): Ignore double clicks.
(panel_widget_motion): Don't do anything if the button state does
not match the button we are expecting.
* gtkflist.c (gtk_flist_button_press): Remove pending selections
when we receive a double click.
* gaction.c: #include "view.h"
* gtkflist.[ch]: New files. This is a "file list" widget derived
from GtkCList that does several things:
- Overrides all mouse and keyboard event handlers.
- Implements its own, *sane* selection behavior, unlike
GtkCList's, which is broken.
- Implements the same selection behavior as the desktop,
which is a) correct, and b) consistent.
* gscreen.c (panel_create_file_list): Use the GtkFList widget.
(panel_widget_motion): Changed the drag thresholds to be the same
as in gtkdnd.c.
(start_drag): New convenience function to begin a drag operation.
(panel_widget_motion): Use start_drag().
(panel_clist_scrolling_is_desirable): Offsets must be with respect
to the clist_window, not to the allocation.
(panel_clist_drag_motion): Normalize the y coordinate of the
motion event to the clist_window.
* gdesktop.c (desktop_icon_info_destroy): Reset the
last_selected_icon to NULL if it is destroyed.
* Makefile.in: Added gtkflist to the list of files.
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.
* gcmd.c: marked message for translation.
1999-04-06 David Martin <dmartina@usa.net>
* info.c (text out of box and locale layout).
* util.c: If gmc uses strftime() why mc doesn't?
* view.c: a) Tune status line so it does fit in a Quick View Panel
b) Let Hex View resize cleanly. I think it's fixed for panel
re-split and SIGWINCH signal in xterm. gmc still fails. There was
a tiny risk of division by zero when pressing F4 in a very small
box. True hard work... Must try and check it.
1999-04-06 David Martin <dmartina@usa.net>
* Updated es.po
* gmetadata.c (gmeta_del_icon_pos): New function to delete the
icon position metadata from a file.
* gcmd.c: Removed unused function gnome_quit_cmd().
1999-04-05 Federico Mena Quintero <federico@nuclecu.unam.mx>
* main.c (main): Call mc_tree_store_save() when the program
terminates.
1999-04-05 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gprefs.c: Add new page for desktop properties.
1999-04-05 Ronald de Man <deman@win.tue.nl>
* gnome-file-property-dialog.c (create_general_properties): Use
local time here.
1999-04-05 Miguel de Icaza <miguel@nuclecu.unam.mx>
* setup.c: Save desktop information.
* 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.
* gtkdtree.c (scan_subtree): Moved the functionality to scan a
subtree to this function. Also, do not emit the DIRECTORY_CHANGED
signal here.
(gtk_dtree_select_row): Call scan_subtree() and emit the
DIRECTORY_CHANGED signal here.
(gtk_dtree_expand): Do not select the just-expanded node. Call
scan_subtree().
(gtk_dtree_collapse): Only select the node if it is an ancestor of
the currently-selected node. This should really go in the
GtkCTree sources.
(gtk_dtree_init): Bad hack: unset the GTK_CAN_FOCUS flag to avoid
the broken focusing behavior of GtkCTree.