Coding style and cosmetic fixes
This commit is contained in:
parent
0c919adf50
commit
6e9f474d90
@ -82,162 +82,190 @@ clutter_gdk_handle_event (GdkEvent *gdk_event)
|
|||||||
{
|
{
|
||||||
ClutterDeviceManager *device_manager;
|
ClutterDeviceManager *device_manager;
|
||||||
ClutterBackendGdk *backend_gdk;
|
ClutterBackendGdk *backend_gdk;
|
||||||
|
ClutterBackend *backend;
|
||||||
ClutterStage *stage = NULL;
|
ClutterStage *stage = NULL;
|
||||||
ClutterEvent *event = NULL;
|
ClutterEvent *event = NULL;
|
||||||
gint spin = 0;
|
gint spin = 0;
|
||||||
GdkFilterReturn result = GDK_FILTER_CONTINUE;
|
GdkFilterReturn result = GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
|
backend = clutter_get_default_backend ();
|
||||||
|
if (!CLUTTER_IS_BACKEND_GDK (backend))
|
||||||
|
return GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
if (gdk_event->any.window == NULL)
|
if (gdk_event->any.window == NULL)
|
||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
clutter_threads_enter ();
|
backend_gdk = CLUTTER_BACKEND_GDK (backend);
|
||||||
|
|
||||||
backend_gdk = CLUTTER_BACKEND_GDK (clutter_get_default_backend ());
|
|
||||||
stage = clutter_gdk_get_stage_from_window (gdk_event->any.window);
|
stage = clutter_gdk_get_stage_from_window (gdk_event->any.window);
|
||||||
device_manager = clutter_device_manager_get_default ();
|
device_manager = clutter_device_manager_get_default ();
|
||||||
|
|
||||||
if (stage == NULL)
|
if (stage == NULL)
|
||||||
goto out;
|
return GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
switch (gdk_event->type) {
|
clutter_threads_enter ();
|
||||||
case GDK_DELETE:
|
|
||||||
event = clutter_event_new (CLUTTER_DELETE);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_DESTROY:
|
switch (gdk_event->type)
|
||||||
event = clutter_event_new (CLUTTER_DESTROY_NOTIFY);
|
{
|
||||||
break;
|
case GDK_DELETE:
|
||||||
|
event = clutter_event_new (CLUTTER_DELETE);
|
||||||
|
break;
|
||||||
|
|
||||||
case GDK_EXPOSE:
|
case GDK_DESTROY:
|
||||||
clutter_redraw (stage);
|
event = clutter_event_new (CLUTTER_DESTROY_NOTIFY);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GDK_DAMAGE:
|
case GDK_EXPOSE:
|
||||||
/* This is handled by cogl */
|
clutter_redraw (stage);
|
||||||
goto out;
|
break;
|
||||||
|
|
||||||
case GDK_MOTION_NOTIFY:
|
case GDK_DAMAGE:
|
||||||
event = clutter_event_new (CLUTTER_MOTION);
|
/* This is handled by cogl */
|
||||||
event->motion.time = gdk_event->motion.time;
|
break;
|
||||||
event->motion.x = gdk_event->motion.x;
|
|
||||||
event->motion.y = gdk_event->motion.y;
|
|
||||||
event->motion.axes = NULL;
|
|
||||||
/* It's all X in the end, right? */
|
|
||||||
event->motion.modifier_state = gdk_event->motion.state;
|
|
||||||
event->motion.device = _clutter_device_manager_gdk_lookup_device (device_manager,
|
|
||||||
gdk_event->motion.device);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_BUTTON_PRESS:
|
case GDK_MOTION_NOTIFY:
|
||||||
case GDK_BUTTON_RELEASE:
|
event = clutter_event_new (CLUTTER_MOTION);
|
||||||
event = clutter_event_new (gdk_event->type == GDK_BUTTON_PRESS ?
|
event->motion.time = gdk_event->motion.time;
|
||||||
CLUTTER_BUTTON_PRESS :
|
event->motion.x = gdk_event->motion.x;
|
||||||
CLUTTER_BUTTON_RELEASE);
|
event->motion.y = gdk_event->motion.y;
|
||||||
event->button.time = gdk_event->button.time;
|
event->motion.axes = NULL;
|
||||||
event->button.x = gdk_event->button.x;
|
/* It's all X in the end, right? */
|
||||||
event->button.y = gdk_event->button.y;
|
event->motion.modifier_state = gdk_event->motion.state;
|
||||||
event->button.axes = NULL;
|
event->motion.device =
|
||||||
event->button.modifier_state = gdk_event->button.state;
|
_clutter_device_manager_gdk_lookup_device (device_manager,
|
||||||
event->button.button = gdk_event->button.button;
|
gdk_event->motion.device);
|
||||||
event->button.click_count = 1;
|
break;
|
||||||
event->button.device = _clutter_device_manager_gdk_lookup_device (device_manager,
|
|
||||||
gdk_event->button.device);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
case GDK_BUTTON_PRESS:
|
||||||
case GDK_3BUTTON_PRESS:
|
case GDK_BUTTON_RELEASE:
|
||||||
/* these are handled by clutter-main.c updating click_count */
|
event = clutter_event_new (gdk_event->type == GDK_BUTTON_PRESS ?
|
||||||
goto out;
|
CLUTTER_BUTTON_PRESS :
|
||||||
|
CLUTTER_BUTTON_RELEASE);
|
||||||
|
event->button.time = gdk_event->button.time;
|
||||||
|
event->button.x = gdk_event->button.x;
|
||||||
|
event->button.y = gdk_event->button.y;
|
||||||
|
event->button.axes = NULL;
|
||||||
|
event->button.modifier_state = gdk_event->button.state;
|
||||||
|
event->button.button = gdk_event->button.button;
|
||||||
|
event->button.click_count = 1;
|
||||||
|
event->button.device =
|
||||||
|
_clutter_device_manager_gdk_lookup_device (device_manager,
|
||||||
|
gdk_event->button.device);
|
||||||
|
break;
|
||||||
|
|
||||||
case GDK_KEY_PRESS:
|
case GDK_2BUTTON_PRESS:
|
||||||
case GDK_KEY_RELEASE:
|
case GDK_3BUTTON_PRESS:
|
||||||
event = clutter_event_new (gdk_event->type == GDK_KEY_PRESS ?
|
/* these are handled by clutter-main.c updating click_count */
|
||||||
CLUTTER_KEY_PRESS :
|
break;
|
||||||
CLUTTER_KEY_RELEASE);
|
|
||||||
event->key.time = gdk_event->key.time;
|
|
||||||
event->key.modifier_state = gdk_event->key.state;
|
|
||||||
event->key.keyval = gdk_event->key.keyval;
|
|
||||||
event->key.hardware_keycode = gdk_event->key.hardware_keycode;
|
|
||||||
event->key.unicode_value = g_utf8_get_char (gdk_event->key.string);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_ENTER_NOTIFY:
|
case GDK_KEY_PRESS:
|
||||||
case GDK_LEAVE_NOTIFY:
|
case GDK_KEY_RELEASE:
|
||||||
event = clutter_event_new (gdk_event->type == GDK_ENTER_NOTIFY ?
|
event = clutter_event_new (gdk_event->type == GDK_KEY_PRESS ?
|
||||||
CLUTTER_ENTER :
|
CLUTTER_KEY_PRESS :
|
||||||
CLUTTER_LEAVE);
|
CLUTTER_KEY_RELEASE);
|
||||||
event->crossing.source = CLUTTER_ACTOR (stage);
|
event->key.time = gdk_event->key.time;
|
||||||
event->crossing.time = gdk_event->crossing.time;
|
event->key.modifier_state = gdk_event->key.state;
|
||||||
event->crossing.x = gdk_event->crossing.x;
|
event->key.keyval = gdk_event->key.keyval;
|
||||||
event->crossing.y = gdk_event->crossing.y;
|
event->key.hardware_keycode = gdk_event->key.hardware_keycode;
|
||||||
|
event->key.unicode_value = g_utf8_get_char (gdk_event->key.string);
|
||||||
|
break;
|
||||||
|
|
||||||
/* XXX: no better fallback here? */
|
case GDK_ENTER_NOTIFY:
|
||||||
event->crossing.device = clutter_device_manager_get_core_device (device_manager,
|
case GDK_LEAVE_NOTIFY:
|
||||||
CLUTTER_POINTER_DEVICE);
|
event = clutter_event_new (gdk_event->type == GDK_ENTER_NOTIFY ?
|
||||||
|
CLUTTER_ENTER :
|
||||||
|
CLUTTER_LEAVE);
|
||||||
|
event->crossing.source = CLUTTER_ACTOR (stage);
|
||||||
|
event->crossing.time = gdk_event->crossing.time;
|
||||||
|
event->crossing.x = gdk_event->crossing.x;
|
||||||
|
event->crossing.y = gdk_event->crossing.y;
|
||||||
|
|
||||||
if (gdk_event->type == GDK_ENTER_NOTIFY)
|
/* XXX: no better fallback here? */
|
||||||
_clutter_stage_add_device (stage, event->crossing.device);
|
event->crossing.device =
|
||||||
else
|
clutter_device_manager_get_core_device (device_manager,
|
||||||
_clutter_stage_remove_device (stage, event->crossing.device);
|
CLUTTER_POINTER_DEVICE);
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_FOCUS_CHANGE:
|
if (gdk_event->type == GDK_ENTER_NOTIFY)
|
||||||
event = clutter_event_new (CLUTTER_STAGE_STATE);
|
_clutter_stage_add_device (stage, event->crossing.device);
|
||||||
event->stage_state.time = 0; /* XXX: there is no timestamp in this GdkEvent */
|
else
|
||||||
event->stage_state.changed_mask = CLUTTER_STAGE_STATE_ACTIVATED;
|
_clutter_stage_remove_device (stage, event->crossing.device);
|
||||||
event->stage_state.new_state = gdk_event->focus_change.in ? CLUTTER_STAGE_STATE_ACTIVATED : 0;
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_CONFIGURE:
|
case GDK_FOCUS_CHANGE:
|
||||||
clutter_actor_set_size (CLUTTER_ACTOR (stage),
|
event = clutter_event_new (CLUTTER_STAGE_STATE);
|
||||||
gdk_event->configure.width,
|
event->stage_state.time = 0; /* XXX: there is no timestamp in this GdkEvent */
|
||||||
gdk_event->configure.height);
|
event->stage_state.changed_mask = CLUTTER_STAGE_STATE_ACTIVATED;
|
||||||
break;
|
event->stage_state.new_state = gdk_event->focus_change.in
|
||||||
|
? CLUTTER_STAGE_STATE_ACTIVATED
|
||||||
|
: 0;
|
||||||
|
break;
|
||||||
|
|
||||||
case GDK_SCROLL:
|
case GDK_CONFIGURE:
|
||||||
event = clutter_event_new (CLUTTER_SCROLL);
|
|
||||||
event->scroll.time = gdk_event->scroll.time;
|
|
||||||
event->scroll.x = gdk_event->scroll.x;
|
|
||||||
event->scroll.y = gdk_event->scroll.y;
|
|
||||||
event->scroll.modifier_state = gdk_event->scroll.state;
|
|
||||||
event->scroll.axes = NULL;
|
|
||||||
event->scroll.direction = gdk_event->scroll.direction;
|
|
||||||
event->scroll.device = _clutter_device_manager_gdk_lookup_device (device_manager,
|
|
||||||
gdk_event->scroll.device);
|
|
||||||
|
|
||||||
case GDK_WINDOW_STATE:
|
|
||||||
event = clutter_event_new (CLUTTER_STAGE_STATE);
|
|
||||||
event->stage_state.changed_mask = 0;
|
|
||||||
event->stage_state.new_state = 0;
|
|
||||||
if (gdk_event->window_state.changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
|
|
||||||
{
|
{
|
||||||
event->stage_state.changed_mask |= CLUTTER_STAGE_STATE_OFFSCREEN;
|
gfloat w, h;
|
||||||
event->stage_state.new_state |= (gdk_event->window_state.new_window_state & GDK_WINDOW_STATE_WITHDRAWN) ?
|
|
||||||
CLUTTER_STAGE_STATE_OFFSCREEN : 0;
|
|
||||||
}
|
|
||||||
if (gdk_event->window_state.changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
|
|
||||||
{
|
|
||||||
event->stage_state.changed_mask |= CLUTTER_STAGE_STATE_FULLSCREEN;
|
|
||||||
event->stage_state.new_state |= (gdk_event->window_state.new_window_state & GDK_WINDOW_STATE_FULLSCREEN) ?
|
|
||||||
CLUTTER_STAGE_STATE_FULLSCREEN : 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_SETTING:
|
clutter_actor_get_size (CLUTTER_ACTOR (stage), &w, &h);
|
||||||
_clutter_backend_gdk_update_setting (backend_gdk, gdk_event->setting.name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
if (w != gdk_event->configure.width ||
|
||||||
break;
|
h != gdk_event->configure.height)
|
||||||
}
|
{
|
||||||
|
clutter_actor_set_size (CLUTTER_ACTOR (stage),
|
||||||
|
gdk_event->configure.width,
|
||||||
|
gdk_event->configure.height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GDK_SCROLL:
|
||||||
|
event = clutter_event_new (CLUTTER_SCROLL);
|
||||||
|
event->scroll.time = gdk_event->scroll.time;
|
||||||
|
event->scroll.x = gdk_event->scroll.x;
|
||||||
|
event->scroll.y = gdk_event->scroll.y;
|
||||||
|
event->scroll.modifier_state = gdk_event->scroll.state;
|
||||||
|
event->scroll.axes = NULL;
|
||||||
|
event->scroll.direction = gdk_event->scroll.direction;
|
||||||
|
event->scroll.device =
|
||||||
|
_clutter_device_manager_gdk_lookup_device (device_manager,
|
||||||
|
gdk_event->scroll.device);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GDK_WINDOW_STATE:
|
||||||
|
event = clutter_event_new (CLUTTER_STAGE_STATE);
|
||||||
|
event->stage_state.changed_mask = 0;
|
||||||
|
event->stage_state.new_state = 0;
|
||||||
|
if (gdk_event->window_state.changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
|
||||||
|
{
|
||||||
|
event->stage_state.changed_mask |= CLUTTER_STAGE_STATE_OFFSCREEN;
|
||||||
|
event->stage_state.new_state |= (gdk_event->window_state.new_window_state & GDK_WINDOW_STATE_WITHDRAWN)
|
||||||
|
? CLUTTER_STAGE_STATE_OFFSCREEN
|
||||||
|
: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gdk_event->window_state.changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
|
||||||
|
{
|
||||||
|
event->stage_state.changed_mask |= CLUTTER_STAGE_STATE_FULLSCREEN;
|
||||||
|
event->stage_state.new_state |= (gdk_event->window_state.new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
|
||||||
|
? CLUTTER_STAGE_STATE_FULLSCREEN
|
||||||
|
: 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GDK_SETTING:
|
||||||
|
_clutter_backend_gdk_update_setting (backend_gdk, gdk_event->setting.name);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (event != NULL)
|
if (event != NULL)
|
||||||
{
|
{
|
||||||
event->any.stage = stage;
|
event->any.stage = stage;
|
||||||
|
|
||||||
if (gdk_event->any.send_event)
|
if (gdk_event->any.send_event)
|
||||||
event->any.flags = CLUTTER_EVENT_FLAG_SYNTHETIC;
|
event->any.flags = CLUTTER_EVENT_FLAG_SYNTHETIC;
|
||||||
|
|
||||||
_clutter_event_push (event, FALSE);
|
_clutter_event_push (event, FALSE);
|
||||||
|
|
||||||
spin = 1;
|
spin = 1;
|
||||||
|
|
||||||
CLUTTER_NOTE (EVENT, "Translated one event from Gdk");
|
CLUTTER_NOTE (EVENT, "Translated one event from Gdk");
|
||||||
@ -257,8 +285,7 @@ clutter_gdk_handle_event (GdkEvent *gdk_event)
|
|||||||
result = GDK_FILTER_REMOVE;
|
result = GDK_FILTER_REMOVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
clutter_threads_leave ();
|
clutter_threads_leave ();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user