mirror of
https://github.com/brl/mutter.git
synced 2025-05-03 15:19:38 +00:00
2008-02-12 Tomas Frydrych <tf@openedhand.com>
* clutter/x11/clutter-event-x11.c (event_translate): Ignore events directed at the stage window once they have been passed to the filter functions.
This commit is contained in:
parent
3ef9e235ef
commit
b40643b86e
@ -1,10 +1,16 @@
|
|||||||
|
2008-02-12 Tomas Frydrych <tf@openedhand.com>
|
||||||
|
|
||||||
|
* clutter/x11/clutter-event-x11.c (event_translate):
|
||||||
|
Ignore events directed at the stage window once they have been
|
||||||
|
passed to the filter functions.
|
||||||
|
|
||||||
2008-02-11 Matthew Allum <mallum@openedhand.com>
|
2008-02-11 Matthew Allum <mallum@openedhand.com>
|
||||||
|
|
||||||
* clutter/clutter-actor.c:
|
* clutter/clutter-actor.c:
|
||||||
Minor documentation tweak to class description.
|
Minor documentation tweak to class description.
|
||||||
|
|
||||||
* clutter/clutter-behaviour-scale.c:
|
* clutter/clutter-behaviour-scale.c:
|
||||||
'Force' start + end vals of scale behaviour
|
'Force' start + end vals of scale behaviour
|
||||||
(#779, Havoc Pennington)
|
(#779, Havoc Pennington)
|
||||||
|
|
||||||
2008-02-11 Emmanuele Bassi <ebassi@openedhand.com>
|
2008-02-11 Emmanuele Bassi <ebassi@openedhand.com>
|
||||||
|
@ -110,7 +110,7 @@ xembed_send_message (ClutterBackendX11 *backend_x11,
|
|||||||
Window window,
|
Window window,
|
||||||
long message,
|
long message,
|
||||||
long detail,
|
long detail,
|
||||||
long data1,
|
long data1,
|
||||||
long data2)
|
long data2)
|
||||||
{
|
{
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
@ -162,7 +162,7 @@ _clutter_backend_x11_events_init (ClutterBackend *backend)
|
|||||||
GSource *source;
|
GSource *source;
|
||||||
ClutterEventSource *event_source;
|
ClutterEventSource *event_source;
|
||||||
int connection_number;
|
int connection_number;
|
||||||
|
|
||||||
connection_number = ConnectionNumber (backend_x11->xdpy);
|
connection_number = ConnectionNumber (backend_x11->xdpy);
|
||||||
CLUTTER_NOTE (EVENT, "Connection number: %d", connection_number);
|
CLUTTER_NOTE (EVENT, "Connection number: %d", connection_number);
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ _clutter_backend_x11_events_init (ClutterBackend *backend)
|
|||||||
g_source_attach (source, NULL);
|
g_source_attach (source, NULL);
|
||||||
|
|
||||||
xembed_set_info (backend_x11,
|
xembed_set_info (backend_x11,
|
||||||
clutter_x11_get_stage_window (stage),
|
clutter_x11_get_stage_window (stage),
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,8 +231,8 @@ translate_key_event (ClutterBackend *backend,
|
|||||||
event->key.hardware_keycode = xevent->xkey.keycode;
|
event->key.hardware_keycode = xevent->xkey.keycode;
|
||||||
|
|
||||||
/* FIXME: We need to handle other modifiers rather than just shift */
|
/* FIXME: We need to handle other modifiers rather than just shift */
|
||||||
event->key.keyval =
|
event->key.keyval =
|
||||||
XKeycodeToKeysym (xevent->xkey.display,
|
XKeycodeToKeysym (xevent->xkey.display,
|
||||||
xevent->xkey.keycode,
|
xevent->xkey.keycode,
|
||||||
(event->key.modifier_state & CLUTTER_SHIFT_MASK) ? 1
|
(event->key.modifier_state & CLUTTER_SHIFT_MASK) ? 1
|
||||||
: 0);
|
: 0);
|
||||||
@ -342,8 +342,6 @@ event_translate (ClutterBackend *backend,
|
|||||||
stage_xwindow = clutter_x11_get_stage_window (stage);
|
stage_xwindow = clutter_x11_get_stage_window (stage);
|
||||||
|
|
||||||
xwindow = xevent->xany.window;
|
xwindow = xevent->xany.window;
|
||||||
if (xwindow == None)
|
|
||||||
xwindow = stage_xwindow;
|
|
||||||
|
|
||||||
if (backend_x11->event_filters)
|
if (backend_x11->event_filters)
|
||||||
{
|
{
|
||||||
@ -371,7 +369,15 @@ event_translate (ClutterBackend *backend,
|
|||||||
node = node->next;
|
node = node->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do further processing only on events for the stage window
|
||||||
|
* (the x11 filters might be getting events for other windows, so do not
|
||||||
|
* mess them about.
|
||||||
|
*/
|
||||||
|
if (xwindow != stage_xwindow)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
|
|
||||||
switch (xevent->type)
|
switch (xevent->type)
|
||||||
@ -407,7 +413,7 @@ event_translate (ClutterBackend *backend,
|
|||||||
clutter_x11_trap_x_errors ();
|
clutter_x11_trap_x_errors ();
|
||||||
XGetWindowProperty (backend_x11->xdpy, stage_xwindow,
|
XGetWindowProperty (backend_x11->xdpy, stage_xwindow,
|
||||||
backend_x11->atom_NET_WM_STATE,
|
backend_x11->atom_NET_WM_STATE,
|
||||||
0, G_MAXLONG,
|
0, G_MAXLONG,
|
||||||
False, XA_ATOM,
|
False, XA_ATOM,
|
||||||
&type, &format, &n_items,
|
&type, &format, &n_items,
|
||||||
&bytes_after, &data);
|
&bytes_after, &data);
|
||||||
@ -442,7 +448,7 @@ event_translate (ClutterBackend *backend,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
res = FALSE;
|
res = FALSE;
|
||||||
|
|
||||||
XFree (data);
|
XFree (data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -492,9 +498,9 @@ event_translate (ClutterBackend *backend,
|
|||||||
XEvent foo_xev;
|
XEvent foo_xev;
|
||||||
|
|
||||||
/* Cheap compress */
|
/* Cheap compress */
|
||||||
while (XCheckTypedWindowEvent (backend_x11->xdpy,
|
while (XCheckTypedWindowEvent (backend_x11->xdpy,
|
||||||
xevent->xexpose.window,
|
xevent->xexpose.window,
|
||||||
Expose,
|
Expose,
|
||||||
&foo_xev));
|
&foo_xev));
|
||||||
|
|
||||||
/* FIXME: need to make stage an 'actor' so can que
|
/* FIXME: need to make stage an 'actor' so can que
|
||||||
@ -533,7 +539,7 @@ event_translate (ClutterBackend *backend,
|
|||||||
event->scroll.direction = CLUTTER_SCROLL_LEFT;
|
event->scroll.direction = CLUTTER_SCROLL_LEFT;
|
||||||
else
|
else
|
||||||
event->scroll.direction = CLUTTER_SCROLL_RIGHT;
|
event->scroll.direction = CLUTTER_SCROLL_RIGHT;
|
||||||
|
|
||||||
event->scroll.time = xevent->xbutton.time;
|
event->scroll.time = xevent->xbutton.time;
|
||||||
event->scroll.x = xevent->xbutton.x;
|
event->scroll.x = xevent->xbutton.x;
|
||||||
event->scroll.y = xevent->xbutton.y;
|
event->scroll.y = xevent->xbutton.y;
|
||||||
@ -593,9 +599,9 @@ event_translate (ClutterBackend *backend,
|
|||||||
|
|
||||||
case ClientMessage:
|
case ClientMessage:
|
||||||
CLUTTER_NOTE (EVENT, "client message");
|
CLUTTER_NOTE (EVENT, "client message");
|
||||||
|
|
||||||
event->type = event->any.type = CLUTTER_CLIENT_MESSAGE;
|
event->type = event->any.type = CLUTTER_CLIENT_MESSAGE;
|
||||||
|
|
||||||
if (xevent->xclient.message_type == backend_x11->atom_XEMBED)
|
if (xevent->xclient.message_type == backend_x11->atom_XEMBED)
|
||||||
res = handle_xembed_event (backend_x11, xevent);
|
res = handle_xembed_event (backend_x11, xevent);
|
||||||
else if (xevent->xclient.message_type == backend_x11->atom_WM_PROTOCOLS)
|
else if (xevent->xclient.message_type == backend_x11->atom_WM_PROTOCOLS)
|
||||||
@ -689,7 +695,7 @@ clutter_event_dispatch (GSource *source,
|
|||||||
|
|
||||||
clutter_threads_enter ();
|
clutter_threads_enter ();
|
||||||
|
|
||||||
/* Grab the event(s), translate and figure out double click.
|
/* Grab the event(s), translate and figure out double click.
|
||||||
* The push onto queue (stack) if valid.
|
* The push onto queue (stack) if valid.
|
||||||
*/
|
*/
|
||||||
events_queue (backend);
|
events_queue (backend);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user