changeset 46075:39e3c9d9b655

(struct x_output): Add focus_state.
author Jan Djärv <jan.h.d@swipnet.se>
date Fri, 28 Jun 2002 19:41:21 +0000
parents 9bdcd2b36fbd
children 819af351608b
files src/xterm.h
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.h	Fri Jun 28 18:50:36 2002 +0000
+++ b/src/xterm.h	Fri Jun 28 19:41:21 2002 +0000
@@ -618,6 +618,11 @@
      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 @@
   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)