Redrawing key after press is happening directly
This commit is contained in:
		@ -73,7 +73,7 @@ struct _EekGtkKeyboardPrivate
 | 
				
			|||||||
static EekColor * color_from_gdk_color    (GdkColor    *gdk_color);
 | 
					static EekColor * color_from_gdk_color    (GdkColor    *gdk_color);
 | 
				
			||||||
static void       on_key_pressed          (EekKeyboard *keyboard,
 | 
					static void       on_key_pressed          (EekKeyboard *keyboard,
 | 
				
			||||||
                                           EekKey      *key, guint32 timestamp,
 | 
					                                           EekKey      *key, guint32 timestamp,
 | 
				
			||||||
                                           gpointer     user_data);
 | 
					                                           EekGtkKeyboard *self);
 | 
				
			||||||
static void       on_key_released         (EekKeyboard *keyboard,
 | 
					static void       on_key_released         (EekKeyboard *keyboard,
 | 
				
			||||||
                                           EekKey      *key,
 | 
					                                           EekKey      *key,
 | 
				
			||||||
                                           gpointer     user_data);
 | 
					                                           gpointer     user_data);
 | 
				
			||||||
@ -213,6 +213,7 @@ eek_gtk_keyboard_real_button_press_event (GtkWidget      *self,
 | 
				
			|||||||
        g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
 | 
					        g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
 | 
				
			||||||
        g_signal_emit_by_name (key, "pressed"); // TODO: set the pressed property on the key instead
 | 
					        g_signal_emit_by_name (key, "pressed"); // TODO: set the pressed property on the key instead
 | 
				
			||||||
        eek_keyboard_press_key(priv->keyboard, key, event->time);
 | 
					        eek_keyboard_press_key(priv->keyboard, key, event->time);
 | 
				
			||||||
 | 
					        on_key_pressed(priv->keyboard, key, event->time, EEK_GTK_KEYBOARD(self));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // TODO: send time
 | 
					    // TODO: send time
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
@ -327,9 +328,6 @@ eek_gtk_keyboard_set_keyboard (EekGtkKeyboard *self,
 | 
				
			|||||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
					    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
				
			||||||
    priv->keyboard = g_object_ref (keyboard);
 | 
					    priv->keyboard = g_object_ref (keyboard);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    priv->key_pressed_handler =
 | 
					 | 
				
			||||||
        g_signal_connect (priv->keyboard, "key-pressed",
 | 
					 | 
				
			||||||
                          G_CALLBACK(on_key_pressed), self);
 | 
					 | 
				
			||||||
    priv->key_released_handler =
 | 
					    priv->key_released_handler =
 | 
				
			||||||
        g_signal_connect (priv->keyboard, "key-released",
 | 
					        g_signal_connect (priv->keyboard, "key-released",
 | 
				
			||||||
                          G_CALLBACK(on_key_released), self);
 | 
					                          G_CALLBACK(on_key_released), self);
 | 
				
			||||||
@ -585,18 +583,17 @@ static void
 | 
				
			|||||||
on_key_pressed (EekKeyboard *keyboard,
 | 
					on_key_pressed (EekKeyboard *keyboard,
 | 
				
			||||||
                EekKey      *key,
 | 
					                EekKey      *key,
 | 
				
			||||||
                guint32      timestamp,
 | 
					                guint32      timestamp,
 | 
				
			||||||
                gpointer     user_data)
 | 
					                EekGtkKeyboard *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    (void)keyboard;
 | 
					    (void)keyboard;
 | 
				
			||||||
    (void)timestamp;
 | 
					    (void)timestamp;
 | 
				
			||||||
    GtkWidget *widget = user_data;
 | 
					    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(self);
 | 
				
			||||||
    EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(widget);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* renderer may have not been set yet if the widget is a popup */
 | 
					    /* renderer may have not been set yet if the widget is a popup */
 | 
				
			||||||
    if (!priv->renderer)
 | 
					    if (!priv->renderer)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    render_pressed_key (widget, key);
 | 
					    render_pressed_key (GTK_WIDGET(self), key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if HAVE_LIBCANBERRA
 | 
					#if HAVE_LIBCANBERRA
 | 
				
			||||||
    ca_gtk_play_for_widget (widget, 0,
 | 
					    ca_gtk_play_for_widget (widget, 0,
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user