From 65fd232e102ff89564d5417771e94bed3d1d31c7 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 18 Nov 2021 00:01:19 +0100 Subject: Fix window not being visible on kde because color map is deleted while the window is in use, text editing not working for the first character --- depends/mglpp | 2 +- src/Body.cpp | 8 ++++---- src/QuickMedia.cpp | 14 +++----------- src/Text.cpp | 8 ++------ 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/depends/mglpp b/depends/mglpp index ff7593f..870f3ac 160000 --- a/depends/mglpp +++ b/depends/mglpp @@ -1 +1 @@ -Subproject commit ff7593f5e6ee131eefe5d1e793626fe05a9513b1 +Subproject commit 870f3ac7f31fd4056f95ebec1844a22ef64c7472 diff --git a/src/Body.cpp b/src/Body.cpp index d8e4acd..cc0f66c 100644 --- a/src/Body.cpp +++ b/src/Body.cpp @@ -1453,12 +1453,12 @@ namespace QuickMedia { window.draw(border_left); if(item->embedded_item) { - mgl::vec2f embedded_item_pos(std::floor(item_pos.x + text_offset_x + embedded_item_border_width + body_spacing[body_theme].padding_x), std::floor(item_pos.y + body_spacing[body_theme].embedded_item_padding_y + 6.0f)); + mgl::vec2f embedded_item_pos(std::floor(item_pos.x + text_offset_x + embedded_item_border_width + body_spacing[body_theme].padding_x), std::floor(item_pos.y + body_spacing[body_theme].embedded_item_padding_y)); mgl::vec2f embedded_item_size(embedded_item_width, embedded_item_height); draw_item(window, item->embedded_item, embedded_item_pos, embedded_item_size, false, true); } else { embedded_item_load_text.set_string(embedded_item_status_to_string(item->embedded_item_status)); - embedded_item_load_text.set_position(vec2f_floor(item_pos.x + text_offset_x + embedded_item_border_width + body_spacing[body_theme].padding_x, item_pos.y + embedded_item_height * 0.5f - (body_spacing[body_theme].embedded_item_font_size + 5.0f) * 0.5f + 6.0f)); + embedded_item_load_text.set_position(vec2f_floor(item_pos.x + text_offset_x + embedded_item_border_width + body_spacing[body_theme].padding_x, item_pos.y + embedded_item_height * 0.5f - (body_spacing[body_theme].embedded_item_font_size + 5.0f) * 0.5f)); window.draw(embedded_item_load_text); } item_pos.y += embedded_item_height + 4.0f; @@ -1662,9 +1662,9 @@ namespace QuickMedia { if(include_embedded_item && item->embedded_item_status != FetchStatus::NONE) { const float embedded_item_width = std::floor(width - text_offset_x - embedded_item_border_width - body_spacing[body_theme].padding_x); if(item->embedded_item) - item_height += (get_item_height(item->embedded_item.get(), embedded_item_width, load_texture, false) + 6.0f + body_spacing[body_theme].embedded_item_padding_y * 2.0f); + item_height += (get_item_height(item->embedded_item.get(), embedded_item_width, load_texture, false) + body_spacing[body_theme].embedded_item_padding_y * 2.0f); else - item_height += ((body_spacing[body_theme].embedded_item_font_size + 5.0f) + 6.0f + body_spacing[body_theme].embedded_item_padding_y * 2.0f); + item_height += ((body_spacing[body_theme].embedded_item_font_size + 5.0f) + body_spacing[body_theme].embedded_item_padding_y * 2.0f); has_loaded_text = true; // TODO: Remove this } if(item->description_text) { diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index c735f55..a9eab08 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -3794,14 +3794,6 @@ namespace QuickMedia { mgl::vec2i prev_mouse_pos; }; - static mgl::vec2f to_vec2f(mgl::vec2i vec) { - return mgl::vec2f(vec.x, vec.y); - } - - static mgl::vec2f to_vec2f(mgl::vec2u vec) { - return mgl::vec2f(vec.x, vec.y); - } - static mgl::vec2f floor(mgl::vec2f vec) { return { std::floor(vec.x), std::floor(vec.y) }; } @@ -4052,7 +4044,7 @@ namespace QuickMedia { navigation_stage = NavigationStage::VIEWING_ATTACHED_IMAGE; image_control.zoom = 1.0f; - image_control.offset = to_vec2f(attached_image_texture->get_size()) * 0.5f; + image_control.offset = attached_image_texture->get_size().to_vec2f() * 0.5f; image_control.pressed = window.is_mouse_button_pressed(mgl::Mouse::Left); image_control.pressed = false; @@ -4208,14 +4200,14 @@ namespace QuickMedia { const mgl::vec2i mouse_diff = mgl::vec2i(event.mouse_move.x, event.mouse_move.y) - image_control.prev_mouse_pos; image_control.prev_mouse_pos.x = event.mouse_move.x; image_control.prev_mouse_pos.y = event.mouse_move.y; - image_control.offset -= (to_vec2f(mouse_diff) / image_control.zoom); + image_control.offset -= (mouse_diff.to_vec2f() / image_control.zoom); image_control.moved = true; idle_active_handler(); } else if(event.type == mgl::Event::KeyPressed) { if(event.key.code == mgl::Keyboard::W) { image_control.zoom = 1.0f; image_control.moved = false; - image_control.offset = to_vec2f(attached_image_texture->get_size()) * 0.5f; + image_control.offset = attached_image_texture->get_size().to_vec2f() * 0.5f; attached_image_sprite.set_origin(mgl::vec2f(0.0f, 0.0f)); attached_image_sprite.set_scale(mgl::vec2f(1.0f, 1.0f)); } diff --git a/src/Text.cpp b/src/Text.cpp index 39e5bbd..18a87f4 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -1013,9 +1013,7 @@ namespace QuickMedia str += '\n'; } else { const size_t str_index = get_string_index_from_caret_index(caretIndex); - if(str_index > 0) { - str.insert(str_index, 1, '\n'); - } + str.insert(str_index, 1, '\n'); } ++caretIndex; @@ -1044,9 +1042,7 @@ namespace QuickMedia str += stringToAdd; } else { const size_t str_index = get_string_index_from_caret_index(caretIndex); - if(str_index > 0 && str_index != std::string::npos) { - str.insert(str_index, stringToAdd); - } + str.insert(str_index, stringToAdd); } caretIndex += utf8_get_length(stringToAdd); -- cgit v1.2.3