mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 19:10:43 -05:00
Avoid flashing when closing a maximized window. Fixes #317254.
2006-01-20 Elijah Newren <newren gmail com> Avoid flashing when closing a maximized window. Fixes #317254. * src/window.c (unmaximize_window_before_freeing): new function that just fixes the net_wm_state and sends a configure_notify, (meta_window_free): use unmaximize_window_before_freeing() instead of meta_window_unmaximize() to avoid flicker
This commit is contained in:
parent
6f318f1a75
commit
dcec11274a
@ -1,3 +1,12 @@
|
|||||||
|
2006-01-20 Elijah Newren <newren gmail com>
|
||||||
|
|
||||||
|
Avoid flashing when closing a maximized window. Fixes #317254.
|
||||||
|
|
||||||
|
* src/window.c (unmaximize_window_before_freeing): new function
|
||||||
|
that just fixes the net_wm_state and sends a configure_notify,
|
||||||
|
(meta_window_free): use unmaximize_window_before_freeing() instead
|
||||||
|
of meta_window_unmaximize() to avoid flicker
|
||||||
|
|
||||||
2006-01-20 Elijah Newren <newren gmail com>
|
2006-01-20 Elijah Newren <newren gmail com>
|
||||||
|
|
||||||
Fix unitialized value problem when in raise-on-click mode. Søren,
|
Fix unitialized value problem when in raise-on-click mode. Søren,
|
||||||
|
21
src/window.c
21
src/window.c
@ -119,6 +119,8 @@ static gboolean queue_calc_showing_func (MetaWindow *window,
|
|||||||
static void meta_window_apply_session_info (MetaWindow *window,
|
static void meta_window_apply_session_info (MetaWindow *window,
|
||||||
const MetaWindowSessionInfo *info);
|
const MetaWindowSessionInfo *info);
|
||||||
|
|
||||||
|
static void unmaximize_window_before_freeing (MetaWindow *window);
|
||||||
|
|
||||||
#ifdef WITH_VERBOSE_MODE
|
#ifdef WITH_VERBOSE_MODE
|
||||||
static const char*
|
static const char*
|
||||||
wm_state_to_string (int state)
|
wm_state_to_string (int state)
|
||||||
@ -977,9 +979,7 @@ meta_window_free (MetaWindow *window)
|
|||||||
if (window->display->focus_window == window)
|
if (window->display->focus_window == window)
|
||||||
window->display->focus_window = NULL;
|
window->display->focus_window = NULL;
|
||||||
|
|
||||||
if (window->maximized_horizontally || window->maximized_vertically)
|
unmaximize_window_before_freeing (window);
|
||||||
meta_window_unmaximize (window,
|
|
||||||
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
|
|
||||||
|
|
||||||
meta_window_unqueue_calc_showing (window);
|
meta_window_unqueue_calc_showing (window);
|
||||||
meta_window_unqueue_move_resize (window);
|
meta_window_unqueue_move_resize (window);
|
||||||
@ -2230,6 +2230,21 @@ meta_window_maximize (MetaWindow *window,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unmaximize_window_before_freeing (MetaWindow *window)
|
||||||
|
{
|
||||||
|
meta_topic (META_DEBUG_WINDOW_OPS,
|
||||||
|
"Unmaximizing %s just before freeing\n",
|
||||||
|
window->desc);
|
||||||
|
|
||||||
|
window->rect = window->saved_rect;
|
||||||
|
send_configure_notify (window);
|
||||||
|
|
||||||
|
window->maximized_horizontally = FALSE;
|
||||||
|
window->maximized_vertically = FALSE;
|
||||||
|
set_net_wm_state (window);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_window_unmaximize (MetaWindow *window,
|
meta_window_unmaximize (MetaWindow *window,
|
||||||
MetaMaximizeFlags directions)
|
MetaMaximizeFlags directions)
|
||||||
|
Loading…
Reference in New Issue
Block a user