struct child_frame *next;
for (struct child_frame *f = subset_windows; f; f = next)
{
+ if (f->window->LockLooper ())
+ gui_abort ("Failed to lock looper for unparent");
f->window->Unparent ();
+ f->window->UnlockLooper ();
next = f->next;
delete f;
}
void
UpwardsSubsetChildren (EmacsWindow *w)
{
+ if (!LockLooper ())
+ gui_abort ("Failed to lock looper for subset");
if (!child_frame_lock.Lock ())
gui_abort ("Failed to lock child frame state lock");
UpwardsSubset (w);
f = f->next)
f->window->UpwardsSubsetChildren (w);
child_frame_lock.Unlock ();
+ UnlockLooper ();
}
void
void
UpwardsUnSubsetChildren (EmacsWindow *w)
{
+ if (!LockLooper ())
+ gui_abort ("Failed to lock looper for unsubset");
if (!child_frame_lock.Lock ())
gui_abort ("Failed to lock child frame state lock");
UpwardsUnSubset (w);
f = f->next)
f->window->UpwardsUnSubsetChildren (w);
child_frame_lock.Unlock ();
+ UnlockLooper ();
}
void
certainly no longer on any text in the frame. */
clear_mouse_face (hlinfo);
hlinfo->mouse_face_mouse_frame = 0;
+
+ need_flush = 1;
}
haiku_new_focus_frame (x_display_list->focused_frame);