Add a margin to EditorSpinSlider to visually line up the edited number
This means clicking on an EditorSpinSlider to edit its value will
no longer cause the number to be visually offset while it's
being edited.
(cherry picked from commit cc615fee5f
)
This commit is contained in:
parent
bdd1e74869
commit
3bdb39bec4
|
@ -31,6 +31,7 @@
|
|||
#include "editor_spin_slider.h"
|
||||
#include "core/math/expression.h"
|
||||
#include "core/os/input.h"
|
||||
#include "editor_node.h"
|
||||
#include "editor_scale.h"
|
||||
|
||||
String EditorSpinSlider::get_tooltip(const Point2 &p_pos) const {
|
||||
|
@ -203,6 +204,19 @@ void EditorSpinSlider::_notification(int p_what) {
|
|||
}
|
||||
}
|
||||
|
||||
if (p_what == NOTIFICATION_READY) {
|
||||
// Add a left margin to the stylebox to make the number align with the Label
|
||||
// when it's edited. The LineEdit "focus" stylebox uses the "normal" stylebox's
|
||||
// default margins.
|
||||
Ref<StyleBoxFlat> stylebox =
|
||||
EditorNode::get_singleton()->get_theme_base()->get_stylebox("normal", "LineEdit")->duplicate();
|
||||
// EditorSpinSliders with a label have more space on the left, so add an
|
||||
// higher margin to match the location where the text begins.
|
||||
// The margin values below were determined by empirical testing.
|
||||
stylebox->set_default_margin(MARGIN_LEFT, (get_label() != String() ? 23 : 16) * EDSCALE);
|
||||
value_input->add_style_override("normal", stylebox);
|
||||
}
|
||||
|
||||
if (p_what == NOTIFICATION_DRAW) {
|
||||
|
||||
updown_offset = -1;
|
||||
|
|
Loading…
Reference in New Issue