This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch devs/devilhorns/apos
in repository efl.
View the commit online.
commit 4958612f30be2535249f2a520a37460a28423305
Author: Christopher Michael <[email protected]>
AuthorDate: Fri Feb 20 10:21:54 2026 -0600
ecore_drm2: Add APIs to get/set if a display is focused
---
src/lib/ecore_drm2/Ecore_Drm2.h | 2 ++
src/lib/ecore_drm2/ecore_drm2_displays.c | 26 ++++++++++++++++++++++++++
src/lib/ecore_drm2/ecore_drm2_private.h | 1 +
3 files changed, 29 insertions(+)
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 7448f06f2e..670af1773f 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -174,6 +174,8 @@ EAPI Eina_Bool ecore_drm2_display_blanktime_get(Ecore_Drm2_Display *disp, int se
EAPI Eina_Bool ecore_drm2_display_changes_apply(Ecore_Drm2_Display *disp);
EAPI void ecore_drm2_display_gamma_set(Ecore_Drm2_Display *disp, uint16_t size, uint16_t *red, uint16_t *greeen, uint16_t *blue);
EAPI void ecore_drm2_display_position_set(Ecore_Drm2_Display *disp, int x, int y);
+EAPI void ecore_drm2_display_focused_set(Ecore_Drm2_Display *disp, Eina_Bool focused);
+EAPI Eina_Bool ecore_drm2_display_focused_get(Ecore_Drm2_Display *disp);
/* Crtc API functions */
EAPI void ecore_drm2_crtc_geometry_get(Ecore_Drm2_Crtc *crtc, int *x, int *y, int *w, int *h);
diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c
index 18b1fdfba9..a5025beee5 100644
--- a/src/lib/ecore_drm2/ecore_drm2_displays.c
+++ b/src/lib/ecore_drm2/ecore_drm2_displays.c
@@ -1608,3 +1608,29 @@ ecore_drm2_display_position_set(Ecore_Drm2_Display *disp, int x, int y)
pstate->y = y;
pstate->changes |= ECORE_DRM2_DISPLAY_STATE_POSITION;
}
+
+EAPI void
+ecore_drm2_display_focused_set(Ecore_Drm2_Display *disp, Eina_Bool focused)
+{
+ Ecore_Drm2_Device *dev;
+ Ecore_Drm2_Display *tmp;
+ Eina_List *l;
+
+ EINA_SAFETY_ON_NULL_RETURN(disp);
+
+ if (disp->focused == focused) return;
+
+ /* reset all other displays to not focused */
+ dev = disp->dev;
+ EINA_LIST_FOREACH(dev->displays, l, tmp)
+ tmp->focused = EINA_FALSE;
+
+ disp->focused = focused;
+}
+
+EAPI Eina_Bool
+ecore_drm2_display_focused_get(Ecore_Drm2_Display *disp)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(disp, EINA_FALSE);
+ return disp->focused;
+}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 74d5a7a443..c98926c0cb 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -325,6 +325,7 @@ struct _Ecore_Drm2_Display
void *user_data;
Eina_Bool connected : 1;
+ Eina_Bool focused : 1;
};
struct _Ecore_Drm2_Connector
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.