diff options
| author | Po Lu | 2021-12-31 10:59:53 +0000 |
|---|---|---|
| committer | Po Lu | 2021-12-31 10:59:53 +0000 |
| commit | a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5 (patch) | |
| tree | 7f6ff5dece518a901481f1deb77ab447aed820e8 /src | |
| parent | eab422a6532899468a70ec44986c1ee5174287b7 (diff) | |
| download | emacs-a8c3e8e2a6efa77b38110a9c1fee1ece8d8da4d5.tar.gz 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')
| -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: | |||
| 346 | { | 346 | { |
| 347 | if (last) | 347 | if (last) |
| 348 | last->next = tem->next; | 348 | last->next = tem->next; |
| 349 | if (tem == subset_windows) | 349 | else |
| 350 | subset_windows = NULL; | 350 | subset_windows = tem->next; |
| 351 | delete tem; | 351 | delete tem; |
| 352 | return; | 352 | return; |
| 353 | } | 353 | } |
| @@ -405,9 +405,11 @@ public: | |||
| 405 | DoMove (struct child_frame *f) | 405 | DoMove (struct child_frame *f) |
| 406 | { | 406 | { |
| 407 | BRect frame = this->Frame (); | 407 | BRect frame = this->Frame (); |
| 408 | if (!f->window->LockLooper ()) | ||
| 409 | gui_abort ("Failed to lock child frame window for move"); | ||
| 408 | f->window->MoveTo (frame.left + f->xoff, | 410 | f->window->MoveTo (frame.left + f->xoff, |
| 409 | frame.top + f->yoff); | 411 | frame.top + f->yoff); |
| 410 | this->Sync (); | 412 | f->window->UnlockLooper (); |
| 411 | } | 413 | } |
| 412 | 414 | ||
| 413 | void | 415 | void |