mirror of https://github.com/MidnightCommander/mc
Internal viewer no longer "jumps" when dragging the scrollbar.
Miguel.
This commit is contained in:
parent
8578ca5e2e
commit
9a938c3ae9
|
@ -1,5 +1,8 @@
|
|||
1999-02-26 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* gview.c (scrollbar_moved): Call view update here, with
|
||||
update_gui = FALSE.
|
||||
|
||||
* gdesktop.c (desktop_icon_info_open): Add needs terminal support.
|
||||
|
||||
* gnome-file-property-dialog.c (create_settings_pane): Add Needs
|
||||
|
|
|
@ -76,11 +76,11 @@ scrollbar_moved (GtkAdjustment *adj, WView *view)
|
|||
|
||||
/* To force a display */
|
||||
view->dirty = max_dirt_limit + 1;
|
||||
view_update (view);
|
||||
view_update (view, 0);
|
||||
}
|
||||
|
||||
void
|
||||
view_percent (WView *view, int p, int w)
|
||||
view_percent (WView *view, int p, int w, gboolean update_gui)
|
||||
{
|
||||
int percent;
|
||||
char buffer [40];
|
||||
|
@ -94,6 +94,9 @@ view_percent (WView *view, int p, int w)
|
|||
if (strcmp (buffer, GTK_LABEL (view->gtk_percent)->label))
|
||||
gtk_label_set (GTK_LABEL (view->gtk_percent), buffer);
|
||||
|
||||
if (!update_gui)
|
||||
return;
|
||||
|
||||
if (view->sadj){
|
||||
GtkAdjustment *adj = GTK_ADJUSTMENT (view->sadj);
|
||||
|
||||
|
@ -105,14 +108,13 @@ view_percent (WView *view, int p, int w)
|
|||
gtk_signal_emit_by_name (GTK_OBJECT (adj), "changed");
|
||||
}
|
||||
if ((int) adj->value != view->start_display){
|
||||
printf ("Value=%g s=%d\n", adj->value, view->start_display);
|
||||
gtk_adjustment_set_value (adj, view->start_display);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
view_status (WView *view)
|
||||
view_status (WView *view, gboolean update_gui)
|
||||
{
|
||||
char buffer [80];
|
||||
|
||||
|
@ -128,9 +130,9 @@ view_status (WView *view)
|
|||
gtk_label_set (GTK_LABEL (view->gtk_bytes), buffer);
|
||||
|
||||
if (view->hex_mode)
|
||||
view_percent (view, view->edit_cursor - view->first, 0);
|
||||
view_percent (view, view->edit_cursor - view->first, 0, update_gui);
|
||||
else
|
||||
view_percent (view, view->start_display - view->first, 0);
|
||||
view_percent (view, view->start_display - view->first, 0, update_gui);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
1999-02-26 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* view.c (view_percent, view_update): Take an extra argument:
|
||||
update_gui, which controls whether we want to update the displayed
|
||||
region in the GUI version.
|
||||
|
||||
1999-02-25 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* fileopctx.h file.c: Moved recursive delete query
|
||||
|
|
48
src/view.c
48
src/view.c
|
@ -352,7 +352,7 @@ put_editkey (WView *view, unsigned char key)
|
|||
node->value = byte_val;
|
||||
}
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
move_right (view);
|
||||
}
|
||||
|
||||
|
@ -645,7 +645,7 @@ view_init (WView *view, char *_command, char *_file, int start_line)
|
|||
|
||||
#ifndef HAVE_X
|
||||
void
|
||||
view_percent (WView *view, int p, int w)
|
||||
view_percent (WView *view, int p, int w, gboolean update_gui)
|
||||
{
|
||||
int percent;
|
||||
|
||||
|
@ -665,7 +665,7 @@ view_percent (WView *view, int p, int w)
|
|||
}
|
||||
|
||||
void
|
||||
view_status (WView *view)
|
||||
view_status (WView *view, gboolean update_gui)
|
||||
{
|
||||
int w = view->widget.cols - (view->have_frame * 2);
|
||||
int i;
|
||||
|
@ -695,9 +695,9 @@ view_status (WView *view)
|
|||
}
|
||||
if (w - i > 4)
|
||||
if (view->hex_mode)
|
||||
view_percent (view, view->edit_cursor - view->first, w);
|
||||
view_percent (view, view->edit_cursor - view->first, w, update_gui);
|
||||
else
|
||||
view_percent (view, view->start_display - view->first, w);
|
||||
view_percent (view, view->start_display - view->first, w, update_gui);
|
||||
}
|
||||
attrset (SELECTED_COLOR);
|
||||
}
|
||||
|
@ -1010,14 +1010,14 @@ view_place_cursor (WView *view)
|
|||
}
|
||||
|
||||
void
|
||||
view_update (WView *view)
|
||||
view_update (WView *view, gboolean update_gui)
|
||||
{
|
||||
static int dirt_limit = 1;
|
||||
|
||||
if (view->dirty > dirt_limit){
|
||||
/* Too many updates skipped -> force a update */
|
||||
display (view);
|
||||
view_status (view);
|
||||
view_status (view, update_gui);
|
||||
view->dirty = 0;
|
||||
/* Raise the update skipping limit */
|
||||
dirt_limit++;
|
||||
|
@ -1028,14 +1028,14 @@ view_update (WView *view)
|
|||
if (is_idle ()){
|
||||
/* We have time to update the screen properly */
|
||||
display (view);
|
||||
view_status (view);
|
||||
view_status (view, update_gui);
|
||||
view->dirty = 0;
|
||||
if (dirt_limit > 1)
|
||||
dirt_limit--;
|
||||
} else {
|
||||
/* We are busy -> skipping full update,
|
||||
only the status line is updated */
|
||||
view_status (view);
|
||||
view_status (view, update_gui);
|
||||
}
|
||||
/* Here we had a refresh, if fast scrolling does not work
|
||||
restore the refresh, although this should not happen */
|
||||
|
@ -1499,7 +1499,7 @@ search (WView *view, char *text, int (*search)(WView *, char *, char *, int))
|
|||
if (p >= update_activate){
|
||||
update_activate += update_steps;
|
||||
if (verbose){
|
||||
view_percent (view, p, w);
|
||||
view_percent (view, p, w, TRUE);
|
||||
mc_refresh ();
|
||||
}
|
||||
if (got_interrupt ())
|
||||
|
@ -1587,7 +1587,7 @@ block_search (WView *view, char *buffer, int len)
|
|||
if (e >= update_activate){
|
||||
update_activate += update_steps;
|
||||
if (verbose){
|
||||
view_percent (view, e, w);
|
||||
view_percent (view, e, w, TRUE);
|
||||
mc_refresh ();
|
||||
}
|
||||
if (got_interrupt ())
|
||||
|
@ -1743,7 +1743,7 @@ static void do_regexp_search (void *xview, char *regexp)
|
|||
search (view, regexp, regexp_view_search);
|
||||
/* Had a refresh here */
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
static void do_normal_search (void *xview, char *text)
|
||||
|
@ -1757,7 +1757,7 @@ static void do_normal_search (void *xview, char *text)
|
|||
search (view, text, icase_search_p);
|
||||
/* Had a refresh here */
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
/* }}} */
|
||||
|
@ -1789,7 +1789,7 @@ void toggle_wrap_mode (WView *view)
|
|||
}
|
||||
view_labels (view);
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
return;
|
||||
}
|
||||
view->wrap_mode = 1 - view->wrap_mode;
|
||||
|
@ -1805,7 +1805,7 @@ void toggle_wrap_mode (WView *view)
|
|||
}
|
||||
view_labels (view);
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
/* Both views */
|
||||
|
@ -1830,7 +1830,7 @@ toggle_hex_mode (WView *view)
|
|||
get_bottom_first (view, 1, 1);
|
||||
view_labels (view);
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
/* Both views */
|
||||
|
@ -1864,7 +1864,7 @@ goto_line (WView *view)
|
|||
}
|
||||
view->dirty++;
|
||||
view->wrap_mode = saved_wrap_mode;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
/* Both views */
|
||||
|
@ -1956,7 +1956,7 @@ change_viewer (WView *view)
|
|||
g_free (t);
|
||||
view_labels (view);
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1967,7 +1967,7 @@ change_nroff (WView *view)
|
|||
altered_nroff_flag = 1;
|
||||
view_labels (view);
|
||||
view->dirty++;
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
|
||||
/* Real view only */
|
||||
|
@ -2286,7 +2286,7 @@ real_view_event (Gpm_Event *event, void *x)
|
|||
int result;
|
||||
|
||||
if (view_event ((WView *) x, event, &result))
|
||||
view_update ((WView *) x);
|
||||
view_update ((WView *) x, TRUE);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -2397,7 +2397,7 @@ view_hook (void *v)
|
|||
|
||||
view_init (view, 0, panel->dir.list [panel->selected].fname, 0);
|
||||
display (view);
|
||||
view_status (view);
|
||||
view_status (view, TRUE);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -2417,7 +2417,7 @@ view_callback (Dlg_head *h, WView *v, int msg, int par)
|
|||
|
||||
case WIDGET_DRAW:
|
||||
display (view);
|
||||
view_status (view);
|
||||
view_status (view, TRUE);
|
||||
break;
|
||||
|
||||
case WIDGET_CURSOR:
|
||||
|
@ -2430,7 +2430,7 @@ view_callback (Dlg_head *h, WView *v, int msg, int par)
|
|||
if (view->view_quit)
|
||||
dlg_stop (h);
|
||||
else {
|
||||
view_update (view);
|
||||
view_update (view, TRUE);
|
||||
}
|
||||
return i;
|
||||
|
||||
|
@ -2439,7 +2439,7 @@ view_callback (Dlg_head *h, WView *v, int msg, int par)
|
|||
view->bottom_first = -1;
|
||||
move_to_bottom (view);
|
||||
display (view);
|
||||
view_status (view);
|
||||
view_status (view, TRUE);
|
||||
sleep (1);
|
||||
return 1;
|
||||
|
||||
|
|
|
@ -117,9 +117,9 @@ int view_init (WView *view, char *_command, char *_file, int start_line);
|
|||
int view_file (char *filename, int normal, int internal);
|
||||
|
||||
/* Internal view routines */
|
||||
void view_status (WView *);
|
||||
void view_percent (WView *, int, int);
|
||||
void view_update (WView *view);
|
||||
void view_status (WView *, gboolean update_gui);
|
||||
void view_percent (WView *, int p, int w, gboolean update_gui);
|
||||
void view_update (WView *view, gboolean update_gui);
|
||||
void view_labels (WView *view);
|
||||
int view_event (WView *view, Gpm_Event *event,int *result);
|
||||
void toggle_wrap_mode (WView *);
|
||||
|
|
Loading…
Reference in New Issue