Changed behavior so that motion keys remove selection.
Added new gtk_entry_select_region () call.
-owt
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
+ Fixed problem with deleting while text is selected.
+ Changed behavior so that motion keys remove selection.
+ Added new gtk_entry_select_region () call.
+
+Sat Jan 3 20:23:25 1998 Owen Taylor <owt1@cornell.edu>
+ * glib/glib.h: Changed guint32 -> guint for bitfields.
+ (Bitfields must be int or unsigned int?)
+
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
static void gtk_delete_selection (GtkEntry *entry);
static void gtk_select_word (GtkEntry *entry);
static void gtk_select_line (GtkEntry *entry);
-static void gtk_select_region (GtkEntry *entry,
- gint start,
- gint end);
static void gtk_entry_cut_clipboard (GtkEntry *entry,
GdkEventKey *event);
static void gtk_entry_copy_clipboard (GtkEntry *entry,
gtk_grab_add (widget);
tmp_pos = gtk_entry_position (entry, event->x + entry->scroll_offset);
- gtk_select_region (entry, tmp_pos, tmp_pos);
+ gtk_entry_select_region (entry, tmp_pos, tmp_pos);
entry->current_pos = entry->selection_start_pos;
- gtk_entry_queue_draw (entry);
break;
case GDK_2BUTTON_PRESS:
gtk_select_word (entry);
- gtk_entry_queue_draw (entry);
break;
case GDK_3BUTTON_PRESS:
gtk_select_line (entry);
- gtk_entry_queue_draw (entry);
break;
default:
gtk_grab_add (widget);
tmp_pos = gtk_entry_position (entry, event->x + entry->scroll_offset);
- gtk_select_region (entry, tmp_pos, tmp_pos);
+ gtk_entry_select_region (entry, tmp_pos, tmp_pos);
entry->have_selection = FALSE;
entry->current_pos = entry->selection_start_pos;
- gtk_entry_queue_draw (entry);
}
}
entry->selection_end_pos = entry->current_pos;
}
}
+ else
+ {
+ entry->selection_start_pos = 0;
+ entry->selection_end_pos = 0;
+ }
/* alex stuff */
if (entry->selection_start_pos != entry->selection_end_pos)
}
if (reselect)
- gtk_select_region (entry, old_pos, entry->current_pos);
+ gtk_entry_select_region (entry, old_pos, entry->current_pos);
gtk_entry_queue_draw (entry);
}
g_return_if_fail (entry != NULL);
g_return_if_fail (GTK_IS_ENTRY (entry));
+ if (entry->selection_start_pos > start_pos)
+ entry->selection_start_pos -= MIN(end_pos, entry->selection_start_pos) - start_pos;
+ if (entry->selection_end_pos > start_pos)
+ entry->selection_end_pos -= MIN(end_pos, entry->selection_end_pos) - start_pos;
+
if ((start_pos < end_pos) &&
(start_pos >= 0) &&
(end_pos <= entry->text_length))
gtk_move_forward_word (entry);
end_pos = entry->current_pos;
- gtk_select_region (entry, start_pos, end_pos);
+ gtk_entry_select_region (entry, start_pos, end_pos);
}
static void
gtk_select_line (GtkEntry *entry)
{
- gtk_select_region (entry, 0, entry->text_length);
+ gtk_entry_select_region (entry, 0, entry->text_length);
entry->current_pos = entry->selection_end_pos;
}
-static void
-gtk_select_region (GtkEntry *entry,
+void
+gtk_entry_select_region (GtkEntry *entry,
gint start,
gint end)
{
entry->have_selection = TRUE;
+
entry->selection_start_pos = start;
entry->selection_end_pos = end;
+
+ gtk_widget_queue_draw (GTK_WIDGET (entry));
}
static void
};
-guint gtk_entry_get_type (void);
-GtkWidget* gtk_entry_new (void);
-GtkWidget* gtk_entry_new_with_max_length (guint16 max);
-void gtk_entry_set_text (GtkEntry *entry,
- const gchar *text);
-void gtk_entry_append_text (GtkEntry *entry,
- const gchar *text);
-void gtk_entry_prepend_text (GtkEntry *entry,
- const gchar *text);
-void gtk_entry_set_position (GtkEntry *entry,
- gint position);
-gchar* gtk_entry_get_text (GtkEntry *entry);
-void gtk_entry_set_visibility (GtkEntry *entry,
+guint gtk_entry_get_type (void);
+GtkWidget* gtk_entry_new (void);
+GtkWidget* gtk_entry_new_with_max_length (guint16 max);
+void gtk_entry_set_text (GtkEntry *entry,
+ const gchar *text);
+void gtk_entry_append_text (GtkEntry *entry,
+ const gchar *text);
+void gtk_entry_prepend_text (GtkEntry *entry,
+ const gchar *text);
+void gtk_entry_set_position (GtkEntry *entry,
+ gint position);
+gchar* gtk_entry_get_text (GtkEntry *entry);
+void gtk_entry_select_region (GtkEntry *entry,
+ gint start,
+ gint end);
+void gtk_entry_set_visibility (GtkEntry *entry,
gint visible);
entry = gtk_entry_new ();
/* gtk_widget_set_usize (entry, 0, 25); */
gtk_entry_set_text (GTK_ENTRY (entry), "hello world");
+ gtk_entry_select_region (GTK_ENTRY (entry),
+ 0, GTK_ENTRY(entry)->text_length);
gtk_box_pack_start (GTK_BOX (box2), entry, TRUE, TRUE, 0);
gtk_widget_show (entry);
entry = gtk_entry_new ();
/* gtk_widget_set_usize (entry, 0, 25); */
gtk_entry_set_text (GTK_ENTRY (entry), "hello world");
+ gtk_entry_select_region (GTK_ENTRY (entry),
+ 0, GTK_ENTRY(entry)->text_length);
gtk_box_pack_start (GTK_BOX (box2), entry, TRUE, TRUE, 0);
gtk_widget_show (entry);