This commit is contained in:
rhp 2001-07-31 03:59:55 +00:00
parent b1d438922a
commit 1f1e706aae
3 changed files with 50 additions and 6 deletions

25
README
View File

@ -228,6 +228,24 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS
don't actually have any translations. So if someone translates
something we can set it up.
- If you switch from sawfish to metacity without restarting X,
the panel often ends up buried behind the Nautilus desktop window.
What happens is that the panel detects Sawfish has gone away, and
turns on override redirect mode because no GNOME-aware WM is
running (i.e. it goes into "ignore the window manager" mode). But
the panel doesn't notice that Metacity has appeared and is
(partially) GNOME-compliant. So Metacity doesn't see the override
redirect panel, and leaves it behind the Nautilus desktop. I'm not
sure whether Metacity or the panel is to blame for this.
(To debug - use "xwininfo" on the panel, if override redirect is
"Yes" then Metacity won't have any awareness of a window and can't
properly stack it above the desktop. If override redirect is "No"
then Metacity can see the panel and handle it properly. Look at
xstuff.c:xstuff_is_compliant_wm() in the panel to get started on
how the panel deals with this.)
FAQ
===
@ -274,6 +292,13 @@ A: This is not the current plan, though of course I'm happy to see the
For now Metacity is my toy hobby project that I work on when I feel
like it.
Q: Is Metacity a Red Hat project?
A: Metacity is in no way funded, endorsed, or encouraged by Red Hat,
Inc. - I'm guessing Red Hat would not consider "insufficient number
of window managers for Linux" an urgent problem. Just a wild guess
though.
Q: Why can't I move XMMS?
A: Because XMMS is broken and is trying to move itself. Metacity

View File

@ -2,7 +2,7 @@ AC_INIT(src/display.c)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(metacity, 2.3)
AM_INIT_AUTOMAKE(metacity, 2.3.1)
GETTEXT_PACKAGE=metacity
AC_SUBST(GETTEXT_PACKAGE)
@ -70,8 +70,6 @@ AC_SUBST(HOST_ALIAS)
AC_OUTPUT([
Makefile
intl/Makefile
po/Makefile.in
src/Makefile
])

View File

@ -2187,10 +2187,13 @@ process_property_notify (MetaWindow *window,
if (event->atom == XA_WM_NAME ||
event->atom == window->display->atom_net_wm_name)
{
meta_verbose ("Property notify on %s for WM_NAME or NET_WM_NAME\n", window->desc);
update_title (window);
}
else if (event->atom == XA_WM_NORMAL_HINTS)
{
meta_verbose ("Property notify on %s for WM_NORMAL_HINTS\n", window->desc);
update_size_hints (window);
/* See if we need to constrain current size */
@ -2198,12 +2201,16 @@ process_property_notify (MetaWindow *window,
}
else if (event->atom == window->display->atom_wm_protocols)
{
meta_verbose ("Property notify on %s for WM_PROTOCOLS\n", window->desc);
update_protocols (window);
meta_window_queue_move_resize (window);
}
else if (event->atom == XA_WM_HINTS)
{
meta_verbose ("Property notify on %s for WM_HINTS\n", window->desc);
update_wm_hints (window);
update_icon (window);
@ -2211,6 +2218,8 @@ process_property_notify (MetaWindow *window,
}
else if (event->atom == window->display->atom_motif_wm_hints)
{
meta_verbose ("Property notify on %s for MOTIF_WM_HINTS\n", window->desc);
update_mwm_hints (window);
if (window->decorated)
@ -2222,10 +2231,14 @@ process_property_notify (MetaWindow *window,
}
else if (event->atom == XA_WM_CLASS)
{
meta_verbose ("Property notify on %s for WM_CLASS\n", window->desc);
update_wm_class (window);
}
else if (event->atom == XA_WM_TRANSIENT_FOR)
{
meta_verbose ("Property notify on %s for WM_TRANSIENT_FOR\n", window->desc);
update_transient_for (window);
meta_window_queue_move_resize (window);
@ -2233,6 +2246,8 @@ process_property_notify (MetaWindow *window,
else if (event->atom ==
window->display->atom_wm_window_role)
{
meta_verbose ("Property notify on %s for WM_WINDOW_ROLE\n", window->desc);
update_role (window);
}
else if (event->atom ==
@ -2240,23 +2255,27 @@ process_property_notify (MetaWindow *window,
event->atom ==
window->display->atom_sm_client_id)
{
meta_warning ("Broken client changed client leader window or SM client ID\n");
meta_warning ("Broken client! Window %s changed client leader window or SM client ID\n", window->desc);
}
else if (event->atom ==
window->display->atom_net_wm_window_type ||
/* update_net_wm_type falls back to this */
event->atom == window->display->atom_win_layer)
{
meta_verbose ("Property notify on %s for NET_WM_WINDOW_TYPE or WIN_LAYER\n", window->desc);
update_net_wm_type (window);
}
else if (event->atom ==
window->display->atom_net_wm_icon_name ||
event->atom == XA_WM_ICON_NAME)
{
meta_verbose ("Property notify on %s for NET_WM_ICON_NAME or WM_ICON_NAME\n", window->desc);
update_icon_name (window);
}
else if (event->atom == window->display->atom_net_wm_icon)
{
meta_verbose ("Property notify on %s for NET_WM_ICON\n", window->desc);
update_icon (window);
}
@ -3371,14 +3390,15 @@ recalc_window_type (MetaWindow *window)
window->wm_state_modal)
window->type = META_WINDOW_MODAL_DIALOG;
meta_verbose ("Calculated type %d for %s\n", window->type, window->desc);
meta_verbose ("Calculated type %d for %s, old type %d\n",
window->type, window->desc, old_type);
if (old_type != window->type)
{
recalc_window_features (window);
set_net_wm_state (window);
/* Update frame */
if (window->decorated)
meta_window_ensure_frame (window);
@ -3408,6 +3428,7 @@ recalc_window_features (MetaWindow *window)
if (window->type == META_WINDOW_DESKTOP ||
window->type == META_WINDOW_DOCK)
{
window->decorated = FALSE;
window->has_close_func = FALSE;
window->has_shade_func = FALSE;
window->has_move_func = FALSE;