(U-0002195D): Add `ideographic-structure'; add `sound@ja/on'; add
[chise/xemacs-chise.git.1] / src / device.h
index 1ef2b12..3c5dcd2 100644 (file)
@@ -48,6 +48,7 @@ struct pixel_to_glyph_translation_cache
 
 #define DEVICE_TYPE_NAME(d) ((d)->devmeths->name)
 #define DEVICE_TYPE(d) ((d)->devmeths->symbol)
+#define DEVICE_IMPL_FLAG(d, f) CONMETH_IMPL_FLAG ((d)->devmeths, (f))
 #define DEVICE_SPECIFIC_FRAME_PROPS(d) \
   ((d)->devmeths->device_specific_frame_props)
 
@@ -166,6 +167,8 @@ struct device
   unsigned int extents_changed :1;
   unsigned int faces_changed :1;
   unsigned int frame_changed :1;
+  unsigned int frame_layout_changed :1;        /* The layout of frame
+                                          elements has changed. */
   unsigned int glyphs_changed :1;
   unsigned int subwindows_changed :1;
   unsigned int subwindows_state_changed :1;
@@ -273,9 +276,7 @@ error_check_device_type (struct device *d, Lisp_Object sym)
 
 #define DEVICE_DISPLAY_P(dev)                          \
   (DEVICE_LIVE_P (dev) &&                              \
-   (MAYBE_INT_DEVMETH (dev,                            \
-                      device_implementation_flags, ()) \
-    & XDEVIMPF_IS_A_PRINTER) ? 0 : 1)
+    !DEVICE_IMPL_FLAG (dev, XDEVIMPF_IS_A_PRINTER))
 
 #define CHECK_DISPLAY_DEVICE(dev)                      \
   do {                                                 \
@@ -426,6 +427,9 @@ int valid_device_class_p (Lisp_Object class);
 #define MARK_DEVICE_FRAME_CHANGED(d)                   \
   ((void) (frame_changed = (d)->frame_changed = 1))
 
+#define MARK_DEVICE_FRAME_LAYOUT_CHANGED(d)                    \
+  ((void) (frame_layout_changed = (d)->frame_layout_changed = 1))
+
 #define MARK_DEVICE_WINDOWS_CHANGED(d)                 \
   ((void) (windows_changed = (d)->windows_changed = 1))