| 245 | } |
| 246 | |
| 247 | void EmbeddedProcess::_try_embed_process() { |
| 248 | bool is_visible = is_visible_in_tree(); |
| 249 | Error err = DisplayServer::get_singleton()->embed_process(window->get_window_id(), current_process_id, get_screen_embedded_window_rect(), is_visible, is_visible && application_has_focus && embedding_grab_focus); |
| 250 | if (err == OK) { |
| 251 | embedding_completed = true; |
| 252 | queue_redraw(); |
| 253 | emit_signal(SNAME("embedding_completed")); |
| 254 | } else if (err == ERR_DOES_NOT_EXIST) { |
| 255 | if (OS::get_singleton()->get_ticks_msec() - start_embedding_time >= (uint64_t)embedding_timeout) { |
| 256 | // Embedding process timed out. |
| 257 | reset(); |
| 258 | emit_signal(SNAME("embedding_failed")); |
| 259 | } else { |
| 260 | // Tries another shot. |
| 261 | timer_embedding->start(); |
| 262 | } |
| 263 | } else { |
| 264 | // Another unknown error. |
| 265 | reset(); |
| 266 | emit_signal(SNAME("embedding_failed")); |
| 267 | } |
| 268 | } |
| 269 | |
| 270 | bool EmbeddedProcess::_is_embedded_process_updatable() { |
| 271 | return window && current_process_id != 0 && embedding_completed; |
nothing calls this directly
no test coverage detected