From bfb530894bea6cd41c313bc7d23cd3a0ff253da4 Mon Sep 17 00:00:00 2001 From: ramiro Date: Tue, 21 Apr 1998 15:52:01 +0000 Subject: [PATCH] Move fe_DestroyWidgetTree() to XfeWidgets/MenuUtils.c as XfeDestroyMenuWidgetTree(). Make it safe for killing private components. git-svn-id: svn://10.0.0.236/trunk@454 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/cmd/xfe/hot.c | 23 ----------------------- mozilla/cmd/xfe/src/AttachmentMenu.cpp | 4 +++- mozilla/cmd/xfe/src/BookmarkMenu.cpp | 2 +- mozilla/cmd/xfe/src/EditRecentMenu.cpp | 2 +- mozilla/cmd/xfe/src/FolderMenu.cpp | 2 +- mozilla/cmd/xfe/src/HistoryMenu.cpp | 5 ++++- mozilla/cmd/xfe/xfe.h | 1 - 7 files changed, 10 insertions(+), 29 deletions(-) diff --git a/mozilla/cmd/xfe/hot.c b/mozilla/cmd/xfe/hot.c index eb26b4eb410..2f2a16983f1 100644 --- a/mozilla/cmd/xfe/hot.c +++ b/mozilla/cmd/xfe/hot.c @@ -73,26 +73,3 @@ fe_AddBookmarkCallback (Widget widget, XtPointer closure, XtPointer call_data) bmcontext = fe_getBookmarkContext(); BM_AppendToHeader (bmcontext, BM_GetAddHeader(bmcontext), bm); } - -void -fe_DestroyWidgetTree(Widget *widgets, int n) -{ - int i; - Widget *morekids = NULL; - int nmorekids = 0; - Widget submenu = 0; - - if (n <= 0) return; - - for (i = n-1; i >= 0; i--) { - XtVaGetValues (widgets[i], XmNsubMenuId, &submenu, 0); - if (submenu) { - XtVaGetValues (widgets[i], XmNchildren, &morekids, - XmNnumChildren, &nmorekids, 0); - if(nmorekids > 0) { - fe_DestroyWidgetTree (morekids, nmorekids); - } - } - XtDestroyWidget (widgets[i]); - } -} diff --git a/mozilla/cmd/xfe/src/AttachmentMenu.cpp b/mozilla/cmd/xfe/src/AttachmentMenu.cpp index e03bdcb4be7..37cbdc77085 100644 --- a/mozilla/cmd/xfe/src/AttachmentMenu.cpp +++ b/mozilla/cmd/xfe/src/AttachmentMenu.cpp @@ -26,6 +26,8 @@ #include "MsgView.h" #include "felocale.h" +#include // for XfeDestroyMenuWidgetTree() + XFE_AttachmentMenu::XFE_AttachmentMenu(Widget w, XFE_Frame *frame) { m_cascade = w; @@ -140,7 +142,7 @@ XFE_AttachmentMenu::update() nkids -= m_firstslot; XtUnmanageChildren (kids, nkids); - fe_DestroyWidgetTree(kids, nkids); + XfeDestroyMenuWidgetTree(kids,nkids,False); } add_attachment_menu_items(m_submenu); diff --git a/mozilla/cmd/xfe/src/BookmarkMenu.cpp b/mozilla/cmd/xfe/src/BookmarkMenu.cpp index 446c779e11f..68c1bfc23da 100644 --- a/mozilla/cmd/xfe/src/BookmarkMenu.cpp +++ b/mozilla/cmd/xfe/src/BookmarkMenu.cpp @@ -178,7 +178,7 @@ XFE_BookmarkMenu::reallyUpdateRoot() { XtUnmanageChildren(children,numChildren); - fe_DestroyWidgetTree(children,numChildren); + XfeDestroyMenuWidgetTree(children,numChildren,False); } } diff --git a/mozilla/cmd/xfe/src/EditRecentMenu.cpp b/mozilla/cmd/xfe/src/EditRecentMenu.cpp index 510c45d92bd..1a38fe79d27 100644 --- a/mozilla/cmd/xfe/src/EditRecentMenu.cpp +++ b/mozilla/cmd/xfe/src/EditRecentMenu.cpp @@ -149,7 +149,7 @@ XFE_EditRecentMenu::destroyItems() if (nkids) { XtUnmanageChildren (kids, nkids); - fe_DestroyWidgetTree(kids, nkids); + XfeDestroyMenuWidgetTree(kids,nkids,False); #ifdef DEBUG_rhess2 fprintf(stderr, "destroyItems::[ %d ]\n", nkids); #endif diff --git a/mozilla/cmd/xfe/src/FolderMenu.cpp b/mozilla/cmd/xfe/src/FolderMenu.cpp index e28aaae417b..34461ff3e34 100644 --- a/mozilla/cmd/xfe/src/FolderMenu.cpp +++ b/mozilla/cmd/xfe/src/FolderMenu.cpp @@ -275,7 +275,7 @@ XFE_FolderMenu::update() nkids -= m_firstslot; XtUnmanageChildren (kids, nkids); - fe_DestroyWidgetTree(kids, nkids); + XfeDestroyMenuWidgetTree(kids, nkids,False); } { diff --git a/mozilla/cmd/xfe/src/HistoryMenu.cpp b/mozilla/cmd/xfe/src/HistoryMenu.cpp index 5f3208c20ab..53f03954170 100644 --- a/mozilla/cmd/xfe/src/HistoryMenu.cpp +++ b/mozilla/cmd/xfe/src/HistoryMenu.cpp @@ -27,9 +27,12 @@ #include "felocale.h" #include "intl_csi.h" +#include // for XfeDestroyMenuWidgetTree() + #include "xpgetstr.h" // for XP_GetString() extern int XFE_UNTITLED; + #define MAX_ITEM_WIDTH 40 typedef struct HistoryCons { @@ -186,7 +189,7 @@ XFE_HistoryMenu::update() { XtUnmanageChildren (kids, nkids); - fe_DestroyWidgetTree(kids, nkids); + XfeDestroyMenuWidgetTree(kids, nkids,False); } } diff --git a/mozilla/cmd/xfe/xfe.h b/mozilla/cmd/xfe/xfe.h index a39089a4280..72461b48d70 100644 --- a/mozilla/cmd/xfe/xfe.h +++ b/mozilla/cmd/xfe/xfe.h @@ -574,7 +574,6 @@ extern int fe_RemoteCommands (Display *dpy, Window window, char **commands); extern XtActionsRec fe_CommandActions [], fe_MailNewsActions []; extern int fe_CommandActionsSize, fe_MailNewsActionsSize; extern void fe_UnmanageChild_safe (Widget w); -extern void fe_DestroyWidgetTree(Widget *kids, int nkids); /* * Context protection/destruction releated routines