[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

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

2222.0. "How to "raise" a dialog box that's been covered" by BEATLE::COMMO ("I'll find no bug before its time!") Tue Feb 06 1990 17:33

Hi,

Suppose a modeless popup dialog box, or a selection widget, gets covered
over by a larger window.  I would like to be able to raise it back to
visibility by "reactivating:" it from the menu.

I would think that "XtRaiseWindow(XtDisplay(w),XtWindow(w))" should do it
just like the book says, only it doesn't.

How do I do something like this?  Can the window manager be for0ced to
raise it over all other windows, or is XtRaiseWindow just a crock?

- norm
T.RTitleUserPersonal
Name
DateLines
2222.1Try XMapRaisedGOSOX::RYANDECwindows MailWed Feb 07 1990 08:150
2222.2Use the window of the parentRAB::PRINCIPIONot available in any storeWed Feb 07 1990 08:446
I assume .0 meant XRaiseWindow not XtRaiseWindow.  XRaiseWindow should do want
you want.  Just make sure you pass the window of the hidden shell:

	XRaiseWindow(XtDisplay(w),XtWindow(XtParent(w)))

Tracy
2222.3GOSOX::RYANDECwindows MailWed Feb 07 1990 18:098
	I missed that he wasn't using the shell - still, XMapRaised is
	preferable because it will also de-iconify the window if it is
	iconified. At least, it will if you're running an ICCCM-compliant
	window manager such as the Motif window manager - the default
	Digital window manager requires a little more (specifically,
	setting the XSetWMHints initial_state field to NormalState).

	Mike
2222.4ThanksWONDER::COMMOI'll find no bug before its time!Thu Feb 08 1990 15:065
Thanks for the replies.  Yes, it was XR... and not XtR..., I was just 
writing the note from memory.  And I had missed the boat on the widget
IDs and had used the same ID for both parameters.

- norm
2222.5<< more thoughts >>WONDER::COMMOI&#039;ll find no bug before its time!Fri Feb 09 1990 09:2411
re: .3,

Yes, one of the things I want to do is to be able to iconify and de-iconify
certain windows of the application procedurally.  Any hints would be most
welcome, as would words of wisdom on how to set the cursor to various
shapes when the enter/leave the applications windows.  I understand how to
do it in raw X, but I don't know if the DECWindows WM will frustrate the
"straight forward" incantations and require special magic.

- norm

2222.6How to iconify/deiconifyOPHION::MIKEYMike YangTue Feb 13 1990 16:1233
    The ICCCM (Inter-Client Communication Conventions Manual) states how to
    iconify/deiconify a window while running an ICCCM-compliant window
    manager (e.g. mwm, gwm, twm as released with X11R4, but *not* the XUI
    window manager).
    
    To deiconify a window, map it with XMapWindow.  To iconify a window,
    send a client message to the root window with type set to the atom for
    "WM_CHANGE_STATE" and window set to the window you want to iconify. 
    Here's a code fragment from xrooms that should give you the idea:
    
                    if (debug)
                        fprintf(stderr, "iconifying %x\n", app->client);
                    event.xclient.type = ClientMessage;
                    event.xclient.display = dpy;
                    event.xclient.window = app->client;
                    event.xclient.message_type = WM_CHANGE_STATE;
                    event.xclient.format = 32;
                    event.xclient.data.l[0] = IconicState;
                    XSendEvent(dpy, RootWindowOfScreen(scrn), False,
                               SubstructureRedirectMask |
    			       SubstructureNotifyMask,
                              &event);
    
    To iconify/deiconify a window with the XUI window manager, you want to
    change the initial_state field in the WMHints property.  Again, a code
    fragment:
    
      XWMHints    wmh;
    
        wmh.flags = StateHint;
        wmh.initial_state = IconicState;
        XSetWMHints(dpy, win1, &wmh);