| 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 | 
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.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 2222.1 | Try XMapRaised | GOSOX::RYAN | DECwindows Mail | Wed Feb 07 1990 08:15 | 0 | 
| 2222.2 | Use the window of the parent | RAB::PRINCIPIO | Not available in any store | Wed Feb 07 1990 08:44 | 6 | 
| 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.3 | GOSOX::RYAN | DECwindows Mail | Wed Feb 07 1990 18:09 | 8 | |
| 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.4 | Thanks | WONDER::COMMO | I'll find no bug before its time! | Thu Feb 08 1990 15:06 | 5 | 
| 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::COMMO | I'll find no bug before its time! | Fri Feb 09 1990 09:24 | 11 | 
| 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.6 | How to iconify/deiconify | OPHION::MIKEY | Mike Yang | Tue Feb 13 1990 16:12 | 33 | 
|     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);
     
 | |||||