diff options
Diffstat (limited to 'mixgtk')
| -rw-r--r-- | mixgtk/mixgtk_cmd_dispatcher.c | 18 | 
1 files changed, 12 insertions, 6 deletions
diff --git a/mixgtk/mixgtk_cmd_dispatcher.c b/mixgtk/mixgtk_cmd_dispatcher.c index 1ea7df7..6b7517a 100644 --- a/mixgtk/mixgtk_cmd_dispatcher.c +++ b/mixgtk/mixgtk_cmd_dispatcher.c @@ -1,7 +1,7 @@  /* -*-c-*- -------------- mixgtk_cmd_dispatcher.c :   * Implementation of the functions declared in mixgtk_cmd_dispatcher.h   * ------------------------------------------------------------------ - * $Id: mixgtk_cmd_dispatcher.c,v 1.19 2004/07/04 22:34:15 jao Exp $ + * $Id: mixgtk_cmd_dispatcher.c,v 1.20 2004/07/10 23:14:42 jao Exp $   * ------------------------------------------------------------------   * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.   * @@ -474,7 +474,10 @@ complete_command_ (void)  	    gtk_text_buffer_insert_at_cursor (buf, "\n", -1);  	}        else -	gtk_text_buffer_insert_at_cursor (buf, " ", -1); +        { +          gint pos = strlen (prefix); +          gtk_editable_insert_text (GTK_EDITABLE (entry), " ", 1, &pos); +        }        flush_log_ (&dis_data_);      }  } @@ -483,6 +486,7 @@ int  on_command_prompt_key_press_event (GtkEntry *w, GdkEventKey *e, gpointer d)  {    guint key = e->keyval; +  gboolean result = FALSE;  #ifdef HAVE_LIBHISTORY    HIST_ENTRY *entry = NULL; @@ -491,24 +495,26 @@ on_command_prompt_key_press_event (GtkEntry *w, GdkEventKey *e, gpointer d)        entry = previous_history ();        if (entry && entry->line)  	gtk_entry_set_text (w, entry->line); -      return TRUE; +      result = TRUE;      }    if (key == GDK_Down)      {        entry = next_history ();        if (entry && entry->line)  	gtk_entry_set_text (w, entry->line); -      return TRUE; +      result = TRUE;      }  #endif    if (key == GDK_Tab)      {        complete_command_ (); -      return TRUE; +      result = TRUE;      } -  return FALSE; +  if (result) gtk_editable_set_position (GTK_EDITABLE (w), -1); + +  return result;  }  void  | 
