[comp.windows.x] Transients never fully Decorated in X11R4/twm

casper@fwi.uva.nl (Casper H.S. Dik) (01/16/90)

Hi,

Here is a bug report I send in today.
With DecorateTransients set, twm no longer showed transient windows in
any iconmanager and iconified them, even when IconifyByUnmapping is set.

			  X Window System Bug Report
			    xbugs@expo.lcs.mit.edu


VERSION:
    R4

CLIENT MACHINE and OPERATING SYSTEM:
    Sun [34] running SunOS 4.0.3 (not important)

DISPLAY TYPE:
    any

WINDOW MANAGER:
    twm

AREA:
    twm

SYNOPSIS:
    Transient windows aren't handled as other windows when DecorateTransients
    is set.

DESCRIPTION:
    DecorateTransients is given is, transient windows get placed
    without asking the user. They do not show op in any iconmanager.
    When IconifyByUnmapping is set, transient windows still get an icon.
    A previous version of twm did what I expected.

    $Header: twm.c,v 1.2 88/10/15 19:12:05 jim Exp $ 
    $Revision: 1.2 $
    $Date: 88/10/18 11:36:29 $



REPEAT BY:
    Examine the code or create a transient window.

SAMPLE FIX:

*** add_window.c	Mon Jan  8 20:24:36 1990
--- add_window.c.org	Sat Dec 16 01:41:16 1989
***************
*** 206,212 ****
       *        NON_ZERO if the window is at other than (0,0)
       */
      ask_user = TRUE;
!     if ((tmp_win->transient && !Scr->DecorateTransients) || 
  	(tmp_win->hints.flags & USPosition) ||
          ((tmp_win->hints.flags & PPosition) && Scr->UsePPosition &&
  	 (Scr->UsePPosition == PPOS_ON || 
--- 206,212 ----
       *        NON_ZERO if the window is at other than (0,0)
       */
      ask_user = TRUE;
!     if (tmp_win->transient || 
  	(tmp_win->hints.flags & USPosition) ||
          ((tmp_win->hints.flags & PPosition) && Scr->UsePPosition &&
  	 (Scr->UsePPosition == PPOS_ON || 
*** iconmgr.c	Mon Jan  8 20:30:37 1990
--- iconmgr.c.org	Thu Dec 14 22:23:02 1989
***************
*** 461,468 ****
  
      tmp_win->list = NULL;
  
!     if (tmp_win->iconmgr || Scr->NoIconManagers ||
! 	(tmp_win->transient && !Scr->DecorateTransients))
  	return NULL;
  
      if (LookInList(Scr->IconMgrNoShow, tmp_win->full_name, &tmp_win->class))
--- 461,467 ----
  
      tmp_win->list = NULL;
  
!     if (tmp_win->iconmgr || tmp_win->transient || Scr->NoIconManagers)
  	return NULL;
  
      if (LookInList(Scr->IconMgrNoShow, tmp_win->full_name, &tmp_win->class))
*** menus.c	Fri Jan 12 10:35:35 1990
--- menus.c.org	Thu Dec 14 23:15:04 1989
***************
*** 2175,2182 ****
      XWindowAttributes winattrs;
      unsigned long eventMask;
  
!     iconify = ((!tmp_win->iconify_by_unmapping) ||
! 		  (tmp_win->transient && !Scr->DecorateTransients));
      if (iconify)
      {
  	if (tmp_win->icon_w == NULL)
--- 2175,2181 ----
      XWindowAttributes winattrs;
      unsigned long eventMask;
  
!     iconify = ((!tmp_win->iconify_by_unmapping) || tmp_win->transient);
      if (iconify)
      {
  	if (tmp_win->icon_w == NULL)



--
Casper H.S. Dik				VCP/HIP: +31205922022
University of Amsterdam     |		casper@fwi.uva.nl
The Netherlands             |		casper%fwi.uva.nl@hp4nl.nluug.nl