Exemplo n.º 1
0
uint8_t
Keyboard__get_report(USB_KeyboardReport_Data_t *report_data)
{
  reset();

#ifdef STDOUT_TO_KBREPORT
  if (!stdout_is_empty())
    stdout_to_report_queue();
#endif

  KeyboardReport *report = NULL;

  if (ReportQueue__is_empty())
  {
    scan_matrix();
    init_active_keys();

    if (!kb.error_roll_over && (report = ReportQueue__push()))
    {
      do
        update_bindings(report);
      while (momentary_mode_engaged() || modifier_keys_engaged(report));
      process_keys(report);
    }
  }

  report = ReportQueue__pop();
  return fill_report(report, report_data);
}
Exemplo n.º 2
0
void
athena_navigation_state_set_master (AthenaNavigationState *self,
                                    GtkActionGroup *master)
{
    if (self->priv->master != master) {
        clear_bindings (self);

        g_clear_object (&self->priv->master);
        self->priv->master = g_object_ref (master);

        update_bindings (self);

        g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MASTER]);
    }
}