Applications/Internet/Cyberia: Handle all vscroll changes before issuing reflow in @cyberia_win_repaint() callback
This commit is contained in:
parent
e98a0a13c2
commit
d47e33acb0
1 changed files with 11 additions and 12 deletions
|
@ -22,9 +22,9 @@ TextInputWidget* addressbar1 = NULL;
|
|||
@window_widgets_list* widgets_base = NULL;
|
||||
@html_dom_node* node_list = NULL;
|
||||
|
||||
I64 old_window_width = -1;
|
||||
I64 old_window_height = -1;
|
||||
I64 old_mouse_z = Mouse.z;
|
||||
I64 prev_win_width = -1;
|
||||
I64 prev_win_height = -1;
|
||||
I64 prev_mouse_z = Mouse.z;
|
||||
|
||||
Window* hanbaga_menu = Menu.New("Cyberia");
|
||||
Menu.AddItem(hanbaga_menu, "New Tab", NULL, &Reboot, NULL, NULL);
|
||||
|
@ -809,12 +809,11 @@ U0 @cyberia_win_repaint(Window*)
|
|||
vscroll1->width = 16;
|
||||
vscroll1->height = background1->height;
|
||||
|
||||
I64 delta_z = Mouse.z - old_mouse_z;
|
||||
I64 delta_z = Mouse.z - prev_mouse_z;
|
||||
if (delta_z) {
|
||||
vscroll1->scroll += (RENDERER_DEFAULT_MAX_LINE_HEIGHT * delta_z);
|
||||
@cyberia_vscroll_change(vscroll1);
|
||||
}
|
||||
old_mouse_z = Mouse.z;
|
||||
prev_mouse_z = Mouse.z;
|
||||
|
||||
if (StrLen(&status2->text)) {
|
||||
status1->y = win->height;
|
||||
|
@ -829,18 +828,18 @@ U0 @cyberia_win_repaint(Window*)
|
|||
if (!browser || !browser->renderer || !widgets_base)
|
||||
return;
|
||||
|
||||
if (widgets_base->next && (old_window_width != win->width || old_window_height != win->height)) {
|
||||
@reflow_node_list(browser->renderer);
|
||||
old_window_width = win->width;
|
||||
old_window_height = win->height;
|
||||
}
|
||||
|
||||
if (browser->renderer->calculated_page_height > background1->height) {
|
||||
vscroll1->max = browser->renderer->calculated_page_height;
|
||||
vscroll1->length = (vscroll1->height - 31) / MaxI64(2, ToI64(browser->renderer->calculated_page_height / background1->height));
|
||||
vscroll1->x = win->width - 25;
|
||||
background1->width -= vscroll1->width;
|
||||
}
|
||||
|
||||
if (widgets_base->next && (prev_win_width != win->width || prev_win_height != win->height) || delta_z) {
|
||||
@reflow_node_list(browser->renderer);
|
||||
prev_win_width = win->width;
|
||||
prev_win_height = win->height;
|
||||
}
|
||||
}
|
||||
|
||||
U0 @cyberia_unset_status_text()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue