paint: draw fixes
This commit is contained in:
@@ -172,17 +172,17 @@ void ui_view2d_update(void *_) {
|
||||
|
||||
bool decal_mask = context_is_decal_mask_paint();
|
||||
bool set_clone_source =
|
||||
g_context->tool == TOOL_TYPE_CLONE &&
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN);
|
||||
g_context->tool == TOOL_TYPE_CLONE &&
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "set_clone_source"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN);
|
||||
|
||||
if (!g_ui->input_down) {
|
||||
ui_view2d_layer_touched = false;
|
||||
}
|
||||
|
||||
if (ui_view2d_type == VIEW_2D_TYPE_LAYER && !ui_view2d_text_input_hover &&
|
||||
(operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) ||
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) || decal_mask ||
|
||||
set_clone_source || g_config->brush_live)) {
|
||||
(operator_shortcut(any_map_get(g_keymap, "action_paint"), SHORTCUT_TYPE_DOWN) ||
|
||||
operator_shortcut(string("%s+%s", any_map_get(g_keymap, "brush_ruler"), any_map_get(g_keymap, "action_paint")), SHORTCUT_TYPE_DOWN) ||
|
||||
decal_mask || set_clone_source || g_config->brush_live)) {
|
||||
|
||||
if (g_config->touch_ui) {
|
||||
// Paint only when clicking on the layer rect
|
||||
@@ -210,53 +210,51 @@ void ui_view2d_update(void *_) {
|
||||
}
|
||||
}
|
||||
|
||||
if (g_ui->is_typing) {
|
||||
return;
|
||||
}
|
||||
if (!g_ui->is_typing) {
|
||||
if (keyboard_started("left")) {
|
||||
ui_view2d_pan_x -= 5;
|
||||
}
|
||||
else if (keyboard_started("right")) {
|
||||
ui_view2d_pan_x += 5;
|
||||
}
|
||||
if (keyboard_started("up")) {
|
||||
ui_view2d_pan_y -= 5;
|
||||
}
|
||||
else if (keyboard_started("down")) {
|
||||
ui_view2d_pan_y += 5;
|
||||
}
|
||||
|
||||
if (keyboard_started("left")) {
|
||||
ui_view2d_pan_x -= 5;
|
||||
}
|
||||
else if (keyboard_started("right")) {
|
||||
ui_view2d_pan_x += 5;
|
||||
}
|
||||
if (keyboard_started("up")) {
|
||||
ui_view2d_pan_y -= 5;
|
||||
}
|
||||
else if (keyboard_started("down")) {
|
||||
ui_view2d_pan_y += 5;
|
||||
}
|
||||
if (!g_context->paint2d && g_config->touch_ui && g_ui->input_down && ui_view2d_type != VIEW_2D_TYPE_UVMAP) {
|
||||
ui_view2d_pan_x += g_ui->input_dx;
|
||||
ui_view2d_pan_y += g_ui->input_dy;
|
||||
}
|
||||
|
||||
if (!g_context->paint2d && g_config->touch_ui && g_ui->input_down && ui_view2d_type != VIEW_2D_TYPE_UVMAP) {
|
||||
ui_view2d_pan_x += g_ui->input_dx;
|
||||
ui_view2d_pan_y += g_ui->input_dy;
|
||||
}
|
||||
// Limit panning to keep texture in viewport
|
||||
i32 border = 32;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = ui_view2d_ww * 0.9 * ui_view2d_pan_scale;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
f32 hh = sys_h();
|
||||
f32 ty = hh / 2.0 - tw / 2.0 + ui_view2d_pan_y;
|
||||
|
||||
// Limit panning to keep texture in viewport
|
||||
i32 border = 32;
|
||||
f32 wm = fmin(ui_view2d_ww, ui_view2d_wh);
|
||||
f32 tw = ui_view2d_ww * 0.9 * ui_view2d_pan_scale;
|
||||
f32 tx = ui_view2d_ww / 2.0 - tw / 2.0 + ui_view2d_pan_x;
|
||||
f32 hh = sys_h();
|
||||
f32 ty = hh / 2.0 - tw / 2.0 + ui_view2d_pan_y;
|
||||
if (tx + border > ui_view2d_ww) {
|
||||
ui_view2d_pan_x = ui_view2d_ww / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (tx - border < -tw) {
|
||||
ui_view2d_pan_x = -tw / 2.0 - ui_view2d_ww / 2.0 + border;
|
||||
}
|
||||
if (ty + border > hh) {
|
||||
ui_view2d_pan_y = hh / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (ty - border < -tw) {
|
||||
ui_view2d_pan_y = -tw / 2.0 - hh / 2.0 + border;
|
||||
}
|
||||
|
||||
if (tx + border > ui_view2d_ww) {
|
||||
ui_view2d_pan_x = ui_view2d_ww / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (tx - border < -tw) {
|
||||
ui_view2d_pan_x = -tw / 2.0 - ui_view2d_ww / 2.0 + border;
|
||||
}
|
||||
if (ty + border > hh) {
|
||||
ui_view2d_pan_y = hh / 2.0 + tw / 2.0 - border;
|
||||
}
|
||||
else if (ty - border < -tw) {
|
||||
ui_view2d_pan_y = -tw / 2.0 - hh / 2.0 + border;
|
||||
}
|
||||
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_view2d_pan_x = 0.0;
|
||||
ui_view2d_pan_y = 0.0;
|
||||
ui_view2d_pan_scale = 1.0;
|
||||
if (operator_shortcut(any_map_get(g_keymap, "view_reset"), SHORTCUT_TYPE_STARTED)) {
|
||||
ui_view2d_pan_x = 0.0;
|
||||
ui_view2d_pan_y = 0.0;
|
||||
ui_view2d_pan_scale = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,7 +576,7 @@ void ui_view2d_update(void *_) {
|
||||
i32 scale_percent = math_round((tw / (float)tex->width) * 100);
|
||||
h_zoom->f = scale_percent;
|
||||
g_ui->_w = math_floor(ew + 3);
|
||||
f32 new_percent = ui_slider(h_zoom, string("%d%%", scale_percent), 1, 100, true, 1, false, UI_ALIGN_LEFT, true);
|
||||
f32 new_percent = ui_slider(h_zoom, string("%%", scale_percent), 1, 100, true, 1, true, UI_ALIGN_RIGHT, true);
|
||||
if (h_zoom->changed) {
|
||||
ui_view2d_pan_scale = new_percent / 100.0 * tex->width / (wm * 0.9);
|
||||
ui_view2d_hwnd->redraws = 2;
|
||||
|
||||
Reference in New Issue
Block a user