Ignoring section.key-pressed
This commit is contained in:
		@ -210,7 +210,9 @@ eek_gtk_keyboard_real_button_press_event (GtkWidget      *self,
 | 
				
			|||||||
                                             (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_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
 | 
				
			||||||
 | 
					        g_signal_emit_by_name (key, "pressed");
 | 
				
			||||||
 | 
					        eek_keyboard_press_key(priv->keyboard, key);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // TODO: send time
 | 
					    // TODO: send time
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
@ -229,6 +231,7 @@ eek_gtk_keyboard_real_button_release_event (GtkWidget      *self,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    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_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey released");
 | 
				
			||||||
        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);
 | 
				
			||||||
@ -258,12 +261,14 @@ eek_gtk_keyboard_real_motion_notify_event (GtkWidget      *self,
 | 
				
			|||||||
            if (head->data == key)
 | 
					            if (head->data == key)
 | 
				
			||||||
                found = TRUE;
 | 
					                found = TRUE;
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                g_signal_emit_by_name (head->data, "cancelled", priv->keyboard);
 | 
					                g_signal_emit_by_name (head->data, "cancelled");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        g_list_free (list);
 | 
					        g_list_free (list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!found)
 | 
					        if (!found) {
 | 
				
			||||||
            g_signal_emit_by_name (key, "pressed", priv->keyboard);
 | 
					            g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
 | 
				
			||||||
 | 
					            g_signal_emit_by_name (key, "pressed");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -281,8 +286,10 @@ eek_gtk_keyboard_real_unmap (GtkWidget *self)
 | 
				
			|||||||
           EekKeyboard::key-released signal can remove elements from its
 | 
					           EekKeyboard::key-released signal can remove elements from its
 | 
				
			||||||
           internal copy */
 | 
					           internal copy */
 | 
				
			||||||
        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_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey released");
 | 
				
			||||||
 | 
					            g_signal_emit_by_name (head->data, "released");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        g_list_free (list);
 | 
					        g_list_free (list);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -399,6 +406,7 @@ eek_gtk_keyboard_dispose (GObject *object)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        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_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
 | 
				
			||||||
            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);
 | 
				
			||||||
 | 
				
			|||||||
@ -43,6 +43,9 @@ typedef struct _EekKeyPrivate EekKeyPrivate;
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * EekKey:
 | 
					 * EekKey:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 | 
					 * Contains information about the state of a key.
 | 
				
			||||||
 | 
					 * TODO: rewrite as a plain struct
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 * The #EekKey structure contains only private data and should only be
 | 
					 * The #EekKey structure contains only private data and should only be
 | 
				
			||||||
 * accessed using the provided API.
 | 
					 * accessed using the provided API.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
				
			|||||||
@ -91,12 +91,18 @@ eek_modifier_key_free (EekModifierKey *modkey)
 | 
				
			|||||||
    g_slice_free (EekModifierKey, modkey);
 | 
					    g_slice_free (EekModifierKey, modkey);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key) {
 | 
				
			||||||
 | 
					    g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKeyboard key-pressed");
 | 
				
			||||||
 | 
					    g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
on_key_pressed (EekSection  *section,
 | 
					on_key_pressed (EekSection  *section,
 | 
				
			||||||
                EekKey      *key,
 | 
					                EekKey      *key,
 | 
				
			||||||
                EekKeyboard *keyboard)
 | 
					                EekKeyboard *keyboard)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
 | 
					    g_log("squeek", G_LOG_LEVEL_DEBUG, "DO NOT emit EekKeyboard key-pressed");
 | 
				
			||||||
 | 
					    //g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -104,6 +110,7 @@ on_key_released (EekSection  *section,
 | 
				
			|||||||
                 EekKey      *key,
 | 
					                 EekKey      *key,
 | 
				
			||||||
                 EekKeyboard *keyboard)
 | 
					                 EekKeyboard *keyboard)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKeyboard key-released");
 | 
				
			||||||
    g_signal_emit (keyboard, signals[KEY_RELEASED], 0, key);
 | 
					    g_signal_emit (keyboard, signals[KEY_RELEASED], 0, key);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -188,5 +188,7 @@ EekModifierKey     *eek_modifier_key_copy
 | 
				
			|||||||
void                eek_modifier_key_free
 | 
					void                eek_modifier_key_free
 | 
				
			||||||
                                     (EekModifierKey      *modkey);
 | 
					                                     (EekModifierKey      *modkey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_END_DECLS
 | 
					G_END_DECLS
 | 
				
			||||||
#endif  /* EEK_KEYBOARD_H */
 | 
					#endif  /* EEK_KEYBOARD_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -118,6 +118,7 @@ static void
 | 
				
			|||||||
on_pressed (EekKey     *key,
 | 
					on_pressed (EekKey     *key,
 | 
				
			||||||
            EekSection *section)
 | 
					            EekSection *section)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekSection key-pressed");
 | 
				
			||||||
    g_signal_emit (section, signals[KEY_PRESSED], 0, key);
 | 
					    g_signal_emit (section, signals[KEY_PRESSED], 0, key);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -125,6 +126,7 @@ static void
 | 
				
			|||||||
on_released (EekKey     *key,
 | 
					on_released (EekKey     *key,
 | 
				
			||||||
             EekSection *section)
 | 
					             EekSection *section)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekSection key-released");
 | 
				
			||||||
    g_signal_emit (section, signals[KEY_RELEASED], 0, key);
 | 
					    g_signal_emit (section, signals[KEY_RELEASED], 0, key);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -365,7 +367,9 @@ eek_section_class_init (EekSectionClass *klass)
 | 
				
			|||||||
        g_signal_new (I_("key-pressed"),
 | 
					        g_signal_new (I_("key-pressed"),
 | 
				
			||||||
                      G_TYPE_FROM_CLASS(gobject_class),
 | 
					                      G_TYPE_FROM_CLASS(gobject_class),
 | 
				
			||||||
                      G_SIGNAL_RUN_LAST,
 | 
					                      G_SIGNAL_RUN_LAST,
 | 
				
			||||||
                      G_STRUCT_OFFSET(EekSectionClass, key_pressed),
 | 
					                      // FIXME: this handler seems to be unnecessary complexity. Either remove or justify
 | 
				
			||||||
 | 
					                      // G_STRUCT_OFFSET(EekSectionClass, key_pressed),
 | 
				
			||||||
 | 
					                      0,
 | 
				
			||||||
                      NULL,
 | 
					                      NULL,
 | 
				
			||||||
                      NULL,
 | 
					                      NULL,
 | 
				
			||||||
                      g_cclosure_marshal_VOID__OBJECT,
 | 
					                      g_cclosure_marshal_VOID__OBJECT,
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user