Skip to content

Commit f7875d9

Browse files
committed
fix: delay creating window to use the latest size of widget
1 parent c4d03a7 commit f7875d9

File tree

2 files changed

+26
-21
lines changed

2 files changed

+26
-21
lines changed

lib/ui/src/ui_css.c

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,23 @@
1717
#include <ui/events.h>
1818
#include "ui_css.h"
1919

20-
const char *ui_default_css = css_string(
21-
22-
* {
23-
width: auto;
24-
height: auto;
25-
background-color: transparent;
26-
border: 0px solid transparent;
27-
display: block;
28-
position: static;
29-
padding: 0;
30-
margin: 0;
31-
}
32-
33-
root {
34-
box-sizing: border-box;
35-
}
36-
37-
);
20+
const char *ui_default_css = "\
21+
* {\
22+
width: auto;\
23+
height: auto;\
24+
background-color: transparent;\
25+
border: 0px solid transparent;\
26+
display: block;\
27+
position: static;\
28+
padding: 0;\
29+
margin: 0;\
30+
}\
31+
\
32+
root {\
33+
box-sizing: border-box;\
34+
width: 800px;\
35+
height: 600px;\
36+
}";
3837

3938
static void ui_on_parsed_font_face(const css_font_face_t *face)
4039
{

src/lcui_ui.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <thread.h>
1717
#include <ui_server.h>
1818
#include <LCUI/ui.h>
19+
#include <LCUI/worker.h>
1920

2021
#define DEFAULT_WINDOW_WIDTH 800
2122
#define DEFAULT_WINDOW_HEIGHT 600
@@ -97,11 +98,13 @@ static void lcui_ui_close_window(void *arg)
9798
ptk_window_close(arg);
9899
}
99100

100-
void lcui_ui_set_display(lcui_display_t mode)
101+
static void lcui_ui_on_set_display(void *data)
101102
{
103+
102104
ptk_window_t *wnd;
103105
list_node_t *node;
104106
ui_mutation_observer_init_t options = { 0 };
107+
lcui_display_t mode = (lcui_display_t)data;
105108

106109
if (mode == LCUI_DISPLAY_DEFAULT) {
107110
mode = LCUI_DISPLAY_WINDOWED;
@@ -160,6 +163,11 @@ void lcui_ui_set_display(lcui_display_t mode)
160163
lcui_ui.quit_after_all_windows_closed = true;
161164
}
162165

166+
void lcui_ui_set_display(lcui_display_t mode)
167+
{
168+
lcui_worker_post_task((void*)mode, lcui_ui_on_set_display, NULL);
169+
}
170+
163171
static void lcui_ui_image_loader_refresh(void)
164172
{
165173
thread_mutex_lock(&lcui_ui.image_loader.mutex);
@@ -198,8 +206,6 @@ void lcui_ui_init(void)
198206

199207
ui_init();
200208
ui_server_init();
201-
ui_widget_resize(ui_root(), DEFAULT_WINDOW_WIDTH,
202-
DEFAULT_WINDOW_HEIGHT);
203209
list_create(&lcui_ui.windows);
204210
lcui_ui_set_display(LCUI_DISPLAY_DEFAULT);
205211
ptk_on_event(PTK_EVENT_CLOSE, lcui_ui_on_window_destroy, NULL);

0 commit comments

Comments
 (0)