diff --git a/ChangeLog b/ChangeLog index a69993e74..aabff6af6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2002-09-22 Havoc Pennington + + * src/window.c (recalc_window_features): small reordering of + code + + * src/display.c (meta_spew_event): more spew for MapNotify, + UnmapNotify + + * src/window.c (recalc_window_features): spew more stuff + + * src/display.c (meta_spew_event): spew override_redirect field of + ConfigureNotify + 2002-09-20 Arvind Samptur * src/metacity.schemas.in: added keybindings for moving windows between workspaces. diff --git a/src/display.c b/src/display.c index d622be34b..1cce2b16a 100644 --- a/src/display.c +++ b/src/display.c @@ -1923,9 +1923,17 @@ meta_spew_event (MetaDisplay *display, break; case UnmapNotify: name = "UnmapNotify"; + extra = g_strdup_printf ("event: 0x%lx window: 0x%lx from_configure: %d", + event->xunmap.event, + event->xunmap.window, + event->xunmap.from_configure); break; case MapNotify: name = "MapNotify"; + extra = g_strdup_printf ("event: 0x%lx window: 0x%lx override_redirect: %d", + event->xmap.event, + event->xmap.window, + event->xmap.override_redirect); break; case MapRequest: name = "MapRequest"; @@ -1935,12 +1943,13 @@ meta_spew_event (MetaDisplay *display, break; case ConfigureNotify: name = "ConfigureNotify"; - extra = g_strdup_printf ("x: %d y: %d w: %d h: %d above: 0x%lx", + extra = g_strdup_printf ("x: %d y: %d w: %d h: %d above: 0x%lx override_redirect: %d", event->xconfigure.x, event->xconfigure.y, event->xconfigure.width, event->xconfigure.height, - event->xconfigure.above); + event->xconfigure.above, + event->xconfigure.override_redirect); break; case ConfigureRequest: name = "ConfigureRequest"; diff --git a/src/window.c b/src/window.c index e3ae4c5d0..7ad9786da 100644 --- a/src/window.c +++ b/src/window.c @@ -5387,17 +5387,6 @@ recalc_window_features (MetaWindow *window) window->has_fullscreen_func = FALSE; } - /* We leave fullscreen windows decorated, just push the frame outside - * the screen. This avoids flickering to unparent them. - */ - if (window->fullscreen) - { - window->has_shade_func = FALSE; - window->has_move_func = FALSE; - window->has_resize_func = FALSE; - window->has_maximize_func = FALSE; - } - if (!window->has_resize_func) { window->has_maximize_func = FALSE; @@ -5412,16 +5401,34 @@ recalc_window_features (MetaWindow *window) ; /* leave fullscreen available */ else window->has_fullscreen_func = FALSE; - - meta_topic (META_DEBUG_WINDOW_OPS, - "Window %s not resizable, maximizable = %d fullscreenable = %d min size %dx%d max size %dx%d\n", - window->desc, window->has_maximize_func, window->has_fullscreen_func, - window->size_hints.min_width, - window->size_hints.min_height, - window->size_hints.max_width, - window->size_hints.max_height); } + /* We leave fullscreen windows decorated, just push the frame outside + * the screen. This avoids flickering to unparent them. + * + * Note that setting has_resize_func = FALSE here must come after the + * above code that may disable fullscreen, because if the window + * is not resizable purely due to fullscreen, we don't want to + * disable fullscreen mode. + */ + if (window->fullscreen) + { + window->has_shade_func = FALSE; + window->has_move_func = FALSE; + window->has_resize_func = FALSE; + window->has_maximize_func = FALSE; + } + + meta_topic (META_DEBUG_WINDOW_OPS, + "Window %s fullscreen = %d not resizable, maximizable = %d fullscreenable = %d min size %dx%d max size %dx%d\n", + window->desc, + window->fullscreen, + window->has_maximize_func, window->has_fullscreen_func, + window->size_hints.min_width, + window->size_hints.min_height, + window->size_hints.max_width, + window->size_hints.max_height); + /* no shading if not decorated */ if (!window->decorated || window->border_only) window->has_shade_func = FALSE; @@ -5457,6 +5464,19 @@ recalc_window_features (MetaWindow *window) break; } + meta_topic (META_DEBUG_WINDOW_OPS, + "Window %s decorated = %d border_only = %d has_close = %d has_minimize = %d has_maximize = %d has_move = %d has_shade = %d skip_taskbar = %d skip_pager = %d\n", + window->desc, + window->decorated, + window->border_only, + window->has_close_func, + window->has_minimize_func, + window->has_maximize_func, + window->has_move_func, + window->has_shade_func, + window->skip_taskbar, + window->skip_pager); + /* FIXME: * Lame workaround for recalc_window_features * being used overzealously. The fix is to