Re: Application modal transients windows

>The 1.9b draft suggests that we should use the GTK method of application
>modal dialog boxes as standard, where WM_TRANSIENT_FOR is set to the root
>window, and the dialog is kept above all other windows in this group.  
>John Harper has pointed out that this is not inline with the ICCCM, which
>demands that WM_TRANSIENT_FOR should only contain the id of another
>top-level window, and by the ICCCM definition the root window is not a
>top-level window.
>So, do we add another hint indicating application modality, and go and try
>to persuade the GTK people to change their ways, or do we put up with this
>bending of the ICCCM.  

IIRC GTK has a function to set the WM_TRANSIENT_FOR hint - something like
gtk_set_transient_for:) . If we put code in our window managers to print a
warning on stderr when a window has WM_TRANSIENT_FOR set to the root window,
application writers will be pestered to change their applications to use the
ICCCM-compliant form.  =)

We could even create a new GTK wrapper function to make this a bit easier:

GtkWindow* gtk_transient_new_with_owner(GtkWindow* owner)
  GtkWindow* w = gtk_window_new(GTK_WINDOW_TRANSIENT);
  gtk_set_transient_for(GTK_WINDOW(w), GTK_WINDOW(owner)); /* Or whatever */
  return r;

Michael Rogers

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]