diff src/frame.h @ 384:bbff43aa5eb7 r21-2-7

Import from CVS: tag r21-2-7
author cvs
date Mon, 13 Aug 2007 11:08:24 +0200
parents 8626e4521993
children 74fd4e045ea6
line wrap: on
line diff
--- a/src/frame.h	Mon Aug 13 11:07:40 2007 +0200
+++ b/src/frame.h	Mon Aug 13 11:08:24 2007 +0200
@@ -32,6 +32,7 @@
 #endif
 
 #include "device.h"
+#include "glyphs.h"
 
 #define FRAME_TYPE_NAME(f) ((f)->framemeths->name)
 #define FRAME_TYPE(f) ((f)->framemeths->symbol)
@@ -89,6 +90,9 @@
 
   int modiff;
 
+  /* subwindow cache elements for this frame */
+  subwindow_cachel_dynarr *subwindow_cachels;
+
 #ifdef HAVE_SCROLLBARS
   /* frame-local scrollbar information.  See scrollbar.c. */
   int scrollbar_y_offset;
@@ -163,6 +167,7 @@
   unsigned int extents_changed :1;
   unsigned int faces_changed :1;
   unsigned int frame_changed :1;
+  unsigned int subwindows_changed :1;
   unsigned int glyphs_changed :1;
   unsigned int icon_changed :1;
   unsigned int menubar_changed :1;
@@ -311,6 +316,19 @@
     glyphs_changed = 1;					\
 } while (0)
 
+#define MARK_FRAME_SUBWINDOWS_CHANGED(f) do {		\
+  struct frame *mfgc_f = (f);				\
+  mfgc_f->subwindows_changed = 1;				\
+  mfgc_f->modiff++;					\
+  if (!NILP (mfgc_f->device))				\
+    {							\
+      struct device *mfgc_d = XDEVICE (mfgc_f->device);	\
+      MARK_DEVICE_SUBWINDOWS_CHANGED (mfgc_d);		\
+    }							\
+  else							\
+    subwindows_changed = 1;					\
+} while (0)
+
 #define MARK_FRAME_TOOLBARS_CHANGED(f) do {		\
   struct frame *mftc_f = (f);				\
   mftc_f->toolbar_changed = 1;				\
@@ -422,6 +440,11 @@
 #define FRAME_SCROLLBAR_HEIGHT(f) 0
 #endif
 
+#define FW_FRAME(obj)					\
+   (WINDOWP (obj) ? WINDOW_FRAME (XWINDOW (obj))	\
+ : (FRAMEP  (obj) ? obj						\
+ : Qnil))
+
 #define FRAME_NEW_HEIGHT(f) ((f)->new_height)
 #define FRAME_NEW_WIDTH(f) ((f)->new_width)
 #define FRAME_CURSOR_X(f) ((f)->cursor_x)
@@ -439,6 +462,7 @@
   NON_LVALUE ((f)->last_nonminibuf_window)
 #define FRAME_SB_VCACHE(f) ((f)->sb_vcache)
 #define FRAME_SB_HCACHE(f) ((f)->sb_hcache)
+#define FRAME_SUBWINDOW_CACHE(f) ((f)->subwindow_cachels)
 
 #if 0 /* FSFmacs */