summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorpatthoyts <patthoyts@users.sourceforge.net>2008-11-15 00:00:27 (GMT)
committerpatthoyts <patthoyts@users.sourceforge.net>2008-11-15 00:00:27 (GMT)
commit4c0836f8ae0a1a68edf876a7bcce826b8518d658 (patch)
tree0cd171a59f6750b740f05dea59cfa718220543b3 /generic
parent080a0c2bef5e33ed37734a26d0647ea309cc3ea2 (diff)
downloadtk-4c0836f8ae0a1a68edf876a7bcce826b8518d658.zip
tk-4c0836f8ae0a1a68edf876a7bcce826b8518d658.tar.gz
tk-4c0836f8ae0a1a68edf876a7bcce826b8518d658.tar.bz2
bug 2239034: restrict [wm manage] to Frame type widgets
Diffstat (limited to 'generic')
-rw-r--r--generic/tk.h7
-rw-r--r--generic/tkFrame.c8
2 files changed, 13 insertions, 2 deletions
diff --git a/generic/tk.h b/generic/tk.h
index 516205b..0144e61 100644
--- a/generic/tk.h
+++ b/generic/tk.h
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tk.h,v 1.124 2008/11/12 00:15:26 nijtmans Exp $
+ * RCS: @(#) $Id: tk.h,v 1.125 2008/11/15 00:00:27 patthoyts Exp $
*/
#ifndef _TK
@@ -721,6 +721,8 @@ typedef XActivateDeactivateEvent XDeactivateEvent;
(((Tk_FakeWin *) (tkwin))->flags & TK_WIN_MANAGED)
#define Tk_TopWinHierarchy(tkwin) \
(((Tk_FakeWin *) (tkwin))->flags & TK_TOP_HIERARCHY)
+#define Tk_IsManageable(tkwin) \
+ (((Tk_FakeWin *) (tkwin))->flags & TK_WM_MANAGEABLE)
#define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth)
#define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight)
/* Tk_InternalBorderWidth is deprecated */
@@ -856,6 +858,8 @@ typedef struct Tk_FakeWin {
* TK_PROP_PROPCHANGE 1 means that PropertyNotify events in the
* window's children should propagate up to this
* window.
+ * TK_WM_MANAGEABLE 1 marks a window as capable of being converted
+ * into a toplevel using [wm manage].
*/
#define TK_MAPPED 1
@@ -877,6 +881,7 @@ typedef struct Tk_FakeWin {
#define TK_WIN_MANAGED 0x10000
#define TK_TOP_HIERARCHY 0x20000
#define TK_PROP_PROPCHANGE 0x40000
+#define TK_WM_MANAGEABLE 0x80000
/*
*----------------------------------------------------------------------
diff --git a/generic/tkFrame.c b/generic/tkFrame.c
index 472c8ca..4ff8866 100644
--- a/generic/tkFrame.c
+++ b/generic/tkFrame.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkFrame.c,v 1.36 2008/11/08 22:52:29 dkf Exp $
+ * RCS: @(#) $Id: tkFrame.c,v 1.37 2008/11/15 00:00:27 patthoyts Exp $
*/
#include "default.h"
@@ -556,6 +556,12 @@ CreateFrame(
}
if (newWin == NULL) {
goto error;
+ } else {
+ /*
+ * Mark Tk frames as suitable candidates for [wm manage]
+ */
+ TkWindow *winPtr = (TkWindow *)newWin;
+ winPtr->flags |= TK_WM_MANAGEABLE;
}
if (className == NULL) {
className = Tk_GetOption(newWin, "class", "Class");