]> code.delx.au - gnu-emacs/commitdiff
(struct x_output): Add focus_state.
authorJan Djärv <jan.h.d@swipnet.se>
Fri, 28 Jun 2002 19:41:21 +0000 (19:41 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Fri, 28 Jun 2002 19:41:21 +0000 (19:41 +0000)
src/xterm.h

index a0da573f800c3919ba16901a08abb71bad45615b..d5b01aec97f5875138fb71972fd34f1c1d13a7a8 100644 (file)
@@ -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)