paint: ui fixes
This commit is contained in:
@@ -653,7 +653,7 @@ void ui_viewnodes_on_link_drag(i32 link_drag_id, bool is
|
||||
void ui_viewnodes_on_socket_released(i32 socket_id);
|
||||
void ui_viewnodes_on_canvas_released();
|
||||
ui_canvas_control_t *ui_viewnodes_on_canvas_control();
|
||||
ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down);
|
||||
ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down, bool is_node_view);
|
||||
f32 ui_nodes_get_zoom_delta();
|
||||
bool ui_nodes_is_tab_selected();
|
||||
i32 ui_nodes_tab_index();
|
||||
|
||||
@@ -379,12 +379,12 @@ void ui_viewnodes_on_canvas_released() {
|
||||
}
|
||||
|
||||
ui_canvas_control_t *ui_viewnodes_on_canvas_control() {
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_nodes_controls_down);
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_nodes_controls_down, true);
|
||||
ui_nodes_controls_down = control->controls_down;
|
||||
return control;
|
||||
}
|
||||
|
||||
ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down) {
|
||||
ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down, bool is_node_view) {
|
||||
if (config_raw->wrap_mouse && controls_down) {
|
||||
if (ui->input_x < ui->_window_x) {
|
||||
ui->input_x = ui->_window_x + ui->_window_w;
|
||||
@@ -411,6 +411,7 @@ ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down) {
|
||||
!operator_shortcut(any_map_get(config_keymap, "action_zoom"), SHORTCUT_TYPE_DOWN) && !ui->input_down_r && ui->input_wheel_delta == 0.0) {
|
||||
controls_down = false;
|
||||
}
|
||||
|
||||
if (!controls_down) {
|
||||
ui_canvas_control_t *cc = GC_ALLOC_INIT(ui_canvas_control_t, {.pan_x = 0, .pan_y = 0, .zoom = 0, .controls_down = controls_down});
|
||||
return cc;
|
||||
@@ -422,6 +423,13 @@ ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down) {
|
||||
.pan_y = pan ? ui->input_dy : 0.0,
|
||||
.zoom = ui->input_wheel_delta != 0.0 ? -ui->input_wheel_delta / 10 : zoom_delta,
|
||||
.controls_down = controls_down});
|
||||
|
||||
if (is_node_view && ui->input_x < ui->_window_x) {
|
||||
control->pan_x = 0.0;
|
||||
control->pan_y = 0.0;
|
||||
control->zoom = 0.0;
|
||||
}
|
||||
|
||||
if (ui->combo_selected_handle != NULL) {
|
||||
control->zoom = 0.0;
|
||||
}
|
||||
@@ -491,7 +499,7 @@ void ui_nodes_update(void *_) {
|
||||
ui_nodes_wx = math_floor(sys_w()) + ui_toolbar_w(true);
|
||||
ui_nodes_wy = ui_header_h * 2;
|
||||
|
||||
if (ui_view2d_show) {
|
||||
if (ui_view2d_show && base_view3d_show) {
|
||||
ui_nodes_wy += sys_h() - config_raw->layout->buffer[LAYOUT_SIZE_NODES_H];
|
||||
}
|
||||
|
||||
@@ -912,6 +920,10 @@ void ui_nodes_render(void *_) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!base_view3d_show) {
|
||||
ui_nodes_wh -= ui_header_h * 4;
|
||||
}
|
||||
|
||||
if (ui_window(ui_nodes_hwnd, ui_nodes_wx, ui_nodes_wy, ui_nodes_ww, ui_nodes_wh, false)) {
|
||||
|
||||
if (!config_raw->touch_ui) {
|
||||
|
||||
@@ -439,13 +439,13 @@ void ui_view2d_update(void *_) {
|
||||
if (!base_ui_enabled || !ui_view2d_show || mouse_x < ui_view2d_wx || mouse_x > ui_view2d_wx + ui_view2d_ww || mouse_y < ui_view2d_wy + headerh ||
|
||||
mouse_y > ui_view2d_wy + ui_view2d_wh) {
|
||||
if (ui_view2d_controls_down) {
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down);
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down, false);
|
||||
ui_view2d_controls_down = control->controls_down;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down);
|
||||
ui_canvas_control_t *control = ui_nodes_get_canvas_control(ui_view2d_controls_down, false);
|
||||
ui_view2d_pan_x += control->pan_x;
|
||||
ui_view2d_pan_y += control->pan_y;
|
||||
ui_view2d_controls_down = control->controls_down;
|
||||
|
||||
Reference in New Issue
Block a user