Fixed quick menu popping up in incorrect position if GUI Scale is not 1.0
This commit is contained in:
parent
6fb150e72a
commit
1e30e3596d
3 changed files with 11 additions and 5 deletions
|
|
@ -254,7 +254,7 @@ void DrawingProgram::update() {
|
|||
if(world.main.toolbar.paintPopupLocation)
|
||||
world.main.toolbar.paintPopupLocation = std::nullopt;
|
||||
else
|
||||
world.main.toolbar.paintPopupLocation = world.main.input.mouse.pos / world.main.window.scale;
|
||||
world.main.toolbar.paintPopupLocation = world.main.input.mouse.pos / world.main.toolbar.final_gui_scale();
|
||||
}
|
||||
|
||||
controls.previousMouseWorldPos = controls.currentMouseWorldPos;
|
||||
|
|
|
|||
|
|
@ -1673,7 +1673,7 @@ void Toolbar::start_gui() {
|
|||
io->mouse.rightClick = main.input.mouse.rightClicks;
|
||||
io->mouse.leftHeld = main.input.mouse.leftDown;
|
||||
io->mouse.rightHeld = main.input.mouse.rightDown;
|
||||
io->mouse.globalPos = main.input.mouse.pos / (guiScale * main.window.scale);
|
||||
io->mouse.globalPos = main.input.mouse.pos / final_gui_scale();
|
||||
io->mouse.scroll = main.input.mouse.scrollAmount;
|
||||
io->deltaTime = main.deltaTime;
|
||||
|
||||
|
|
@ -1707,6 +1707,10 @@ void Toolbar::start_gui() {
|
|||
gui.begin();
|
||||
}
|
||||
|
||||
float Toolbar::final_gui_scale() {
|
||||
return guiScale * main.window.scale;
|
||||
}
|
||||
|
||||
void Toolbar::end_gui() {
|
||||
gui.end();
|
||||
if(io->acceptingTextInput)
|
||||
|
|
@ -1718,7 +1722,7 @@ void Toolbar::end_gui() {
|
|||
void Toolbar::draw(SkCanvas* canvas) {
|
||||
if(!main.takingScreenshot) {
|
||||
canvas->save();
|
||||
canvas->scale(guiScale * main.window.scale, guiScale * main.window.scale);
|
||||
canvas->scale(final_gui_scale(), final_gui_scale());
|
||||
gui.draw(canvas);
|
||||
canvas->restore();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ class Toolbar {
|
|||
Vector4f* colorLeft = nullptr;
|
||||
Vector4f* colorRight = nullptr;
|
||||
std::optional<Vector2f> paintPopupLocation;
|
||||
|
||||
float final_gui_scale();
|
||||
private:
|
||||
static void sdl_open_file_dialog_callback(void* userData, const char * const * fileList, int filter);
|
||||
|
||||
|
|
@ -128,14 +130,14 @@ class Toolbar {
|
|||
bool justAssignedColorLeft = false;
|
||||
bool justAssignedColorRight = false;
|
||||
|
||||
float guiScale = 1.0f;
|
||||
|
||||
bool showPerformance = false;
|
||||
|
||||
bool menuPopUpOpen = false;
|
||||
bool optionsMenuOpen = false;
|
||||
bool playerMenuOpen = false;
|
||||
|
||||
float guiScale = 1.0f;
|
||||
|
||||
enum {
|
||||
CHATBOXSTATE_OPEN,
|
||||
CHATBOXSTATE_JUSTOPEN,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue