summaryrefslogtreecommitdiff
path: root/gtk/gtksocket.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-08-01 19:51:05 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-08-01 19:51:05 +0000
commitf149c99977f6f83603e2c3b418bf9f149bfbc1b7 (patch)
tree3282714add1de9dbe4c5fe0a8321114152301df6 /gtk/gtksocket.c
parent4fbca22e4a81c570a86765ee3375fe22a80806bb (diff)
downloadgtk+-f149c99977f6f83603e2c3b418bf9f149bfbc1b7.tar.gz
Patch from Denis Mikhalkin to forward KeyRelease events as well as
Fri Aug 1 15:33:59 2003 Owen Taylor <otaylor@redhat.com> * gtk/gtksocket.c: Patch from Denis Mikhalkin to forward KeyRelease events as well as KeyPress events. (#115597)
Diffstat (limited to 'gtk/gtksocket.c')
-rw-r--r--gtk/gtksocket.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gtk/gtksocket.c b/gtk/gtksocket.c
index 60ef6b64db..7469a4745f 100644
--- a/gtk/gtksocket.c
+++ b/gtk/gtksocket.c
@@ -64,7 +64,7 @@ static void gtk_socket_hierarchy_changed (GtkWidget *widget,
GtkWidget *old_toplevel);
static void gtk_socket_grab_notify (GtkWidget *widget,
gboolean was_grabbed);
-static gboolean gtk_socket_key_press_event (GtkWidget *widget,
+static gboolean gtk_socket_key_event (GtkWidget *widget,
GdkEventKey *event);
static void gtk_socket_claim_focus (GtkSocket *socket,
gboolean send_event);
@@ -194,7 +194,8 @@ gtk_socket_class_init (GtkSocketClass *class)
widget_class->size_allocate = gtk_socket_size_allocate;
widget_class->hierarchy_changed = gtk_socket_hierarchy_changed;
widget_class->grab_notify = gtk_socket_grab_notify;
- widget_class->key_press_event = gtk_socket_key_press_event;
+ widget_class->key_press_event = gtk_socket_key_event;
+ widget_class->key_release_event = gtk_socket_key_event;
widget_class->focus = gtk_socket_focus;
container_class->remove = gtk_socket_remove;
@@ -778,8 +779,8 @@ gtk_socket_grab_notify (GtkWidget *widget,
}
static gboolean
-gtk_socket_key_press_event (GtkWidget *widget,
- GdkEventKey *event)
+gtk_socket_key_event (GtkWidget *widget,
+ GdkEventKey *event)
{
GtkSocket *socket = GTK_SOCKET (widget);
@@ -788,7 +789,7 @@ gtk_socket_key_press_event (GtkWidget *widget,
GdkScreen *screen = gdk_drawable_get_screen (socket->plug_window);
XEvent xevent;
- xevent.xkey.type = KeyPress;
+ xevent.xkey.type = (event->type == GDK_KEY_PRESS) ? KeyPress : KeyRelease;
xevent.xkey.window = GDK_WINDOW_XWINDOW (socket->plug_window);
xevent.xkey.root = GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (screen));
xevent.xkey.time = event->time;