summaryrefslogtreecommitdiff
path: root/gtk/gtkentry.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@src.gnome.org>2001-04-28 20:18:29 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-04-28 20:18:29 +0000
commit7ad364135340a4f685c1a286589d2c90ce4f757d (patch)
tree0e0fde569fefd6e012ae6ab01c21e1d2e7b8db58 /gtk/gtkentry.c
parentf06a725358e0997eaf3d02bc8257f2c3cf0043ca (diff)
downloadgtk+-7ad364135340a4f685c1a286589d2c90ce4f757d.tar.gz
voc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_previous_line): (gtk_text_layout_move_iter_to_next_line): fix these two for invisible text, lots of other stuff still hosed. * gtk/gtkcolorsel.c (gtk_color_selection_set_change_palette_hook): new function, replaces the get/set palette stuff. This function is intended for use by libgnomeui which should set the hook to a thing which sets the palette in GConf, and we need the GConf-to-xsettings proxy which will result in the change being propagated back to the GTK app. * gtk/gtkaccelgroup.c (gtk_accel_group_add): add note to warning about unusable signals that it may be because the signal has parameters. * gtk/gtkwidget.c (gtk_widget_modify_style): always copy the style, otherwise gtkrc.c won't know to create a new GtkStyle for it. (gtk_widget_modify_color_component): call gtk_widget_modify_style() so the rc style will get copied. (gtk_widget_modify_font): ditto * gtk/gtkrc.c: make a couple variables static * gtk/gtkcolorseldialog.c (gtk_color_selection_dialog_init): hide help button by default, since it does nothing * gtk/gtkcolorsel.c: add tooltips, work on key navigation, fool around with UI * gtk/gtkentry.c (gtk_entry_realize): request enter/leave notify so we can have tooltips * gtk/gtkhsv.c (gtk_hsv_realize): request enter/leave notify so we can have tooltips * gdk/gdkimage.h: mark gdk_image_new_bitmap with GDK_ENABLE_BROKEN, because its memory behavior is completely hosed. * gtk/gtknotebook.c: remove key press handler, replace with binding set, add numeric keypad support * gtk/gtktextview.c (gtk_text_view_class_init): accept KP_Delete * gtk/gtktext.c (gtk_text_key_press): add a bunch of KP keysyms * gtk/gtkentry.c (gtk_entry_class_init): accept GDK_KP_Delete in addition to plain Delete * gtk/gtktextview.c (gtk_text_view_key_press_event): accept GDK_KP_Enter in addition to GDK_Return * gtk/gtkfontsel.c (gtk_font_selection_size_key_press): connect to activate on entry instead of key press (gtk_font_selection_on_clist_key_press): get rid of this signal handler, not needed with new font sel. * gtk/gtkfilesel.c (gtk_file_selection_key_press): remove a no-longer-needed emit_stop_by_name(), just return TRUE * gtk/gtkhscrollbar.c, gtk/gtkvscrollbar.c: remove keybindings cruft, this widget is no longer focusable. * gtk/gtkrange.h, gtk/gtkrange.c, gtk/gtkvscale.c, gtk/gtkhscale.c: Get rid of trough_keys virtual function, add move_slider action signal, add binding set for vscale/hscale, in the process support numeric keypad * gtk/gtkentry.c (gtk_entry_class_init): Add keypad bindings; make GDK_Return and GDK_KP_Enter activate the entry via binding set, instead of hardcoded.
Diffstat (limited to 'gtk/gtkentry.c')
-rw-r--r--gtk/gtkentry.c51
1 files changed, 45 insertions, 6 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 193ef49124..d7ac305671 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -552,6 +552,12 @@ gtk_entry_class_init (GtkEntryClass *class)
add_move_binding (binding_set, GDK_Left, 0,
GTK_MOVEMENT_VISUAL_POSITIONS, -1);
+ add_move_binding (binding_set, GDK_KP_Right, 0,
+ GTK_MOVEMENT_VISUAL_POSITIONS, 1);
+
+ add_move_binding (binding_set, GDK_KP_Left, 0,
+ GTK_MOVEMENT_VISUAL_POSITIONS, -1);
+
add_move_binding (binding_set, GDK_f, GDK_CONTROL_MASK,
GTK_MOVEMENT_LOGICAL_POSITIONS, 1);
@@ -563,6 +569,12 @@ gtk_entry_class_init (GtkEntryClass *class)
add_move_binding (binding_set, GDK_Left, GDK_CONTROL_MASK,
GTK_MOVEMENT_WORDS, -1);
+
+ add_move_binding (binding_set, GDK_KP_Right, GDK_CONTROL_MASK,
+ GTK_MOVEMENT_WORDS, 1);
+
+ add_move_binding (binding_set, GDK_KP_Left, GDK_CONTROL_MASK,
+ GTK_MOVEMENT_WORDS, -1);
add_move_binding (binding_set, GDK_a, GDK_CONTROL_MASK,
GTK_MOVEMENT_PARAGRAPH_ENDS, -1);
@@ -581,6 +593,12 @@ gtk_entry_class_init (GtkEntryClass *class)
add_move_binding (binding_set, GDK_End, 0,
GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1);
+
+ add_move_binding (binding_set, GDK_KP_Home, 0,
+ GTK_MOVEMENT_DISPLAY_LINE_ENDS, -1);
+
+ add_move_binding (binding_set, GDK_KP_End, 0,
+ GTK_MOVEMENT_DISPLAY_LINE_ENDS, 1);
add_move_binding (binding_set, GDK_Home, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, -1);
@@ -588,12 +606,31 @@ gtk_entry_class_init (GtkEntryClass *class)
add_move_binding (binding_set, GDK_End, GDK_CONTROL_MASK,
GTK_MOVEMENT_BUFFER_ENDS, 1);
+ add_move_binding (binding_set, GDK_KP_Home, GDK_CONTROL_MASK,
+ GTK_MOVEMENT_BUFFER_ENDS, -1);
+
+ add_move_binding (binding_set, GDK_KP_End, GDK_CONTROL_MASK,
+ GTK_MOVEMENT_BUFFER_ENDS, 1);
+
+ /* Activate */
+
+ gtk_binding_entry_add_signal (binding_set, GDK_Return, 0,
+ "activate", 0);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0,
+ "activate", 0);
+
/* Deleting text */
gtk_binding_entry_add_signal (binding_set, GDK_Delete, 0,
"delete_from_cursor", 2,
GTK_TYPE_ENUM, GTK_DELETE_CHARS,
GTK_TYPE_INT, 1);
+ gtk_binding_entry_add_signal (binding_set, GDK_KP_Delete, 0,
+ "delete_from_cursor", 2,
+ GTK_TYPE_ENUM, GTK_DELETE_CHARS,
+ GTK_TYPE_INT, 1);
+
gtk_binding_entry_add_signal (binding_set, GDK_d, GDK_CONTROL_MASK,
"delete_from_cursor", 2,
GTK_TYPE_ENUM, GTK_DELETE_CHARS,
@@ -609,6 +646,11 @@ gtk_entry_class_init (GtkEntryClass *class)
GTK_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
GTK_TYPE_INT, 1);
+ gtk_binding_entry_add_signal (binding_set, GDK_KP_Delete, GDK_CONTROL_MASK,
+ "delete_from_cursor", 2,
+ GTK_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
+ GTK_TYPE_INT, 1);
+
gtk_binding_entry_add_signal (binding_set, GDK_d, GDK_MOD1_MASK,
"delete_from_cursor", 2,
GTK_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
@@ -882,7 +924,9 @@ gtk_entry_realize (GtkWidget *widget)
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON3_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK);
+ GDK_POINTER_MOTION_HINT_MASK |
+ GDK_ENTER_NOTIFY_MASK |
+ GDK_LEAVE_NOTIFY_MASK);
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
@@ -1463,11 +1507,6 @@ gtk_entry_key_press (GtkWidget *widget,
/* Activate key bindings
*/
return TRUE;
- else if (event->keyval == GDK_Return)
- {
- gtk_widget_activate (widget);
- return TRUE;
- }
return FALSE;
}