From 2df6e1103de30fa5c3a4e2ed7ebbc0f5bd5fbf77 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 14 Feb 2019 14:32:52 -0500 Subject: [PATCH] efl.canvas.scene: add 'seat_default' property there seems to be no other way to directly return the default seat object? ref T7584 Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D7956 --- src/lib/efl/interfaces/efl_canvas_scene.eo | 15 +++++++++++++++ src/lib/elementary/efl_ui_win.c | 6 ++++++ src/lib/elementary/efl_ui_win.eo | 1 + src/lib/evas/canvas/evas_canvas.eo | 1 + src/lib/evas/canvas/evas_device.c | 6 ++++++ 5 files changed, 29 insertions(+) diff --git a/src/lib/efl/interfaces/efl_canvas_scene.eo b/src/lib/efl/interfaces/efl_canvas_scene.eo index c98e28f0ab..77818f011a 100644 --- a/src/lib/efl/interfaces/efl_canvas_scene.eo +++ b/src/lib/efl/interfaces/efl_canvas_scene.eo @@ -191,6 +191,21 @@ interface @beta Efl.Canvas.Scene seat: Efl.Input.Device; [[The seat or $null if not found.]] } } + @property seat_default { + [[Get the default seat attached to this canvas. + + A canvas may have exactly one default seat. + + See also @.device to find a seat by name. + See also @.seat to find a seat by id. + ]] + get { + [[Get the default seat.]] + } + values { + seat: Efl.Input.Device; [[The default seat or $null if one does not exist.]] + } + } @property pointer_position { get { [[This function returns the current known pointer coordinates diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index e6f1741dfe..186c22a752 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -2616,6 +2616,12 @@ _efl_ui_win_efl_canvas_scene_device_get(const Eo *obj EINA_UNUSED, Efl_Ui_Win_Da return efl_canvas_scene_device_get(sd->evas, name); } +EOLIAN static Efl_Input_Device * +_efl_ui_win_efl_canvas_scene_seat_default_get(const Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd) +{ + return efl_canvas_scene_seat_default_get(sd->evas); +} + EOLIAN static Efl_Input_Device * _efl_ui_win_efl_canvas_scene_seat_get(const Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, int id) { diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index bb493f7285..9cf9c7b185 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -880,6 +880,7 @@ class @beta Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Ac Efl.Gfx.Hint.hint_weight { set; } Efl.Gfx.Hint.hint_size_max { set; } Efl.Text.text { get; set; } + Efl.Canvas.Scene.seat_default { get; } Efl.Canvas.Scene.pointer_position { get; } Efl.Canvas.Pointer.pointer_inside { get; } Efl.Canvas.Scene.image_max_size { get; } diff --git a/src/lib/evas/canvas/evas_canvas.eo b/src/lib/evas/canvas/evas_canvas.eo index 32e7347504..2ce9c47361 100644 --- a/src/lib/evas/canvas/evas_canvas.eo +++ b/src/lib/evas/canvas/evas_canvas.eo @@ -965,6 +965,7 @@ class Evas.Canvas extends Efl.Loop_Consumer implements Efl.Canvas.Scene, Efl.Ani Efl.Canvas.Pointer.pointer_inside { get; } Efl.Canvas.Scene.device { get; } Efl.Canvas.Scene.seat { get; } + Efl.Canvas.Scene.seat_default { get; } Efl.Canvas.Scene.image_max_size { get; } Efl.Canvas.Scene.objects_at_xy_get; Efl.Canvas.Scene.object_top_at_xy_get; diff --git a/src/lib/evas/canvas/evas_device.c b/src/lib/evas/canvas/evas_device.c index 3f52d59635..a5a28fa27b 100644 --- a/src/lib/evas/canvas/evas_device.c +++ b/src/lib/evas/canvas/evas_device.c @@ -144,6 +144,12 @@ evas_device_get(Evas *eo_e, const char *name) return efl_canvas_scene_device_get(eo_e, name); } +EOLIAN Efl_Input_Device * +_evas_canvas_efl_canvas_scene_seat_default_get(Evas *eo_e EINA_UNUSED, Evas_Public_Data *e) +{ + return e->default_seat; +} + EOLIAN Efl_Input_Device * _evas_canvas_efl_canvas_scene_seat_get(Evas *eo_e EINA_UNUSED, Evas_Public_Data *e, unsigned int id) {