Add a screen argument. (process_property_notify): Damage the whole screen
2008-03-19 Iain Holmes <iain@gnome.org> * src/core/compositor.c (meta_compositor_set_active_window): Add a screen argument. (process_property_notify): Damage the whole screen when the background changes. Fixes 522599 (add_repair): Use the idle instead of the timeout. Fixes 522166 (unmap_win): If the window is also focus window NULLify it. * src/core/window.c (meta_window_notify_focus): Notify when a window has lost focus, pass in screen as well. svn path=/trunk/; revision=3654
This commit is contained in:
parent
e629364582
commit
f2b400b82c
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2008-03-19 Iain Holmes <iain@gnome.org>
|
||||||
|
|
||||||
|
* src/core/compositor.c (meta_compositor_set_active_window): Add a
|
||||||
|
screen argument.
|
||||||
|
(process_property_notify): Damage the whole screen when the background
|
||||||
|
changes. Fixes 522599
|
||||||
|
(add_repair): Use the idle instead of the timeout. Fixes 522166
|
||||||
|
(unmap_win): If the window is also focus window NULLify it.
|
||||||
|
|
||||||
|
* src/core/window.c (meta_window_notify_focus): Notify when a window
|
||||||
|
has lost focus, pass in screen as well.
|
||||||
|
|
||||||
2008-03-18 Iain Holmes <iain@gnome.org>
|
2008-03-18 Iain Holmes <iain@gnome.org>
|
||||||
|
|
||||||
* src/core/compositor.c (window_has_shadow): Allow shaped windows
|
* src/core/compositor.c (window_has_shadow): Allow shaped windows
|
||||||
|
@ -1354,7 +1354,7 @@ add_repair (MetaDisplay *display)
|
|||||||
if (compositor->repaint_id > 0)
|
if (compositor->repaint_id > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
compositor->repaint_id = g_idle_add_full (G_PRIORITY_HIGH_IDLE,
|
compositor->repaint_id = g_idle_add_full (G_PRIORITY_HIGH_IDLE,
|
||||||
compositor_idle_cb, compositor,
|
compositor_idle_cb, compositor,
|
||||||
NULL);
|
NULL);
|
||||||
@ -1566,6 +1566,9 @@ unmap_win (MetaDisplay *display,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cw->window && cw->window == info->focus_window)
|
||||||
|
info->focus_window = NULL;
|
||||||
|
|
||||||
cw->attrs.map_state = IsUnmapped;
|
cw->attrs.map_state = IsUnmapped;
|
||||||
cw->damaged = FALSE;
|
cw->damaged = FALSE;
|
||||||
|
|
||||||
@ -2094,6 +2097,10 @@ process_property_notify (MetaCompositor *compositor,
|
|||||||
0, 0, 0, 0, TRUE);
|
0, 0, 0, 0, TRUE);
|
||||||
XRenderFreePicture (display->xdisplay, info->root_tile);
|
XRenderFreePicture (display->xdisplay, info->root_tile);
|
||||||
info->root_tile = None;
|
info->root_tile = None;
|
||||||
|
|
||||||
|
/* Damage the whole screen as we may need to redraw the
|
||||||
|
background ourselves */
|
||||||
|
damage_screen (screen);
|
||||||
#ifdef USE_IDLE_REPAINT
|
#ifdef USE_IDLE_REPAINT
|
||||||
add_repair (display);
|
add_repair (display);
|
||||||
#endif
|
#endif
|
||||||
@ -2733,12 +2740,12 @@ meta_compositor_get_window_pixmap (MetaCompositor *compositor,
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_set_active_window (MetaCompositor *compositor,
|
meta_compositor_set_active_window (MetaCompositor *compositor,
|
||||||
|
MetaScreen *screen,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||||
MetaDisplay *display = compositor->display;
|
MetaDisplay *display = compositor->display;
|
||||||
Display *xdisplay = display->xdisplay;
|
Display *xdisplay = display->xdisplay;
|
||||||
MetaScreen *screen = window->screen;
|
|
||||||
MetaCompWindow *old_focus = NULL, *new_focus = NULL;
|
MetaCompWindow *old_focus = NULL, *new_focus = NULL;
|
||||||
MetaCompScreen *info = screen->compositor_data;
|
MetaCompScreen *info = screen->compositor_data;
|
||||||
MetaWindow *old_focus_win = info->focus_window;
|
MetaWindow *old_focus_win = info->focus_window;
|
||||||
@ -2749,9 +2756,12 @@ meta_compositor_set_active_window (MetaCompositor *compositor,
|
|||||||
old_focus_win->frame ? old_focus_win->frame->xwindow :
|
old_focus_win->frame ? old_focus_win->frame->xwindow :
|
||||||
old_focus_win->xwindow);
|
old_focus_win->xwindow);
|
||||||
}
|
}
|
||||||
|
if (window)
|
||||||
|
{
|
||||||
new_focus = find_window_for_screen (screen,
|
new_focus = find_window_for_screen (screen,
|
||||||
window->frame ? window->frame->xwindow :
|
window->frame ? window->frame->xwindow :
|
||||||
window->xwindow);
|
window->xwindow);
|
||||||
|
}
|
||||||
|
|
||||||
info->focus_window = window;
|
info->focus_window = window;
|
||||||
if (old_focus)
|
if (old_focus)
|
||||||
|
@ -65,6 +65,7 @@ void meta_compositor_free_window (MetaCompositor *compositor,
|
|||||||
Pixmap meta_compositor_get_window_pixmap (MetaCompositor *compositor,
|
Pixmap meta_compositor_get_window_pixmap (MetaCompositor *compositor,
|
||||||
MetaWindow *window);
|
MetaWindow *window);
|
||||||
void meta_compositor_set_active_window (MetaCompositor *compositor,
|
void meta_compositor_set_active_window (MetaCompositor *compositor,
|
||||||
|
MetaScreen *screen,
|
||||||
MetaWindow *window);
|
MetaWindow *window);
|
||||||
|
|
||||||
#endif /* META_COMPOSITOR_H */
|
#endif /* META_COMPOSITOR_H */
|
||||||
|
@ -5204,7 +5204,7 @@ meta_window_notify_focus (MetaWindow *window,
|
|||||||
window->display->focus_window = window;
|
window->display->focus_window = window;
|
||||||
window->has_focus = TRUE;
|
window->has_focus = TRUE;
|
||||||
meta_compositor_set_active_window (window->display->compositor,
|
meta_compositor_set_active_window (window->display->compositor,
|
||||||
window);
|
window->screen, window);
|
||||||
|
|
||||||
/* Move to the front of the focusing workspace's MRU list.
|
/* Move to the front of the focusing workspace's MRU list.
|
||||||
* We should only be "removing" it from the MRU list if it's
|
* We should only be "removing" it from the MRU list if it's
|
||||||
@ -5289,6 +5289,9 @@ meta_window_notify_focus (MetaWindow *window,
|
|||||||
if (window->frame)
|
if (window->frame)
|
||||||
meta_frame_queue_draw (window->frame);
|
meta_frame_queue_draw (window->frame);
|
||||||
|
|
||||||
|
meta_compositor_set_active_window (window->display->compositor,
|
||||||
|
window->screen, NULL);
|
||||||
|
|
||||||
meta_error_trap_push (window->display);
|
meta_error_trap_push (window->display);
|
||||||
XUninstallColormap (window->display->xdisplay,
|
XUninstallColormap (window->display->xdisplay,
|
||||||
window->colormap);
|
window->colormap);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user