mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-13 06:50:39 -08:00
Fix child frame synchronization order on Haiku
* src/haiku_support.cc (DoMove): (FrameMoved): Fix locking and sync order semantics.
This commit is contained in:
parent
c7e642bab2
commit
cbc77dcf03
1 changed files with 5 additions and 5 deletions
|
|
@ -414,11 +414,8 @@ public:
|
|||
DoMove (struct child_frame *f)
|
||||
{
|
||||
BRect frame = this->Frame ();
|
||||
if (!f->window->LockLooper ())
|
||||
gui_abort ("Failed to lock child frame window for move");
|
||||
f->window->MoveTo (frame.left + f->xoff,
|
||||
frame.top + f->yoff);
|
||||
f->window->UnlockLooper ();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -652,21 +649,24 @@ public:
|
|||
|
||||
if (!child_frame_lock.Lock ())
|
||||
gui_abort ("Failed to lock child frame state lock");
|
||||
|
||||
for (struct child_frame *f = subset_windows;
|
||||
f; f = f->next)
|
||||
DoMove (f);
|
||||
|
||||
child_frame_lock.Unlock ();
|
||||
|
||||
Sync ();
|
||||
BWindow::FrameMoved (newPosition);
|
||||
}
|
||||
|
||||
void
|
||||
WorkspacesChanged (uint32_t old, uint32_t n)
|
||||
{
|
||||
if (!child_frame_lock.Lock ())
|
||||
gui_abort ("Failed to lock child frames for changing workspaces");
|
||||
for (struct child_frame *f = subset_windows;
|
||||
f; f = f->next)
|
||||
DoUpdateWorkspace (f);
|
||||
child_frame_lock.Unlock ();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue