XEmacs 21.2.28 "Hermes".
[chise/xemacs-chise.git.1] / src / device.h
index 1e8f0b5..8dd7d29 100644 (file)
@@ -24,8 +24,8 @@ Boston, MA 02111-1307, USA.  */
 
 /* Written by Chuck Thompson and Ben Wing. */
 
-#ifndef _XEMACS_DEVICE_H_
-#define _XEMACS_DEVICE_H_
+#ifndef INCLUDED_device_h_
+#define INCLUDED_device_h_
 
 #include "console.h"
 
@@ -168,6 +168,7 @@ struct device
   unsigned int frame_changed :1;
   unsigned int glyphs_changed :1;
   unsigned int subwindows_changed :1;
+  unsigned int subwindows_state_changed :1;
   unsigned int icon_changed :1;
   unsigned int menubar_changed :1;
   unsigned int modeline_changed :1;
@@ -220,7 +221,6 @@ DECLARE_LRECORD (device, struct device);
 #define XDEVICE(x) XRECORD (x, device, struct device)
 #define XSETDEVICE(x, p) XSETRECORD (x, p, device)
 #define DEVICEP(x) RECORDP (x, device)
-#define GC_DEVICEP(x) GC_RECORDP (x, device)
 #define CHECK_DEVICE(x) CHECK_RECORD (x, device)
 #define CONCHECK_DEVICE(x) CONCHECK_RECORD (x, device)
 
@@ -247,7 +247,7 @@ error_check_device_type (struct device *d, Lisp_Object sym)
   return d;
 }
 # define DEVICE_TYPE_DATA(d, type)                     \
-  ((struct type##_device *) (error_check_device_type (d, Q##type))->device_data)
+  ((struct type##_device *) error_check_device_type (d, Q##type)->device_data)
 #else
 # define DEVICE_TYPE_DATA(d, type)                     \
   ((struct type##_device *) (d)->device_data)
@@ -348,6 +348,9 @@ int valid_device_class_p (Lisp_Object class);
 #define MARK_DEVICE_SUBWINDOWS_CHANGED(d)                      \
   ((void) (subwindows_changed = (d)->subwindows_changed = 1))
 
+#define MARK_DEVICE_SUBWINDOWS_STATE_CHANGED(d)                \
+  ((void) (subwindows_state_changed = (d)->subwindows_state_changed = 1))
+
 #define MARK_DEVICE_TOOLBARS_CHANGED(d)                        \
   ((void) (toolbar_changed = (d)->toolbar_changed = 1))
 
@@ -365,6 +368,14 @@ int valid_device_class_p (Lisp_Object class);
   MARK_DEVICE_FACES_CHANGED (mdffc_d);                 \
 } while (0)
 
+#define MARK_DEVICE_FRAMES_GLYPHS_CHANGED(d) do {      \
+  struct device *mdffc_d = (d);                                \
+  Lisp_Object frmcons;                                 \
+  DEVICE_FRAME_LOOP (frmcons, mdffc_d)                 \
+    XFRAME (XCAR (frmcons))->glyphs_changed = 1;               \
+  MARK_DEVICE_GLYPHS_CHANGED (mdffc_d);                \
+} while (0)
+
 #define MARK_DEVICE_FRAME_CHANGED(d)                   \
   ((void) (frame_changed = (d)->frame_changed = 1))
 
@@ -409,4 +420,4 @@ void set_device_selected_frame (struct device *d, Lisp_Object frame);
 Lisp_Object domain_device_type (Lisp_Object domain);
 int window_system_pixelated_geometry (Lisp_Object domain);
 
-#endif /* _XEMACS_DEVICE_H_ */
+#endif /* INCLUDED_device_h_ */