From e5cd5390a3133b14355949b5f154def83a078861 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Fri, 28 Jun 2002 19:41:21 +0000 Subject: [PATCH] (struct x_output): Add focus_state. --- src/xterm.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/xterm.h b/src/xterm.h index a0da573f800..d5b01aec97f 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -618,6 +618,11 @@ struct x_output these may differ because this does not take into account possible menubar. y_pixels_diff is with menubar height included */ int y_pixels_outer_diff; + + /* Keep track of focus. May be EXPLICIT if we received a FocusIn for this + frame, or IMPLICIT if we received an EnterNotify. + FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */ + int focus_state; }; enum @@ -631,6 +636,19 @@ enum FULLSCREEN_MOVE_WAIT = 8, }; +enum +{ + /* Values for focus_state, used as bit mask. + EXPLICIT means if we received a FocusIn for the frame and know it has + the focus. IMPLICIT means we recevied an EnterNotify and the frame + may have the focus if no window manager is running. + FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */ + FOCUS_NONE = 0, + FOCUS_IMPLICIT = 1, + FOCUS_EXPLICIT = 2 +}; + + /* Return the X window used for displaying data in frame F. */ #define FRAME_X_WINDOW(f) ((f)->output_data.x->window_desc) -- 2.39.2