Ignore multi-clicks and non-left-buttons
This commit is contained in:
		@ -199,14 +199,20 @@ static gboolean
 | 
			
		||||
eek_gtk_keyboard_real_button_press_event (GtkWidget      *self,
 | 
			
		||||
                                          GdkEventButton *event)
 | 
			
		||||
{
 | 
			
		||||
    if (event->type != GDK_BUTTON_PRESS
 | 
			
		||||
            || event->button != 1) {
 | 
			
		||||
        return TRUE;
 | 
			
		||||
    }
 | 
			
		||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
			
		||||
    EekKey *key;
 | 
			
		||||
 | 
			
		||||
    key = eek_renderer_find_key_by_position (priv->renderer,
 | 
			
		||||
                                             (gdouble)event->x,
 | 
			
		||||
                                             (gdouble)event->y);
 | 
			
		||||
    if (key)
 | 
			
		||||
    if (key) {
 | 
			
		||||
        g_signal_emit_by_name (key, "pressed", priv->keyboard);
 | 
			
		||||
    }
 | 
			
		||||
    // TODO: send time
 | 
			
		||||
    return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -214,12 +220,17 @@ static gboolean
 | 
			
		||||
eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
			
		||||
                                            GdkEventButton *event)
 | 
			
		||||
{
 | 
			
		||||
    if (event->type != GDK_BUTTON_RELEASE
 | 
			
		||||
            || event->button != 1) {
 | 
			
		||||
        return TRUE;
 | 
			
		||||
    }
 | 
			
		||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
			
		||||
    GList *list, *head;
 | 
			
		||||
 | 
			
		||||
    list = eek_keyboard_get_pressed_keys (priv->keyboard);
 | 
			
		||||
    for (head = list; head; head = g_list_next (head))
 | 
			
		||||
    for (head = list; head; head = g_list_next (head)) {
 | 
			
		||||
        g_signal_emit_by_name (head->data, "released", priv->keyboard);
 | 
			
		||||
    }
 | 
			
		||||
    g_list_free (list);
 | 
			
		||||
 | 
			
		||||
    return TRUE;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user