backends/x11: Handle MetaSeatX11 event translation in main event handler
This is about the only reason now to go through the ClutterBackend translate_event vmethod. We can do that directly, and stop requiring the generic vmethod that is actually just used for X11 events. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153>
This commit is contained in:
parent
990a50539e
commit
b3d6ae34ee
@ -217,16 +217,6 @@ meta_clutter_backend_x11_translate_event (ClutterBackend *clutter_backend,
|
|||||||
gpointer native,
|
gpointer native,
|
||||||
ClutterEvent *event)
|
ClutterEvent *event)
|
||||||
{
|
{
|
||||||
MetaClutterBackendX11 *clutter_backend_x11 =
|
|
||||||
META_CLUTTER_BACKEND_X11 (clutter_backend);
|
|
||||||
MetaClutterBackendX11Private *priv =
|
|
||||||
meta_clutter_backend_x11_get_instance_private (clutter_backend_x11);
|
|
||||||
ClutterSeat *seat;
|
|
||||||
|
|
||||||
seat = meta_backend_get_default_seat (priv->backend);
|
|
||||||
if (meta_seat_x11_translate_event (META_SEAT_X11 (seat), native, event))
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
#include "backends/x11/meta-backend-x11.h"
|
#include "backends/x11/meta-backend-x11.h"
|
||||||
#include "backends/x11/meta-event-x11.h"
|
#include "backends/x11/meta-event-x11.h"
|
||||||
|
#include "backends/x11/meta-seat-x11.h"
|
||||||
#include "backends/x11/meta-stage-x11.h"
|
#include "backends/x11/meta-stage-x11.h"
|
||||||
#include "clutter/clutter-mutter.h"
|
#include "clutter/clutter-mutter.h"
|
||||||
#include "cogl/cogl-xlib.h"
|
#include "cogl/cogl-xlib.h"
|
||||||
@ -56,6 +57,7 @@ meta_x11_handle_event (MetaBackend *backend,
|
|||||||
MetaX11FilterReturn result;
|
MetaX11FilterReturn result;
|
||||||
ClutterBackend *clutter_backend;
|
ClutterBackend *clutter_backend;
|
||||||
ClutterEvent *event;
|
ClutterEvent *event;
|
||||||
|
MetaSeatX11 *seat_x11;
|
||||||
MetaStageX11 *stage_x11;
|
MetaStageX11 *stage_x11;
|
||||||
gint spin = 1;
|
gint spin = 1;
|
||||||
Display *xdisplay;
|
Display *xdisplay;
|
||||||
@ -74,24 +76,21 @@ meta_x11_handle_event (MetaBackend *backend,
|
|||||||
|
|
||||||
clutter_backend = meta_backend_get_clutter_backend (backend);
|
clutter_backend = meta_backend_get_clutter_backend (backend);
|
||||||
|
|
||||||
event = clutter_event_new (CLUTTER_NOTHING);
|
|
||||||
|
|
||||||
xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
|
xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
|
||||||
|
|
||||||
allocated_event = XGetEventData (xdisplay, &xevent->xcookie);
|
allocated_event = XGetEventData (xdisplay, &xevent->xcookie);
|
||||||
|
|
||||||
if (cogl_xlib_renderer_handle_event (clutter_backend->cogl_renderer,
|
if (cogl_xlib_renderer_handle_event (clutter_backend->cogl_renderer,
|
||||||
xevent) == COGL_FILTER_REMOVE)
|
xevent) == COGL_FILTER_REMOVE)
|
||||||
{
|
|
||||||
clutter_event_free (event);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
stage_x11 =
|
stage_x11 =
|
||||||
META_STAGE_X11 (clutter_backend_get_stage_window (clutter_backend));
|
META_STAGE_X11 (clutter_backend_get_stage_window (clutter_backend));
|
||||||
meta_stage_x11_handle_event (stage_x11, xevent);
|
meta_stage_x11_handle_event (stage_x11, xevent);
|
||||||
|
|
||||||
if (_clutter_backend_translate_event (clutter_backend, xevent, event))
|
event = clutter_event_new (CLUTTER_NOTHING);
|
||||||
|
seat_x11 = META_SEAT_X11 (meta_backend_get_default_seat (backend));
|
||||||
|
if (meta_seat_x11_translate_event (seat_x11, xevent, event))
|
||||||
{
|
{
|
||||||
_clutter_event_push (event, FALSE);
|
_clutter_event_push (event, FALSE);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user