diff options
author | Po Lu <luangruo@yahoo.com> | 2021-12-31 10:59:53 +0000 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-12-31 10:59:53 +0000 |
commit | a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5 (patch) | |
tree | 7f6ff5dece518a901481f1deb77ab447aed820e8 /src/haiku_support.cc | |
parent | eab422a6532899468a70ec44986c1ee5174287b7 (diff) | |
download | emacs-a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5.tar.gz emacs-a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5.tar.bz2 emacs-a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5.zip |
Fix child frame unlinking on Haiku
* src/haiku_support.cc (UnlinkChild): Fix obvious mistake.
(DoMove): Lock child frame window before moving it.
Diffstat (limited to 'src/haiku_support.cc')
-rw-r--r-- | src/haiku_support.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 66b0e519b07..fea0684b1b4 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc @@ -346,8 +346,8 @@ public: { if (last) last->next = tem->next; - if (tem == subset_windows) - subset_windows = NULL; + else + subset_windows = tem->next; delete tem; return; } @@ -405,9 +405,11 @@ 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); - this->Sync (); + f->window->UnlockLooper (); } void |