mc/gnome/ChangeLog
Miguel de Icaza d51b0cacff 1998-05-09 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtrans.c (set_window_text): draw pixmaps without transparency
	correctly.
1998-05-09 22:39:54 +00:00

672 lines
23 KiB
Plaintext

1998-05-09 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtrans.c (set_window_text): draw pixmaps without transparency
correctly.
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.
* gblist.c (blist_select_row): New widget derived from GtkClist.
replace select_row and unselect_row with null functions, as the
gmc code takes care of the rest.
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (desktop_icon_drag_start): Do not attempt to use
icons if we could not load the images for the icon.
* 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-04-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtrans.c (make_transparent_window): Put hack back.
* gcache.c (image_cache_load_image): Federico spooted the problem:
I have to duplicate my keys for the hash.
* gmain.c (create_panels): Create one panel per directory
specified. For some strange reason the code hangs if you start up
more than one panel at once. This is not a gmc bug, it appears to
be an Imlib/gtk/gdk interaction. I am for now creating one panel
in the main program execution thread and the rest during the idle
handler.
(session_save_state): Added session management support.
1998-04-29 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gprop.c (gprop_general_new): Added an simple icon preview to the
icon selector.
1998-04-29 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c: Finish desktop_icon_remove implementation.
* glayout.c (update_panels): GNOME specific Implementation of the
update_panels routine.
Tue Apr 28 06:52:24 1998 Norbert Warmuth <k3190@fh-sw.de>
* gcmd.c (gnome_open_terminal): Changed my_system(1,...) to
my_system(EXECUTE_AS_SHELL,...)
1998-04-27 Miguel de Icaza <miguel@nuclecu.unam.mx>
* glayout.c (layout_panel_gone): Removed debugging information.
Renamed "Panel" to "Window" to make it less confusing to users.
Moved the "New window" from the "File" menu to the "Window" menu.
* gmain.c (dialog_panel_callback): Walk the list of panels to
determine to which panel the activated widget belongs.
1998-04-24 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_create_radio): Fix the WRadio widgets.
1998-04-21 Miguel de Icaza <miguel@nuclecu.unam.mx>
* glayout.c (create_container): Add wmclass.
1998-04-16 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (desktop_reload): Show all of the widgets on a reload
operation.
* gscreen.c (x_panel_update_marks): Do only set the marks if the
widget has been created
* glayout.c (assign_other): Keep track of all of the opened
panels. We were never removing them from the containers list.
This fixes a number of problems.
* gwidget.c (x_dialog_stop): Only call gtk_main_quit if this
dialog did not inlcude the DLG_GNOME_APP flag, as those windows
did not launch a gtk_main event loop.
* gcmd.c: Try various terminal programs in the PATH before giving
up
* glayout.c: Unselect command is unselect_cmd, not select_cmd
* gcmd.c (gnome_quit_cmd): Add quit confirmation.
* gdesktop.c (perform_drop_manually): Check the type for the
source file (directory/file) and perform the proper operation.
Before this we always did a *_file_file operation.
(perform_drop_manually): Use copy_dir_dir correctly
(desktop_setup_default): Use copy_dir_dir correctly
* gwidget.c (x_create_label): Remove debugging labels.
* gscreen.c: Do not show the view/view unfiltered if the
selectioned item is a directory.
* gwidget.c (x_radio_toggle): Never commit non-compilable code.
1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (remove_hotkey, x_create_radio): Radio buttons should
not display the special Hotkey specificator.
* 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.
1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtrans.c (create_transparent_text_window): Destroy the cursor
properly.
1998-04-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gview.c (x_init_view): Initialize view->sadj.
* gdesktop.c (start_desktop): use destkop_load instead of
desktop_reload.
(desktop_load): This reloads + shows every widget on the
desktop_icons list.
1998-04-14 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
Fri Apr 12 02:40:41 1998 Norbert Warmuth <k3190@fh-sw.de>
* 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.
1998-04-08 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (x_create_panel): Added back and forward buttons. I
need a "Home" icon too.
* gwidget.c (x_create_input): Make the selection if the input has
not yet been touched.
* gscreen.c (panel_action_open): If opening an item fails, try
panel_action_open_with.
* gview.c: Implement the viewer scrollbar.
1998-04-07 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_drop_data_available): Reload the panel contents
upon a drop.
* gmain.c (gnome_dlg_send_destroy): Hide the widgets just before
they are going to get destroyed, to avoid the shutdown
flickering.
(x_destroy_dlg_start): New routine/hook invoked when the destroy
has just started
(x_set_idle): Cancel the idle handlers properly.
* gwidget.c (x_create_check): Finish the checkbox implementation.
* gdesktop.c (get_desktop_icon): Fix this routine: it was
cretating a file name when the filename was not set properly.
1998-04-01 Marc Ewing <marc@redhat.com>
* gscreen.c: Added #include <gdk/gdkprivate.h>
1998-03-31 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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.
1998-03-24 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (x_create_panel): Show the GnomeApp when we are done
packing all of our information.
* gmain.c (create_panels): do not show any of the windows yet.
1998-03-23 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (x_fill_panel): Colors are properly displayed now.
Use the clipped labels.
* gcliplabel.c, gcliplabel.h: Derived label that does label
clipping (it does not request the allocation for the whole string,
but settles with whatever is provided in the size_allocation).
1998-03-23 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gtrans.c (create_transparent_text_window): Set the window's
cursor to the normal top-left arrow.
Mon Mar 23 01:40:35 1998 Norbert Warmuth <k3190@fh-sw.de>
* gtools.c (translate_gdk_keysym_to_curses): renamed KEY_BACKTAB
to KEY_BTAB (the name ncurses uses)
* Makefile.in: Install the icon-files and the layout-file from $srcdir.
1998-03-20 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
1998-03-19 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
1998-03-19 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (display_mini_info): Implement mini status.
1998-03-19 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
Wed Mar 18 23:09:35 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_file_list_select_row): Use control/shift click
to add files to the selection.
Wed Mar 18 22:32:53 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_action_properties): Make Federico's
page-properties code functional.
* gpageprop.c: New file, implements most of the page properties on
top of the gprop.c code.
Wed Mar 18 20:35:45 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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.
1998-03-18 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c: Removed tests for the gprop stuff.
(file_popup): It is not necessary to show the popup menu.
* gprop.c (perm_group_new):
(perm_owner_new): Fill the combo lists with users and groups,
respectively.
* 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.
Tue Mar 17 22:40:36 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (desktop_setup_icon): Lots of changes to accomodate
dropping icons on the root window.
(do_symlinks): Implement symlink action.
(icon_delete, desktop_icon_context_popup): Implement icon context
menus. only deleting an icon is working right now.
* gscreen.c: Load the drag and drop icons from the installation
directory.
* Makefile.in (install_gmc): Install our icons.
Tue Mar 17 02:38:37 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (desktop_setup_default): Create a default desktop
entry on the root window for the Home directory if not mc.desktop
exists -yet-
Get drops on the root window to work. Joy and hapiness!
Tue Mar 17 00:43:50 1998 Tom Tromey <tromey@cygnus.com>
* glayout.c (gnome_panel_about_menu): "About" item now a stock
menu item.
1998-03-16 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (filter_item_activate): Make it convert the glob
pattern to a regexp if appropriate.
Sat Mar 14 17:13:26 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gmain.c (gnome_dlg_send_destroy): New signal handler for
"delete_event". I return TRUE (ie, do not kill this window), and
manually queue que destruction of this window.
* gtools.c (query_dialog): Do not allow resizing; do not destroy
the dialog ourselves, this is properly handled by dlg.c now
(pack_button): Do not use the defaults: we do not want growing
buttons;
Fri Mar 13 16:01:28 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (buttonbar_clicked, x_create_buttonbar): Button bar
widget implemented.
* gtools.c: Implement the non-modal version of the message
routine.
* gview.c: Create a GnomeApp widget to contain the viewer.
* gmain.c (xtoolkit_create_dialog): Add a new mode where the
container window is a GNOME_APP window.
1998-03-13 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (x_select_item): Make it use GTK_VISIBILITY_FULL
instead of a plain boolean value.
* gwidget.c (x_listbox_select_nth): Likewise.
* 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.
Thu Mar 12 22:11:23 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (x_update_input): Use GnomeEntry widgets instead of
the GtkEntry.
* gwidget.c (listbox_select): Fix for the listbox selection with
the mouse.
(x_create_button): Use stock pixmaps.
* gcmd.c: Moved all of the _cmd routines from glayout to this
place.
(save_panel_types): Provide GNOME implementation.
* glayout.c: New and improved menu layout. Use stock pixmaps.
1998-03-12 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmc-chargrid.c (gmc_char_grid_draw): Someone teach me how to
subtract. Fixed a stupid offsetting bug.
(update_region): Added clipping of region bounds.
* 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().
1998-03-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmc-chargrid.c (update_strip): Doh. Fixed painting of
background rectangles.
(gmc_char_grid_expose): Fixed off-by-one errors in area
calculation. Ripped off the code from gtkterm to do this :-)
(free_attrs): New internal convenience function.
Thu Mar 12 00:08:06 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gview.c (view_percent): Added status display.
Wed Mar 11 22:35:02 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (entry_release): Now the WEntrys track the current
selection.p
(x_update_input): Repaint the widget after changing the position.
* gscreen.c (x_fill_panel): Remember the selected item on the
panel before filling it up, as gtk_clist emits a select_item
signal when filling it up, which changes the current selection
(and thus some routines that invoke the reload panel option
fail).
(create_popup_submenu): Implement context sensitive menus (regular
files, and symlinks).
(panel_realized): Use a different icon when we are dragging a
group of files.
(panel_artificial_drag_start): Add Elliot's Artificial drag start
support.
1998-03-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.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.
Tue Mar 10 23:46:29 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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
find out which directory receives the drop.
* glayout.c: added: configure_box, configure_vfs
(get_other_type): Return the correct value.
1998-03-10 Federico Mena Quintero <federico@nuclecu.unam.mx>
* 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.
* gtools.c (message): Added return NULL. This needs to be fixed.
(translate_gdk_keysym_to_curses): FIXME: Replace KEY_BACKTAB by '\t'
while KEY_BACKTAB is added somewhere else.
(translate_gdk_keysym_to_curses): return -1 as last resort.
* glayout.c (get_current_index): Add g_assert_not_reached() for
fatal case.
* gmenu.c (menubar_new): Cast g_menubar to unsigned long.
* gwidget.c (x_create_input): Cast entry to GTK_OBJECT.
* gkey.c (find_select_closure_callback): Fix = -> == typo.
Tue Mar 10 00:10:32 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gscreen.c (panel_drop_data_available): Now drop support uses the
new coords.x and coords.y fields from the DropDataAvailableEvent
to find out which directory receives the drop.
* gwidget.c (x_radio_focus_item): Add support for focusing radio
buttons.
Mon Mar 9 15:12:00 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtools.c (translate_gdk_keysym_to_curses), dlg.c
(dlg_key_event): Support for backtab.
* gwidget.c: highlight properly the focused radio entry.
* gmain.c (x_init_dlg): After setting up the X widget, set the
Gtk focus to h->current;
1998-03-09 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c (x_panel_select_item): Set the colors of the row.
* gmain.c (xtoolkit_init): Changed gnome_init() to new version.
(xtoolkit_init): Call gnome_init() properly. Also, return 0.
Sat Mar 7 15:24:49 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gwidget.c (entry_click): Focus the entry on clicks.
Fri Mar 6 20:50:19 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gmain.c (create_panels): New per-port variable, used to flush
all of the pending X events.
(x_set_idle): Implement idle functions, now the find command works
properly.
* gwidget.c (x_create_radio): Connect to the "toggled" signal to
keep track of the radio button.
(listbox_select): callback for the select and double click
actions.
(x_update_input): This can be invoked before the
widget X resources have been allocated. Take care of this.
(x_create_input): update the cursor position as well.
(x_list_insert, x_create_listbox, x_list_delete_nth,
x_listbox_select_nth): implement the Listbox widget.
* gconf.h: New configuration options:
PORT_HAS_PANEL_ADJUST_TOP_FILE and
PORT_HAS_PANEL_RESET_SORT_LABELS
1998-03-06 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmain.c (get_color): Make it use GdkColorContext correctly.
* 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.
Thu Mar 5 23:54:58 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gdesktop.c (drop_on_panel): New function; Used by the directory
icons and by regular panels to support drag targets;
* gscreen.c (panel_drop_data_available): Performs the drop action
on a panel. It needs fixing, as the DropDataAvailabelEvent does
not provide any information as to where the drop actually
happened.
(fixed_gtk_widget_dnd_drag_set, fixed_gtk_widget_dnd_drop_set):
Only set the main window of the clist to be the source/target of
the drag and drop code. The little square at the end did not make
much sense as a drop/drag spot.
1998-03-04 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gmain.h: Added prototype for x_filter_changed().
Added #include "panel.h".
* gconf.h (PORT_HAS_FILTER_CHANGED): New flag for conditional compilation.
Wed Mar 4 22:43:00 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gtools.c (query_dialog): Rewritten to use the MC dialog/widget code.
* gutil.c (my_system), acconfig.h: By default gnome will not have
a subshell (at least for now) and will now exec everything
asyncronously by default.
* gscreen.c: Exactly what was I thinking when I used the
g_panel_contents structure will remain a mistery for future
programming psycologists. It was a huge mistake.
* gdesktop.c: Use the new icon/text display routine from
Federico.
Tue Mar 3 21:03:52 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
* gmain.c (x_destroy_dlg): Call gtk_grab_remove when destroying
the dialog.
* gmain.c (x_focus_widget): Handle special case of toplevels.
1998-03-04 Federico Mena Quintero <federico@nuclecu.unam.mx>
* gscreen.c: Some hackish changes to work around idempotence bugs
in gtk_clist_select_row().