summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhp <rhp>2001-07-31 03:59:55 +0000
committerrhp <rhp>2001-07-31 03:59:55 +0000
commit1f1e706aae057597813c12437a463c54789f8f75 (patch)
tree31cbf33159bca8295892999bf5ca5090b66eaab6
parentb1d438922a81d65e6aec2e998bf450f329721ea1 (diff)
downloadmetacity-1f1e706aae057597813c12437a463c54789f8f75.tar.gz
metacity-1f1e706aae057597813c12437a463c54789f8f75.tar.bz2
...
-rw-r--r--README25
-rw-r--r--configure.in4
-rw-r--r--src/window.c27
3 files changed, 50 insertions, 6 deletions
diff --git a/README b/README
index a8daf34..c248cca 100644
--- a/README
+++ b/README
@@ -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
diff --git a/configure.in b/configure.in
index 5f24c44..a2dc980 100644
--- a/configure.in
+++ b/configure.in
@@ -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
])
diff --git a/src/window.c b/src/window.c
index 4df0341..243f420 100644
--- a/src/window.c
+++ b/src/window.c
@@ -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;