Add a display server and graphical user interface #38

Merged
apio merged 103 commits from display-server into main 2023-09-20 18:49:21 +00:00
2 changed files with 18 additions and 2 deletions
Showing only changes of commit bb5d726fe8 - Show all commits

View File

@ -35,6 +35,8 @@ namespace ui
m_should_close = b;
}
void set_nonblocking();
void set_main_window(Window* window)
{
check(!m_main_window);
@ -51,6 +53,8 @@ namespace ui
Result<void> handle_ipc_event(u8 id);
bool process_events();
static App& the();
private:

View File

@ -50,8 +50,8 @@ namespace ui
Result<int> App::run()
{
check(m_main_window);
while (!m_should_close) { TRY(os::IPC::check_for_messages(*m_client)); }
while (process_events())
;
return 0;
}
@ -135,4 +135,16 @@ namespace ui
default: fail("Unexpected IPC request from server!");
}
}
void App::set_nonblocking()
{
fcntl(m_client->fd(), F_SETFL, O_NONBLOCK);
}
bool App::process_events()
{
check(m_main_window);
os::IPC::check_for_messages(*m_client).release_value();
return !m_should_close;
}
}