| Title: | DECWINDOWS 26-JAN-89 to 29-NOV-90 | 
| Notice: | See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit | 
| Moderator: | STAR::VATNE | 
| Created: | Mon Oct 30 1989 | 
| Last Modified: | Mon Dec 31 1990 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 3726 | 
| Total number of notes: | 19516 | 
    Also, move this to programming if it is still around...
    
    What XLIB calls can I make to force a window to be sticky?
    
    I can't seem to find any documentation on this anywhere except
    maybe with UIL. But there must be a counterpart XLIB - I reason?
    
    thanks,
    jjjones
| T.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 971.1 | AITG::DERAMO | Daniel V. {AITG,ZFC}:: D'Eramo | Sat Jun 17 1989 21:13 | 5 | |
|      Do you mean the DECwindows window manager "sticky"
     with the push-to-back button/decoration/whatever?
     
     Dan
 | |||||
| 971.2 | I would think you would... | NEURON::NICHOLSON | A belly as big as an oil spill | Sun Jun 18 1989 15:42 | 7 | 
|     Create a DECWmHints property on your top level window.  You load this
    property with a DECWmHintsRec structure in which you set the "sticky"
    field to true and the DECWmStickyMask bit in the "value_mask" field. 
    I don't know if there is a convenience routine to do this or not
    and am at home with no documentation.
 | |||||
| 971.3 | Making the Icon Box sticky from XDEFAULTS.DAT | PVX::VANSICLEN | WS Program Office <ML5-2/P60> 223-6310 | Thu Jun 22 1989 08:20 | 17 | 
| Talking of sticky... I want to have just myIcon Box startup as being sticky. So, in my SYS$LOGIN:DECW$XDEFAULTS.DAT I tried - wm*sticky: true This set ALL windows sticky. No good. So then I tried... wm*iconBox.sticky: true This doesn't do anything. What am I doing wrong? All my other modifactions to the Icon Box work. Many thanks - garrett | |||||
| 971.4 | Mostly useful solution | CASEE::CLEOVOULOU | Marios Cleovoulou | Thu Jun 22 1989 10:36 | 12 | 
|     Well, I use the following, which seems to catch _most_ cases.  I still
    get some apps (like FileView, for instance) that come up sticky though.
    
	*sticky:	False
	*Sticky:	False
	wm*sticky:	True
	wm*Sticky:	True
    
    Regards,
    
    Marios
 | |||||
| 971.5 | How to get sticky from XLIB | ISOSPN::HIRST | Lean, Mean, Fast | Fri Oct 13 1989 08:39 | 59 | 
| I asked almost the same thing in the DECwindows programming conf yesterday
(because I could not get in here). Since then I have worked out the solution
for myself so here is the note I put in the other conf.
Note the DEC_WM_HINTS property is used to set sticky windows.
    <<< HARBOR::SHPLOG$DUA1:[NOTES$LIBRARY]DECWINDOWS_PROGRAMMING.NOTE;1 >>>
                    -< DECwindows Programming hints/kinks >-
================================================================================
Note 479.4            Window Manager DEC_WM_HINTS property                4 of 4
ISOSPN::HIRST "Lean, Mean, Fast"                     45 lines  13-OCT-1989 07:04
                           -< I've found the format >-
--------------------------------------------------------------------------------
Just to let anybody else who wants to know how to do something similar I have
found the format of the DEC_WM_HINTS property.
It is in 32 bit format with 9 elements, each element corresponds to a field in
the DECWmHintsRec data structure (extracted from DECWMHINTS.H)
typedef struct {
	unsigned long value_mask;
	Pixmap iconify_pixmap;
	int icon_box_x;
	int icon_box_y;
	Bool tiled;
	Bool sticky;
	Bool no_iconify_button;
	Bool no_lower_button;
	Bool no_resize_button;
} DECWmHintsRec, *DECWmHints;
To set the property you need to do something like
.
.
.
Atom DEC_WM_HINTS;
int dec_wm_hints[9];
  DEC_WM_HINTS = XInternAtom( display, "DEC_WM_HINTS", 1 );
  dec_wm_hints[0] = 80;		/* Value Mask */
  dec_wm_hints[5] = 1;		/* Sticky */
  dec_wm_hints[7] = 1;		/* No Lower Button */
  XChangeProperty( display,
	window,
	DEC_WM_HINTS,
	DEC_WM_HINTS,
	32,
	PropModeReplace,
	dec_wm_hints,
	9 );
.
.
.
Steve
 | |||||