* gdesktop.c (desktop_create_directory_entry): Fix, make a
g_strdup copy of the name. Fixes bug report #78.
(desktop_icon_context_popup): Simplified this routine as we are
using file_popup now anyways.
1. Selecting text in an input line and typing a char
now does the expected thing (Bug #17)
2. Drag and drop betwen icon view was broken (Bug #16
(This is a bug introduced by the fact that when Icon
View was introduced, I left the testing for the view
mode here and there)
Extra stuff: runtime warnings fixed when creating a new window;
moved the "new window" option to the "file" menu, it makes more
sense there. Force event flushing when I change the progress
status for vfs code.
Miguel
1998-05-22 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_create_input): Disable the use of the GNOME entries
for now, as they are very slow. We need to figure out what is
wrong with this.
With this change, dialog boxes close quickly instead of taking
ages to close.
* gscreen.c, gdesktop.c (file_popup_add_context, file_popup):
Share the context menu code in gdesktop.c and gscreen.c. The
desktop pop up menus now include all of the stuff that would have
appeared in the Panel.
* gdesktop.c (desktop_icon_remove): Remove the file associated
with this desktop entry if it is on the ~/desktop directory.
- We now provide both url:ALL and file:ALL drag types. This
allows applications that are not vfs-aware (all of them
right now :-) to work even if the files dragged are from a
remote site.
If the files are remote, and the target only accepts
file:ALL, a temporary file is created (or files, if multiple
files are dragged) and the names of the temporary file names
are transfered.
- Added ABOUT-NLS file :-)
Miguel.
* gtrans.c (set_window_text): Made it use the new
GnomeIconTextInfo functions.
1998-05-18 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (panel_create_icon_display): Set some good separator
characters for the file icon list.
* gpageprop.c (item_properties), gprop.c: Add executable editing
(command, and terminal). Save the dentry after modification
1998-05-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gprop.c (change_icon): Test for gp, as the combobox emits the
"changed" signal when shutting down. Great.
* gdesktop.c (desktop_reload): Missing mc_closedir
(desktop_setup_icon): Fix memory leak.
(get_desktop_icon): Fix memory leak.
(desktop_create_directory_entry): Set the size of the exec
vector.
(desktop_create_launch_entry): Same.
We now create launch entries instead of trying to support
regular dropped stuff on the desktop, this makes things easier and
more consistent.
1998-05-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* ext.c: Memory leak fixed.
* gdesktop.c (url_dropped): `exec' field of desktop entry now a
vector.
(dentry_execute): Likewise.
(desktop_icon_remove): Likewise.
(get_transparent_window_for_dentry): Likewise.
(desktop_create_directory_entry): Likewise; also initialize
exec_length.
* gscreen.c (create_popup_submenu): fixed bug which caused it to require
0 instead of 1 marked files for F_SINGLE file_actions.
* gscreen.c (file_popup): first item in the menu displays "..." when
multiple files are selected.
* gtrans.c (create_transparent_text_window): Removed the hack to
lower the window on exposes. Guess what happens when you have two
icons on the same spot.
1. My icons suck.
2. Keyboard handling is not finished.
3. Save current-mode, load current-mode is not
implemented yet.
4. Listing mode is not working, as I have hardcoded
the icon view for now.
5. Will finish this tomorrow. Not much is missing.
6. No, this is not the final implementation.
7. Yes, later I will put some scheme for using
more icons as discussed in the ethernal "Re: Icons"
thread.
Miguel.
1998-05-07 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_icon_list_realized): Add drag and drop support
to the icon list view;
1998-05-06 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_fill_panel_icons): New function: Fill up the
icon list.
(x_create_panel): Change in the approach: we create both of the
widget views at creation time and we now carefully show every
component. I attach everything to the table, but not necesarly
show it.
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_update_input): Keep the cursor always visible.
* gview.c (view): Use a buttonbar widget.
* gwidget.c (buttonbar_clicked): Provide a trivial implementation
of the buttonbar that only responds to key sequences.
* gmain.c (dialog_panel_callback): Call midnight_callback to get
the main bindings working.
* gdesktop.c (perform_drop_manually): Use p to walk the dropped
data. This is an important bug fix.
* gmain.c (idle_destroy_window), main.c: Session management now
supports not showing a toplevel window (in case all of the windows
were closed).
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* view.c (view_quit_cmd): Use dlg_stop.
* main.c (ctl_x_cmd): Implement ctl-x handling as a state of the
key press events. Drop the usage of mi_getch to acomplish this
task.
(midnight_callback): Deal with the current map depending on the
c-x state.
panel, the old way of using it was an historic relic.
- This now works properly with the GNOME edition.
- Finished/fixed the implementation of the desktop-remove-icon
functionality.
- Raster's new multi-ok window. For some reason this is not getting
loaded. I am compiling gdb 4.17 now, as it is better for egcs
output.
Miguel.
Now in wrap mode the End key and cursor up key behave much better
(e.g. when viewing binary files with lots of wrapped lines).
It's not perfekt but it's better than it used to be.
Tue Apr 28 06:52:24 1998 Norbert Warmuth <k3190@fh-sw.de>
* gnome/gcmd.c (gnome_open_terminal): Changed my_system(1,...) to
my_system(EXECUTE_AS_SHELL,...)
Tue Apr 28 06:06:03 1998 Norbert Warmuth <k3190@fh-sw.de>
* vfs/extfs.c (extfs_open, extfs_close): Changed my_system(1,...)
to my_system(EXECUTE_AS_SHELL,...), this fixes the broken copyin and
copyout in 4.1.32.
Tue Apr 28 06:11:08 1998 Norbert Warmuth <k3190@fh-sw.de>
* view.c (toggle_wrap_mode, toggle_hex_mode): Force recalculation
of bottom_first (we mustn't use an already calculated and cached
value because it is invalid for the new mode and the End key would
not move to the end of the file).
* configure.in: Renamed the option `--with-our-slang' to
`--with-included-slang' (this one looks better because we also
have an `--with-included-gettext').
Make the option `--with-ext2undel' recognice a given path.
* cmd.c (view_file_at_line): In plain view (F13) set the default
magic flag to zero in order to view the file content unprocessed
(esp. don't uncompress files if they are compressed). The
view_simple_cmd got broken when the default magic flag in view.c
was changed from 0 to 1.
* view.c (do_view_init, goto_line): Set wrap mode temporary off
to make goto line number work, i.e. `line number' now always means
line number in file and not line number on screen (in wrap mode
one long line wrapped once is displayed in two lines on the screen).
That's important when the viewer is invoked from the find file
dialog to display even in wrap mode approxiamtly the part of the
file where we found the content we searched for.
(move_forward2): In wrap mode lines were sometimes counted wrong
causing cursor up to move more than one line.
(move_backward2): Fixed the movement in wrap mode.
(change_viewer): Always re-init viewer when we have a filename,
i. e. if the viewer is invoked with simple_view_cmd then we can switch
with the F8 key between unprocessed file content und uncompressed
file content.
(view_init): re-init view also when magic flag was altered
fix a bug in the panel-widget selection.
i18n changes from Andrej Borsenkow.
Menus renamed, better texts -- thanks Havoc.
lav's fixes for curses compilation.
Miguel
with with this commit. This also addresses a bunch of the comments
from the status.shtml from DrMike.
Miguel.
1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx>
* screen.c (GT): Assign two spaces for the minimum size of the
"type" field for the GNOME edition. This gives some extra space
for the icon that gets displayed.
* dlg.c (remove_widget): New function: used to remove a widget
from an existing Dlg_head;
(destroy_widget): Destroy a specific Widget.
(add_widgetl): Extended to deal with the fact that a running
Dlg_head can become empty.
* panelize.c (l_call): Update the input line every time the user
selects the entry with the mouse (pretty common in the gnome
edition).
* hotlist.c (add_new_group_input): Removed an extra field that was
causing problems.
* find.c (find_parameters): Tree button is gone for gnome until we
get the tree function working on gnome.
* cmd.c (save_setup_cmd): Per Elliot's suggestion, do not pop up a
dialog box to inform the user about the saved setup.
1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gcmd.c (gnome_close_panel): Implement the close-the-panel
functionality.
* gscreen.c (x_panel_destroy): Implement the gnome mode way of
destroying the panel.
* gview.c (view_status): Add cacheing of the information status,
to avoid excessive flicker. It would be better if GtkLabel did
not flicker though.
(scrollbar_moved): Scroll correctly. We now use
view_move_backward and view_move_forward to adjust the scrollbar
contents. This displays the scrollbar correctly.
* gwidget.c (x_listbox_select_nth): This may be invoked before the
widget has been created, work around this problem.
* gscreen.c (show_dir): Set the title bar for the window to the
current directoy. Reported by both Mike and Elliot.
* layout: Updated to the new hotlist dialog box.
2. Load/Save desktop-icon transparent state.
3. Add arrange icons code.
4. Add snap to grid option (default now).
5. Fixed viewer crash.
Still left to do:
- Nice config dialog to set the above variables.
* gdesktop.h: Added extern declarations for the
want_transparent_icons and want_transparent_text variables.
* gtrans.c (set_window_text): Now we use the new global variables
want_transparent_icons and want_transparent_text to decide how to
paint the pixmap and mask. The want_transparent_* variables can
thus be configured for the smartness/speed of your X server when
using shaped windows.
* gwidget.c (x_create_input): return 1 if the widget has been
initialized manually (there was no return value)
(x_create_buttonbar): to few arguments to sprintf (button number
was missing); return a value.
Sun Apr 12 02:48:26 1998 Norbert Warmuth <k3190@fh-sw.de>
* xv/xvscreen.c: removed duplicate (conflicting) definition
of do_enter()
- Double click should work.
- Dragging to other panels shoudl work
- Scrollbar in the viewer
- Entry widgets get their text selected at startup
- Prompts for command if default action does not exist for a filename
- Updated spanish translation.
Plus some other bugs I fixed.
Miguel
- Nicer dialog destruction (no flicker)
- refresh of panels after a drop.
- Pause after run is gone in the gnome edition.
- Improved layout for options dialog box.
- Checkbox widgets are implemented, they now work.
Miguel.
* gcache.c: Added an Image cache for all of the imlib-loaded
images to avoid destroying/reloading the images.
* gdesktop.c, gtrans.c: Use the image cache.
* gnome/gtools.c (translate_gdk_keysym_to_curses): renamed KEY_BACKTAB
to KEY_BTAB (the name ncurses uses)
* gnome/Makefile.in: Install the icon-files and the layout-file from $srcdir.
* autogen.sh: added support for builddir != srcdir
* doc/Makefile.in: The manual pages are generated files and
located in the builddir and not in the srcdir.
* src/find.c (find_file): Use the same hotkey for the panelize button
as we use with the external panelize command.
* src/myslang.h: --with-ncurses didn't compile: renamed
KEY_BACKTAB to KEY_BTAB (the name ncurses uses)
* src/dlg.c (dlg_key_event): likewise
* src/tkmain.c (x_init_dlg): added dummy function to make it
compile
* vfs/Makefile.in, extfs/extfs.ini, extfs/hp48: New external
filesystem to view and copy files to/from the HP48.
Now it should be possible to build and install gnome edition with
builddir != srcdir.
* gdesktop.c (icon_properties):
* gpageprop.c (item_properties): Modified to accept dentry title
changes as well.
(item_properties): Fixed base and fname confusion in call to
concat_dir_and_file().
* gprop.c (gprop_general_new):
(gprop_general_get_data): Renamed to general from icon. The
general Gprop now lets you enter the title and icon filename for a
dentry.
* gdesktop.c (icon_properties): Whoops, actually save the dentry.
(post_setup_desktop_icon): Moved the icon positioning call outside
of this function so that property-changed icons will not move on
the desktop.
* gdesktop.c (desktop_icon_context_popup): It is not necessary to
set the menu position.
(desktop_icon_context_popup): gtk_signal_connect_object_after to the menu
items with gtk_widget_destroy as a callback so that we can destroy
the menu widget appropriately.
* gdesktop.c (get_transparent_window_for_dentry): New function,
creates the proper transparent icon window for a dentry.
(post_setup_desktop_icon): New function, does post-setup stuff for
a desktop icon (setting it as a drop target, positioning it, etc.).
* gpageprop.c (item_properties): Now the dentry parameter is a
desktop_icon_t instead.
We now return a bitmask that indicates what stuff changed. The
caller can use this information to decide what to update, repaint, etc.
* gdesktop.h: Moved the icon_t and desktop_icon_t structures here.
* gpageprop.c (item_properties): Insert icon control if appropriate.
* gprop.c (gprop_icon_new):
(gprop_icon_get_data): Renamed from gprop_dir_*().
* gscreen.c (panel_action_properties): Re-reads panel only if necessary.
*gpageprop.c (item_properties): now returns TRUE if something got
changed, FALSE otherwise. This should be used to decide whether
to re-read the panel or not.
* gpageprop.c: #include "../vfs/vfs.h".
#include "dialog.h".
* gprop.c (gprop_dir_new):
(gprop_perm_new):
(gprop_general_new): Connect to the destroy signal of the toplevel
widget and destroy the Gprop structure on the callback.
* gdesktop.c (desktop_create_launch_entry): Support for the "Drop"
target in mc.ext now.
* Add support for dragging the icons on the desktop.
(desktop_icon_make_draggable): new function.
(drop_from_event): simplify.
(my_create_transparent_text_window): Get the motion notify event.
(drops_from_event): create a vector based on thge drop event.
(drop_cb): splitted, call url_drop for regular drops, otherwise it
is a icon drop.
(artificial_drag_start): new routine, used now by gscreen.c and
gdesktop.c
(drop_on_directory): Check result value of operation.
(desktop_icon_set_position): sane interface.
(stop_desktop): Flush all of our state to disk.
* gprop.h: New files gprop.[ch]. These create the property pages
for desktop entries.
* Makefile.in: Added gprop.[ch] to the rules.
* glayout.c: Put gnome_about_cmd as a callback for the About menu item.
* gscreen.c (filter_item_activate): Make it convert the glob
pattern to a regexp if appropriate.
1998-03-16 Federico Mena Quintero <federico@nuclecu.unam.mx>
* util.c (convert_pattern): Now the internal buffer is malloc()ed
instead of being static. This is required for long patterns.
(regexp_match): Free the pattern after calling convert_pattern().
* file.c (file_mask_dialog): Free the source_mask after calling
convert_pattern().
* gscreen.c (filter_items): New global variable full of filters.
Please, someone fill in the regexp parts, as I was too lazy to do
them :-)
(panel_create_filter): Now the filter has a very nice button that
pops up a menu for selecting the filter.
Today:
- New Menu layout! Weeee!.
- More mc commands exposed to the GNOME edition.
- Use gnome stock pixmap buttons.
- Use gnome stock for the menus.
- Now it is possible to quit the program :-)
- Various other bits.
If you can test it, I would appreciate it.
-Miguel.
* gmc-chargrid.c: Changed the struct attr with pointers mess with
something saner.
Added an in_resize flag to avoid calling our internal signal
handlers recursively.
(gmc_char_grid_draw): Added proper draw handler for our case; the
widget's window does not fill its allocation.
(paint): New wrapper for update_region(); it converts window
coordinates to row/column character coordinates.
(gmc_char_grid_expose): Use paint().
Context menu rearranged
Removed dead code
Shapped drag and drop
Different drag and drop icons depending on single/multiple drags
Artificial dnd is here (Thanks Elliot!)
cwd displays something interesting
Beginning of the internal viewer status display.
-miguel.
* gmc-chargrid.c (gmc_char_grid_get_size): New public function.
(gmc_char_grid_put_text): New public function. It is the same as
gmc_char_grid_put_str, but can take any arbitrary string plus its
length.
(gmc_char_grid_put_char, gmc_char_grid_put_str,
gmc_char_grid_put_text): These functions now take a background
pixel parameter --- the GmcCharGrid widget now supports fg/bg attributes.
* gmc-chargrid.h: Changed colors field to attrs.
* gmc-chargrid.h:
* gmc-chargrid.c: New Character Grid widget for the file viewer.
This is a very lean and fast widget for displaying a grid of
monospaced characters. Just like a crippled-down terminal.
is enabled; virtual fs setup dialog box is up; save setup; mkdir
link command is hossed. It is more than hossed for some stoopid
reason, the thing is selecting the first file in the panel
just after I talked to it. No matter how argumentative I get
with the code. Have to fix next.
Commit the bits I forgot to commit yesterday.
-miguel.
* gscreen.c (panel_file_list_size_allocate_hook): Now we
connect_after to the size_allocate signal and block the handler.
Things are still not perfect, though.
* gscreen.c
* gscreen.c (x_adjust_top_file): We no longer adjust the top
displayed filename.
(panel_build_selected_file_list): Fix for the transfered data.
(panel_drop_data_available): Now drop support uses the new
coords.x and coords.y fields from the DropDataAvailableEvent to
* gscreen.c (panel_create_filter): The filter control is now a
nice GnomeEntry. It does not work due to gmc trapping key events;
I'll look into it tomorrow.
(internal_select_item): Fixed broken behavior. Now uses GtkCList properly.
default_filters: new structure with pre-defined glob patterns.
This is actually broken, because it will only work when
easy_patterns is enabled. I have to figure a way to make it work
with regexp mode as well.