Improve the crashy situation a bit

This commit is contained in:
Tom Beckmann 2012-06-24 20:37:12 +02:00
parent 1fa87dca20
commit 53e81aea96
2 changed files with 20 additions and 7 deletions

View File

@ -538,8 +538,7 @@ namespace Gala
//add actor to list and check if he's already in there..
void add_animator (ref Gee.LinkedList<Clutter.Actor> list, WindowActor actor)
{
if (list.index_of (actor) < 0)
list.add (actor);
list.add (actor);
}
//kill everything on actor if it's doing something, true if we did
@ -577,8 +576,10 @@ namespace Gala
public override void kill_window_effects (WindowActor actor)
{
if (end_animation (ref mapping, actor))
if (end_animation (ref mapping, actor)) {
map_completed (actor);
print ("KILLED MAPPING ONE\n");
}
if (end_animation (ref minimizing, actor))
minimize_completed (actor);
if (end_animation (ref maximizing, actor))
@ -590,6 +591,20 @@ namespace Gala
}
public void kill_all_running_effects ()
{
foreach (var it in mapping)
kill_window_effects (it as WindowActor);
foreach (var it in minimizing)
kill_window_effects (it as WindowActor);
foreach (var it in maximizing)
kill_window_effects (it as WindowActor);
foreach (var it in unmaximizing)
kill_window_effects (it as WindowActor);
foreach (var it in destroying)
kill_window_effects (it as WindowActor);
}
/*workspace switcher*/
GLib.List<Meta.WindowActor>? win;
GLib.List<Clutter.Actor>? par; //class space for kill func

View File

@ -268,10 +268,8 @@ namespace Gala
return;
}
window_list.foreach ((w) => {
plugin.kill_window_effects (w.get_compositor_private () as Meta.WindowActor);
});
plugin.kill_all_running_effects ();
plugin.begin_modal ();
var area = screen.get_monitor_geometry (screen.get_primary_monitor ());