コード例 #1
0
ファイル: gdkmir-debug.c プロジェクト: csoriano89/gtk-1
void
_gdk_mir_print_surface_event (const MirSurfaceEvent *event)
{
  g_printerr ("SURFACE\n");
  g_printerr (" Attribute ");
  switch (mir_surface_event_get_attribute (event))
    {
    case mir_surface_attrib_type:
      g_printerr ("type");
      break;
    case mir_surface_attrib_state:
      g_printerr ("state");
      break;
    case mir_surface_attrib_swapinterval:
      g_printerr ("swapinterval");
      break;
    case mir_surface_attrib_focus:
      g_printerr ("focus");
      break;
    default:
      g_printerr ("%u", mir_surface_event_get_attribute (event));
      break;
    }
  g_printerr ("\n");
  g_printerr (" Value %i\n", mir_surface_event_get_attribute_value (event));
}
コード例 #2
0
ファイル: mir_surface.cpp プロジェクト: ubuntu-touch-leo/mir
void MirSurface::handle_event(MirEvent const& e)
{
    std::unique_lock<decltype(mutex)> lock(mutex);

    switch (mir_event_get_type(&e))
    {
    case mir_event_type_surface:
    {
        auto sev = mir_event_get_surface_event(&e);
        auto a = mir_surface_event_get_attribute(sev);
        if (a < mir_surface_attribs)
            attrib_cache[a] = mir_surface_event_get_attribute_value(sev);
        break;
    }
    case mir_event_type_orientation:
        orientation = mir_orientation_event_get_direction(mir_event_get_orientation_event(&e));
        break;
    case mir_event_type_keymap:
    {
        xkb_rule_names names;
        mir_keymap_event_get_rules(mir_event_get_keymap_event(&e), &names);
        keymapper->set_rules(names);
        break;
    }
    case mir_event_type_resize:
    {
        if (auto_resize_stream)
        {
            auto resize_event = mir_event_get_resize_event(&e);
            buffer_stream->set_size(geom::Size{
                mir_resize_event_get_width(resize_event),
                mir_resize_event_get_height(resize_event)});
        }
        break;
    }
    default:
        break;
    };

    if (handle_event_callback)
    {
        auto callback = handle_event_callback;
        lock.unlock();
        callback(&e);
    }
}
コード例 #3
0
ファイル: gdkmireventsource.c プロジェクト: csoriano89/gtk-1
static void
handle_surface_event (GdkWindow *window, const MirSurfaceEvent *event)
{
  GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);

  switch (mir_surface_event_get_attribute (event))
    {
    case mir_surface_attrib_type:
      _gdk_mir_window_impl_set_surface_type (impl, mir_surface_event_get_attribute_value (event));
      break;
    case mir_surface_attrib_state:
      _gdk_mir_window_impl_set_surface_state (impl, mir_surface_event_get_attribute_value (event));
      // FIXME: notify
      break;
    case mir_surface_attrib_swapinterval:
      break;
    case mir_surface_attrib_focus:
      generate_focus_event (window, mir_surface_event_get_attribute_value (event) != 0);
      break;
    default:
      break;
    }
}
コード例 #4
0
void QMirClientInput::handleSurfaceEvent(const QPointer<QMirClientWindow> &window, const MirSurfaceEvent *event)
{
    auto surfaceEventAttribute = mir_surface_event_get_attribute(event);

    switch (surfaceEventAttribute) {
    case mir_surface_attrib_focus: {
        window->handleSurfaceFocusChanged(
                    mir_surface_event_get_attribute_value(event) == mir_surface_focused);
        break;
    }
    case mir_surface_attrib_visibility: {
        window->handleSurfaceExposeChange(
                    mir_surface_event_get_attribute_value(event) == mir_surface_visibility_exposed);
        break;
    }
    // Remaining attributes are ones client sets for server, and server should not override them
    case mir_surface_attrib_state: {
        MirSurfaceState state = static_cast<MirSurfaceState>(mir_surface_event_get_attribute_value(event));

        if (state == mir_surface_state_hidden) {
            window->handleSurfaceVisibilityChanged(false);
        } else {
            // it's visible!
            window->handleSurfaceVisibilityChanged(true);
            window->handleSurfaceStateChanged(mirSurfaceStateToWindowState(state));
        }
        break;
    }
    case mir_surface_attrib_type:
    case mir_surface_attrib_swapinterval:
    case mir_surface_attrib_dpi:
    case mir_surface_attrib_preferred_orientation:
    case mir_surface_attribs:
        break;
    }
}