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,
 | 
					eek_gtk_keyboard_real_button_press_event (GtkWidget      *self,
 | 
				
			||||||
                                          GdkEventButton *event)
 | 
					                                          GdkEventButton *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    if (event->type != GDK_BUTTON_PRESS
 | 
				
			||||||
 | 
					            || event->button != 1) {
 | 
				
			||||||
 | 
					        return TRUE;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
					    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
				
			||||||
    EekKey *key;
 | 
					    EekKey *key;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    key = eek_renderer_find_key_by_position (priv->renderer,
 | 
					    key = eek_renderer_find_key_by_position (priv->renderer,
 | 
				
			||||||
                                             (gdouble)event->x,
 | 
					                                             (gdouble)event->x,
 | 
				
			||||||
                                             (gdouble)event->y);
 | 
					                                             (gdouble)event->y);
 | 
				
			||||||
    if (key)
 | 
					    if (key) {
 | 
				
			||||||
        g_signal_emit_by_name (key, "pressed", priv->keyboard);
 | 
					        g_signal_emit_by_name (key, "pressed", priv->keyboard);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // TODO: send time
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -214,12 +220,17 @@ static gboolean
 | 
				
			|||||||
eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
					eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
				
			||||||
                                            GdkEventButton *event)
 | 
					                                            GdkEventButton *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    if (event->type != GDK_BUTTON_RELEASE
 | 
				
			||||||
 | 
					            || event->button != 1) {
 | 
				
			||||||
 | 
					        return TRUE;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
					    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
				
			||||||
    GList *list, *head;
 | 
					    GList *list, *head;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    list = eek_keyboard_get_pressed_keys (priv->keyboard);
 | 
					    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_signal_emit_by_name (head->data, "released", priv->keyboard);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    g_list_free (list);
 | 
					    g_list_free (list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user