Skip to content

Commit 6b63645

Browse files
authored
editor: fix camera stuck when doubleclick on bottom icons (#299)
1 parent 4d45ce7 commit 6b63645

File tree

5 files changed

+42
-0
lines changed

5 files changed

+42
-0
lines changed

[editor]/editor_gui/client/elementproperties.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,10 @@ function addOKButtonHandler (button, state)
763763
end
764764

765765
function openPropertiesBox( element, resourceName, shortcut )
766+
if isPropertiesOpen then
767+
return false
768+
end
769+
766770
selectedElement = nil
767771
--Tutorial hook
768772
if tutorialVars.detectPropertiesBox then

[editor]/editor_main/client/main.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,6 +1049,10 @@ function setWorkingInterior( interior )
10491049
end
10501050

10511051
function suspend(leavePlayersAttached)
1052+
if g_suspended then
1053+
return false
1054+
end
1055+
10521056
outputConsole("Suspending editor_main.")
10531057

10541058
local move_resource
@@ -1082,6 +1086,10 @@ function suspend(leavePlayersAttached)
10821086
end
10831087

10841088
function resume(dontEnableMove)
1089+
if (not g_suspended) then
1090+
return false
1091+
end
1092+
10851093
outputConsole("Resuming editor_main.")
10861094

10871095
local move_resource

[editor]/move_cursor/move_cursor.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ local rotateSpeed = {slow = 1, medium = 8, fast = 40} -- degrees per scroll
1212
local zoomSpeed = {slow = 0.5, medium = 2, fast = 6} -- units per scroll
1313
local ignoreElementWalls = true -- 'false' not supported yet
1414

15+
local isEnabled = false
16+
1517
local root = getRootElement()
1618

1719
local camX, camY, camZ
@@ -348,15 +350,22 @@ function getZoomSpeeds()
348350
end
349351

350352
function disable()
353+
if (not isEnabled) then
354+
return false
355+
end
351356
-- remove events, unbind keys
352357
removeEventHandler("onClientCursorMove", root, onClientCursorMove_cursor)
353358
unbindControl("quick_rotate_increase", "down", rotateWithMouseWheel)
354359
unbindControl("quick_rotate_decrease", "down", rotateWithMouseWheel)
355360
unbindControl("zoom_in", "down", zoomWithMouseWheel)
356361
unbindControl("zoom_out", "down", zoomWithMouseWheel)
362+
isEnabled = false
357363
end
358364

359365
function enable()
366+
if isEnabled then
367+
return false
368+
end
360369
-- add events, bind keys
361370
ignoreFirst = true
362371
addEventHandler("onClientCursorMove", root, onClientCursorMove_cursor)
@@ -365,4 +374,5 @@ function enable()
365374
bindControl("zoom_in", "down", zoomWithMouseWheel) --zoom in
366375
bindControl("zoom_out", "down", zoomWithMouseWheel) --zoom out
367376
setTimer ( processCursorMove, 50, 1 ) --Lazy but we have to wait for MTA to switch modes
377+
isEnabled = true
368378
end

[editor]/move_freecam/move_freecam.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ local rotateSpeed = {slow = 1, medium = 8, fast = 40} -- degrees per scroll
1111
local zoomSpeed = {slow = 0.5, medium = 2, fast = 6} -- units per scroll
1212
local ignoreElementWalls = true -- 'false' not supported yet
1313

14+
local isEnabled = false
15+
1416
local root = getRootElement()
1517

1618
local camX, camY, camZ
@@ -297,17 +299,25 @@ function getZoomSpeeds()
297299
end
298300

299301
function enable()
302+
if isEnabled then
303+
return false
304+
end
300305
addEventHandler("onClientRender", root, onClientRender_freecam)
301306
bindControl("quick_rotate_increase", "down", rotateWithMouseWheel) --rotate left
302307
bindControl("quick_rotate_decrease", "down", rotateWithMouseWheel) --rotate right
303308
bindControl("zoom_in", "down", zoomWithMouseWheel) --zoom in
304309
bindControl("zoom_out", "down", zoomWithMouseWheel) --zoom out
310+
isEnabled = true
305311
end
306312

307313
function disable()
314+
if (not isEnabled) then
315+
return false
316+
end
308317
removeEventHandler("onClientRender", root, onClientRender_freecam)
309318
unbindControl("quick_rotate_increase", "down", rotateWithMouseWheel) --rotate left
310319
unbindControl("quick_rotate_decrease", "down", rotateWithMouseWheel) --rotate right
311320
unbindControl("zoom_in", "down", zoomWithMouseWheel) --zoom in
312321
unbindControl("zoom_out", "down", zoomWithMouseWheel) --zoom out
322+
isEnabled = false
313323
end

[editor]/move_keyboard/move_keyboard.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ local ignoreAllSurfaces = true
55
local moveSpeed = {slow = .025, medium = .25, fast = 2} -- meters per frame
66
local rotateSpeed = {slow = 1, medium = 8, fast = 40} -- degrees per scroll or frame
77

8+
local isEnabled = false
9+
810
local selectedElement
911

1012
local posX, posY, posZ
@@ -489,15 +491,23 @@ function toggleAxesLock ( bool )
489491
end
490492

491493
function enable()
494+
if isEnabled then
495+
return false
496+
end
492497
bindControl("quick_rotate_increase", "down", rotateWithMouseWheel) --rotate left
493498
bindControl("quick_rotate_decrease", "down", rotateWithMouseWheel) --rotate right
494499
addEventHandler("onClientRender", root, onClientRender_keyboard)
500+
isEnabled = true
495501
end
496502

497503
function disable()
504+
if (not isEnabled) then
505+
return false
506+
end
498507
unbindControl("quick_rotate_increase", "down", rotateWithMouseWheel) --rotate left
499508
unbindControl("quick_rotate_decrease", "down", rotateWithMouseWheel) --rotate right
500509
removeEventHandler("onClientRender", root, onClientRender_keyboard)
510+
isEnabled = false
501511
end
502512

503513
function setMovementType(movementType)

0 commit comments

Comments
 (0)