4.10 Removing Decorations
If a frame does not wish to be controlled by the window manager, and thus have no window
manager decorations such as resize corners or pins, the frame should set
WIN_TOP_LEVEL_NO_DECOR to TRUE. This attribute is only valid when the frame is created.
For more information, see the discussion of override_redirect in Volume One, Xlib
4.11 Setting Properties and Saving Command-line Options
Several frame attributes support setting window properties according to the speciﬁcations of
the ICCCM (see Volume Zero, X Protocol Reference Manual, for more information on
ICCCM). These attributes support the WM_SAVE_YOURSELF and WM_COMMAND protocols that
set an application’s startup options. Also refer to Section 20.9.5, “Modifying A Frame’s
Destruction,” for more information on saving command-line options.
FRAME_WM_COMMAND_ARGC_ARGV lets an application set the command-line options that can
be used to (re)start it. The options passed, in addition to XView options, are stored on a
WM_COMMAND on the frame window. The options passed are stored by XView
and will be added to the XView options on the WM_COMMAND property on the frame window,
upon receiving a WM_SAVE_YOURSELF request from the session/window manager. The pro-
gram xprop can be used to display a window’s properties. Only one base frame window of
the application needs to have this property set. This property is read possibly by a session
manager to restart clients. The ﬁrst argument is the number of strings passed in the second
argument. The second argument is a pointer to an array containing the command-line option
strings. The strings passed are copied and cached on the frame. The following code shows
an example using FRAME_WM_COMMAND_ARGC_ARGV.
int argc = 0;
argv[argc++] = "-I"
argv[argc++] = "ls"
argv[argc++] = "-bold_font"
argv[argc++] = "courier-bold-14"
* This ensures that the above options are stored
* on the base frame
argc, argv, NULL);
Setting this attribute’s arguments to NULL and -1 prevents any command-line option informa-
tion from being saved on the frame. If there are two or more base frames in the application,
the second and subsequent base frames should set their FRAME_WM_COMMAND_ARGC_ARGV
attributes’ arguments to NULL and -1 if they want to avoid multiple invocations of the same
application by the session manager.
78 XView Programming Manual