y'ello everybody. i just switched to mc from years of nc and wincmd. looks quite nice, and i hope there's still some developers alive.
something i found annoying in mc is the 'jumpy' panel scrolling, instead of simply one file at a time. that's why i added it, making it an option selectable in Options > Configuration > Panel Options. the diff's attached, and i hope it's good enough to get included in mc =) l8r -- Shiar m00h ( _ ) [EMAIL PROTECTED] \ ~O o~__ [EMAIL PROTECTED] (._.) |\ http://www.shiar.org |_|_|
diff -rct src.org/main.c src.shiar/main.c *** src.org/main.c Mon Mar 25 08:46:19 2002 --- src.shiar/main.c Mon Apr 8 21:02:34 2002 *************** *** 129,134 **** --- 129,137 ---- /* they do a complete refresh, refreshing all the parts of the program */ int fast_refresh = 0; + /* If true, up/down keys scroll the pane listing by pages */ + int panel_scroll_pages = 1; + /* If true, marking a files moves the cursor down */ int mark_moves_down = 1; diff -rct src.org/main.h src.shiar/main.h *** src.org/main.h Thu Jan 17 08:17:54 2002 --- src.shiar/main.h Mon Apr 8 21:02:59 2002 *************** *** 34,39 **** --- 34,40 ---- void subshell_chdir (char *command); /* See main.c for details on these variables */ + extern int panel_scroll_pages; extern int mark_moves_down; extern int auto_menu; extern int pause_after_run; diff -rct src.org/option.c src.shiar/option.c *** src.org/option.c Mon Sep 3 07:07:41 2001 --- src.shiar/option.c Mon Apr 8 21:12:49 2002 *************** *** 80,90 **** {N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0, "auto-menus" }, {N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0, "auto-save" }, {N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0, "shell-patt" }, ! {N_("Compute &Totals"), &file_op_compute_totals, TOGGLE_VARIABLE, 0, "compute-totals" }, {N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0, "verbose" }, {N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0, "fast-reload" }, {N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0, "mix-files" }, {N_("&Drop down menus"), &drop_menus, TOGGLE_VARIABLE, 0, "drop-menus" }, {N_("ma&Rk moves down"), &mark_moves_down, TOGGLE_VARIABLE, 0, "mark-moves" }, {N_("show &Hidden files"), &show_dot_files, toggle_show_hidden, 0, "show-hidden" }, {N_("show &Backup files"), &show_backups, toggle_show_backup, 0, "show-backup" }, --- 80,91 ---- {N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0, "auto-menus" }, {N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0, "auto-save" }, {N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0, "shell-patt" }, ! {N_("Compute &Totals"), &file_op_compute_totals,TOGGLE_VARIABLE, 0, "compute-totals" }, {N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0, "verbose" }, {N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0, "fast-reload" }, {N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0, "mix-files" }, {N_("&Drop down menus"), &drop_menus, TOGGLE_VARIABLE, 0, "drop-menus" }, + {N_("scroll paged"), &panel_scroll_pages,TOGGLE_VARIABLE, 0, +"panel-scroll-pages" }, {N_("ma&Rk moves down"), &mark_moves_down, TOGGLE_VARIABLE, 0, "mark-moves" }, {N_("show &Hidden files"), &show_dot_files, toggle_show_hidden, 0, "show-hidden" }, {N_("show &Backup files"), &show_backups, toggle_show_backup, 0, "show-backup" }, *************** *** 95,102 **** static char *pause_options [3] = { N_("&Never"), ! N_("on dumb &Terminals"), ! N_("alwa&Ys") }; static int configure_callback (struct Dlg_head *h, int Id, int Msg) { --- 96,103 ---- static char *pause_options [3] = { N_("&Never"), ! N_("on dumb terminals"), ! N_("always") }; static int configure_callback (struct Dlg_head *h, int Id, int Msg) { *************** *** 105,111 **** attrset (COLOR_NORMAL); dlg_erase (h); draw_box (h, 1, 2, h->lines - 2, h->cols - 4); ! draw_box (h, PY, PX, 8, first_width); draw_box (h, RY, RX, 5, first_width); draw_box (h, OY, OX, 15, second_width); --- 106,112 ---- attrset (COLOR_NORMAL); dlg_erase (h); draw_box (h, 1, 2, h->lines - 2, h->cols - 4); ! draw_box (h, PY, PX, 9, first_width); draw_box (h, RY, RX, 5, first_width); draw_box (h, OY, OX, 15, second_width); *************** *** 148,154 **** title3 = _(" Other options "); first_width = strlen (title1) + 1; ! for (i = 13; i < 19; i++) { check_options[i].text = _(check_options[i].text); l1 = strlen (check_options[i].text) + 7; --- 149,155 ---- title3 = _(" Other options "); first_width = strlen (title1) + 1; ! for (i = 13; i < 20; i++) { check_options[i].text = _(check_options[i].text); l1 = strlen (check_options[i].text) + 7; *************** *** 221,228 **** pause_radio = radio_new (RY+1, RX+2, 3, pause_options, 1, "pause-radio"); pause_radio->sel = pause_after_run; add_widget (conf_dlg, pause_radio); ! for (i = 0; i < 6; i++){ ! check_options [i+13].widget = check_new (PY + (6-i), PX+2, XTRACT(i+13)); add_widget (conf_dlg, check_options [i+13].widget); } --- 222,229 ---- pause_radio = radio_new (RY+1, RX+2, 3, pause_options, 1, "pause-radio"); pause_radio->sel = pause_after_run; add_widget (conf_dlg, pause_radio); ! for (i = 0; i < 7; i++){ ! check_options [i+13].widget = check_new (PY + (7-i), PX+2, XTRACT(i+13)); add_widget (conf_dlg, check_options [i+13].widget); } diff -rct src.org/panel.h src.shiar/panel.h *** src.org/panel.h Wed Jan 23 00:16:21 2002 --- src.shiar/panel.h Mon Apr 8 21:01:29 2002 *************** *** 136,142 **** extern int permission_mode; extern int filetype_mode; extern int show_mini_info; - extern int panel_scroll_pages; #define selection(p) (&(p->dir.list [p->selected])) --- 136,141 ---- diff -rct src.org/screen.c src.shiar/screen.c *** src.org/screen.c Wed Feb 6 06:14:17 2002 --- src.shiar/screen.c Mon Apr 8 20:59:50 2002 *************** *** 61,69 **** /* If true, use some usability hacks by Torben */ int torben_fj_mode = 0; - /* If true, up/down keys scroll the pane listing by pages */ - int panel_scroll_pages = 1; - /* If 1, we use permission hilighting */ int permission_mode = 0; --- 61,66 ---- *************** *** 1541,1554 **** unselect_item (panel); panel->selected++; ! if (panel->selected - panel->top_file == ITEMS (panel) && ! panel_scroll_pages){ ! /* Scroll window half screen */ ! panel->top_file += ITEMS (panel)/2; ! if (panel->top_file > panel->count - ITEMS (panel)) ! panel->top_file = panel->count - ITEMS (panel); paint_dir (panel); - select_item (panel); } select_item (panel); } --- 1538,1547 ---- unselect_item (panel); panel->selected++; ! if (panel->selected - panel->top_file == ITEMS (panel)){ ! if (panel_scroll_pages) panel->top_file += ITEMS (panel)/2; ! else panel->top_file++; paint_dir (panel); } select_item (panel); } *************** *** 1561,1570 **** unselect_item (panel); panel->selected--; ! if (panel->selected < panel->top_file && panel_scroll_pages){ ! /* Scroll window half screen */ ! panel->top_file -= ITEMS (panel)/2; ! if (panel->top_file < 0) panel->top_file = 0; paint_dir (panel); } select_item (panel); --- 1554,1562 ---- unselect_item (panel); panel->selected--; ! if (panel->selected < panel->top_file){ ! if (panel_scroll_pages) panel->top_file -= ITEMS (panel)/2; ! else panel->top_file--; paint_dir (panel); } select_item (panel); *************** *** 1574,1591 **** move_rel (WPanel *panel, int rel) { unselect_item (panel); ! ! if (rel < 0){ ! if (panel->selected + rel < 0) ! panel->selected = 0; ! else ! panel->selected = panel->selected + rel; ! } else { ! if (panel->selected + rel >= panel->count) ! panel->selected = panel->count - 1; ! else ! panel->selected = panel->selected + rel; ! } select_item (panel); } --- 1566,1573 ---- move_rel (WPanel *panel, int rel) { unselect_item (panel); ! if (rel < 0) panel->selected = panel->selected + rel; ! else panel->selected = panel->selected + rel; select_item (panel); } *************** *** 1595,1604 **** static void move_up (WPanel *panel) { ! if (panel->list_type == list_icons){ move_rel (panel, -ICONS_PER_ROW (panel)); ! } else ! do_move_up (panel); } static void --- 1577,1585 ---- static void move_up (WPanel *panel) { ! if (panel->list_type == list_icons) move_rel (panel, -ICONS_PER_ROW (panel)); ! else do_move_up (panel); } static void