ncurses 6.2 - patch 20200308
[ncurses.git] / panel / panel.priv.h
index ce4f98937fc91c7a5f6677d8cfdb29edf3e821f5..c8e3ea798f9d83cfdad52226e13042f54a74ce0b 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998-2014,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * authorization.                                                           *
  ****************************************************************************/
 
-/* $Id: panel.priv.h,v 1.23 2009/04/11 20:33:55 tom Exp $ */
+/* $Id: panel.priv.h,v 1.28 2020/02/02 23:34:34 tom Exp $ */
 
 #ifndef NCURSES_PANEL_PRIV_H
 #define NCURSES_PANEL_PRIV_H 1
+/* *INDENT-OFF* */
 
 #if HAVE_CONFIG_H
 #  include <ncurses_cfg.h>
 struct screen;              /* forward declaration */
 
 #include "curses.priv.h"    /* includes nc_panel.h */
-#include "panel.h"
-
 
-#if USE_RCS_IDS
-#  define MODULE_ID(id) static const char Ident[] = id;
-#else
-#  define MODULE_ID(id) /*nothing*/
-#endif
+#define NCURSES_OPAQUE_PANEL 0
 
+#include "panel.h"
 
 #ifdef TRACE
    extern NCURSES_EXPORT(const char *) _nc_my_visbuf (const void *);
@@ -60,7 +57,7 @@ struct screen;              /* forward declaration */
 #    define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
 #  endif
 
-#  define returnPanel(code)    TRACE_RETURN(code,panel)
+#  define returnPanel(code)    TRACE_RETURN1(code,panel)
 
    extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
    extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
@@ -89,7 +86,7 @@ struct screen;              /* forward declaration */
 #define GetScreenHook(sp) \
                        struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp)
 #define GetPanelHook(pan) \
-                       GetScreenHook(_nc_screen_of((pan)->win))
+                       GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0)
 #define GetWindowHook(win) \
                        SCREEN* sp = _nc_screen_of(win); \
                        GetScreenHook(sp)
@@ -160,7 +157,7 @@ struct screen;              /* forward declaration */
 ---------------------------------------------------------------------------*/
 #define PANEL_UPDATE(pan,panstart)\
 {  PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
-   while(pan2) {\
+   while(pan2 && pan2->win) {\
       if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
         int y, ix1, ix2, iy1, iy2;\
         COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\
@@ -210,5 +207,6 @@ struct screen;              /* forward declaration */
 /* These may become later renamed and part of panel.h and the public API */
 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*);
 #endif
+/* *INDENT-ON* */
 
 #endif /* NCURSES_PANEL_PRIV_H */