Implement an NX interface to block flush message queues in multi-user mode. This is necessary to prevent stale window handles when a window is closed

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4745 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo
2012-05-17 22:16:02 +00:00
parent 7c97dbdf44
commit 3d0f071c60
20 changed files with 959 additions and 84 deletions
+15
View File
@@ -62,6 +62,7 @@
# define CONFIG_NX_NCOLORS 256
#endif
/* NXBE Definitions *********************************************************/
/* These are the values for the clipping order provided to nx_clipper */
#define NX_CLIPORDER_TLRB (0) /* Top-left-right-bottom */
@@ -70,6 +71,14 @@
#define NX_CLIPORDER_BRLT (3) /* Bottom-right-left-top */
#define NX_CLIPORDER_DEFAULT NX_CLIPORDER_TLRB
/* Window flags and helper macros */
#define NXBE_WINDOW_BLOCKED (1 << 0) /* The window is blocked and will not
* receive further input. */
#define NXBE_ISBLOCKED(wnd) (((wnd)->flags & NXBE_WINDOW_BLOCKED) != 0)
#define NXBE_SETBLOCKED(wnd) do { (wnd)->flags |= NXBE_WINDOW_BLOCKED; } while (0)
/****************************************************************************
* Public Types
****************************************************************************/
@@ -157,6 +166,12 @@ struct nxbe_window_s
struct nxgl_rect_s bounds; /* The bounding rectangle of window */
/* Window flags (see the NXBE_* bit definitions above) */
#ifdef CONFIG_NX_MULTIUSER /* Currently used only in multi-user mode */
uint8_t flags;
#endif
/* Client state information this is provide in window callbacks */
FAR void *arg;