fix text-related tag events, remove warnings, make search engine not fetch /index.html separately but /
This commit is contained in:
@@ -227,7 +227,7 @@ static func _on_child_mouse_entered(panel: PanelContainer):
|
||||
_on_panel_mouse_entered(panel)
|
||||
|
||||
static func _on_child_mouse_exited(panel: PanelContainer):
|
||||
panel.get_tree().create_timer(0.01).timeout.connect(func(): _check_panel_hover(panel))
|
||||
_create_panel_check_timer(panel)
|
||||
|
||||
static func _on_panel_mouse_entered(panel: PanelContainer):
|
||||
panel.set_meta("is_hovering", true)
|
||||
@@ -241,7 +241,19 @@ static func _on_panel_mouse_entered(panel: PanelContainer):
|
||||
StyleManager.apply_transform_properties_direct(transform_target, hover_styles)
|
||||
|
||||
static func _on_panel_mouse_exited_with_delay(panel: PanelContainer):
|
||||
panel.get_tree().create_timer(0.01).timeout.connect(func(): _check_panel_hover(panel))
|
||||
_create_panel_check_timer(panel)
|
||||
|
||||
static func _create_panel_check_timer(panel: PanelContainer):
|
||||
if not is_instance_valid(panel):
|
||||
return
|
||||
var timer = panel.get_tree().create_timer(0.01)
|
||||
var panel_ref = weakref(panel)
|
||||
timer.timeout.connect(func(): _check_panel_hover_safe(panel_ref))
|
||||
|
||||
static func _check_panel_hover_safe(panel_ref: WeakRef):
|
||||
var panel = panel_ref.get_ref()
|
||||
if panel:
|
||||
_check_panel_hover(panel)
|
||||
|
||||
static func _check_panel_hover(panel: PanelContainer):
|
||||
if not panel or not is_instance_valid(panel):
|
||||
|
||||
@@ -205,7 +205,6 @@ static func load_all_crumbs(domain: String) -> Dictionary:
|
||||
return {}
|
||||
|
||||
var crumbs = {}
|
||||
var current_time = Time.get_ticks_msec() / 1000.0
|
||||
var changed = false
|
||||
|
||||
for crumb_name in crumbs_data:
|
||||
|
||||
@@ -127,7 +127,7 @@ static func handle_element_append(operation: Dictionary, dom_parser: HTMLParser,
|
||||
|
||||
if parent_dom_node:
|
||||
# Render the appended element
|
||||
render_new_element.call_deferred(child_element, parent_dom_node, dom_parser, lua_api)
|
||||
render_new_element.call_deferred(child_element, parent_dom_node, dom_parser)
|
||||
|
||||
static func handle_element_remove(operation: Dictionary, dom_parser: HTMLParser) -> void:
|
||||
var element_id: String = operation.element_id
|
||||
@@ -190,9 +190,9 @@ static func handle_insert_before(operation: Dictionary, dom_parser: HTMLParser,
|
||||
parent_dom_node = dom_parser.parse_result.dom_nodes.get(parent_id, null)
|
||||
|
||||
if parent_dom_node:
|
||||
handle_visual_insertion_by_reference(parent_id, new_child_element, reference_child_id, true, dom_parser, lua_api)
|
||||
handle_visual_insertion_by_reference(parent_id, new_child_element, reference_child_id, true, dom_parser)
|
||||
|
||||
static func handle_insert_after(operation: Dictionary, dom_parser: HTMLParser, lua_api) -> void:
|
||||
static func handle_insert_after(operation: Dictionary, dom_parser: HTMLParser) -> void:
|
||||
var parent_id: String = operation.parent_id
|
||||
var new_child_id: String = operation.new_child_id
|
||||
var reference_child_id: String = operation.reference_child_id
|
||||
@@ -229,7 +229,7 @@ static func handle_insert_after(operation: Dictionary, dom_parser: HTMLParser, l
|
||||
parent_dom_node = dom_parser.parse_result.dom_nodes.get(parent_id, null)
|
||||
|
||||
if parent_dom_node:
|
||||
handle_visual_insertion_by_reference(parent_id, new_child_element, reference_child_id, false, dom_parser, lua_api)
|
||||
handle_visual_insertion_by_reference(parent_id, new_child_element, reference_child_id, false, dom_parser)
|
||||
|
||||
static func handle_replace_child(operation: Dictionary, dom_parser: HTMLParser, lua_api) -> void:
|
||||
var parent_id: String = operation.parent_id
|
||||
@@ -262,13 +262,12 @@ static func handle_replace_child(operation: Dictionary, dom_parser: HTMLParser,
|
||||
# Handle visual rendering
|
||||
handle_visual_replacement(old_child_id, new_child_element, parent_id, dom_parser, lua_api)
|
||||
|
||||
static func render_new_element(element: HTMLParser.HTMLElement, parent_node: Node, dom_parser: HTMLParser, lua_api) -> void:
|
||||
static func render_new_element(element: HTMLParser.HTMLElement, parent_node: Node, dom_parser: HTMLParser) -> void:
|
||||
# Get reference to main scene for rendering
|
||||
var main_scene = Engine.get_main_loop().current_scene
|
||||
if not main_scene:
|
||||
return
|
||||
|
||||
var element_id = element.get_attribute("id")
|
||||
|
||||
# Create the visual node for the element
|
||||
var element_node = await main_scene.create_element_node(element, dom_parser)
|
||||
@@ -341,7 +340,7 @@ static func _find_input_control_with_file_info(node: Node) -> Node:
|
||||
|
||||
return null
|
||||
|
||||
static func _get_select_value(element: HTMLParser.HTMLElement, dom_node: Node) -> String:
|
||||
static func _get_select_value(_element: HTMLParser.HTMLElement, dom_node: Node) -> String:
|
||||
if dom_node is OptionButton:
|
||||
var option_button = dom_node as OptionButton
|
||||
var selected_index = option_button.selected
|
||||
@@ -353,7 +352,7 @@ static func _get_select_value(element: HTMLParser.HTMLElement, dom_node: Node) -
|
||||
return option_button.get_item_text(selected_index)
|
||||
return ""
|
||||
|
||||
static func _set_select_value(element: HTMLParser.HTMLElement, dom_node: Node, value: Variant) -> void:
|
||||
static func _set_select_value(_element: HTMLParser.HTMLElement, dom_node: Node, value: Variant) -> void:
|
||||
if dom_node is OptionButton:
|
||||
var option_button = dom_node as OptionButton
|
||||
var target_value = str(value)
|
||||
@@ -433,7 +432,7 @@ static func clone_element(element: HTMLParser.HTMLElement, deep: bool) -> HTMLPa
|
||||
return cloned
|
||||
|
||||
|
||||
static func handle_visual_insertion_by_reference(parent_element_id: String, new_child_element: HTMLParser.HTMLElement, reference_element_id: String, insert_before: bool, dom_parser: HTMLParser, lua_api) -> void:
|
||||
static func handle_visual_insertion_by_reference(parent_element_id: String, new_child_element: HTMLParser.HTMLElement, reference_element_id: String, insert_before: bool, dom_parser: HTMLParser) -> void:
|
||||
var parent_dom_node: Node = null
|
||||
if parent_element_id == "body":
|
||||
var main_scene = Engine.get_main_loop().current_scene
|
||||
@@ -646,7 +645,7 @@ static func add_element_methods(vm: LuauVM, lua_api: LuaAPI) -> void:
|
||||
vm.lua_pushcallable(LuaDOMUtils._element_unfocus_wrapper, "element.unfocus")
|
||||
vm.lua_setfield(-2, "unfocus")
|
||||
|
||||
_add_classlist_support(vm, lua_api)
|
||||
add_classlist_support(vm)
|
||||
|
||||
vm.lua_newtable()
|
||||
vm.lua_pushcallable(LuaDOMUtils._element_index_wrapper, "element.__index")
|
||||
@@ -876,7 +875,7 @@ static func _element_clone_wrapper(vm: LuauVM) -> int:
|
||||
var cloned_element = clone_element(element, deep)
|
||||
|
||||
# Assign new ID to cloned element
|
||||
var new_id = lua_api.get_or_assign_element_id(cloned_element)
|
||||
lua_api.get_or_assign_element_id(cloned_element)
|
||||
|
||||
# Add to parser's element collection
|
||||
lua_api.dom_parser.parse_result.all_elements.append(cloned_element)
|
||||
@@ -1074,7 +1073,7 @@ static func _element_index_wrapper(vm: LuauVM) -> int:
|
||||
vm.lua_remove(-2)
|
||||
return 1
|
||||
|
||||
static func _add_classlist_support(vm: LuauVM, lua_api: LuaAPI) -> void:
|
||||
static func add_classlist_support(vm: LuauVM) -> void:
|
||||
vm.lua_newtable()
|
||||
|
||||
vm.lua_getfield(-2, "_element_id")
|
||||
@@ -1173,7 +1172,6 @@ static func _classlist_toggle_wrapper(vm: LuauVM) -> int:
|
||||
return 0
|
||||
|
||||
static func _classlist_contains_wrapper(vm: LuauVM) -> int:
|
||||
var start_time = Time.get_ticks_msec()
|
||||
|
||||
var lua_api = vm.get_meta("lua_api") as LuaAPI
|
||||
if not lua_api:
|
||||
|
||||
@@ -220,13 +220,13 @@ static func disconnect_subscription(subscription, lua_api) -> void:
|
||||
match subscription.connected_signal:
|
||||
"pressed":
|
||||
if target_node.has_signal("pressed"):
|
||||
if subscription.has("wrapper_func") and subscription.wrapper_func:
|
||||
if subscription.wrapper_func:
|
||||
target_node.pressed.disconnect(subscription.wrapper_func)
|
||||
else:
|
||||
target_node.pressed.disconnect(lua_api._on_event_triggered.bind(subscription))
|
||||
"gui_input":
|
||||
if target_node.has_signal("gui_input"):
|
||||
if subscription.has("wrapper_func") and subscription.wrapper_func:
|
||||
if subscription.wrapper_func:
|
||||
target_node.gui_input.disconnect(subscription.wrapper_func)
|
||||
else:
|
||||
target_node.gui_input.disconnect(lua_api._on_gui_input_click.bind(subscription))
|
||||
|
||||
@@ -30,8 +30,7 @@ static func _lua_json_parse_handler(vm: LuauVM) -> int:
|
||||
static func _lua_json_stringify_handler(vm: LuauVM) -> int:
|
||||
var value = vm.lua_tovariant(1)
|
||||
|
||||
var json = JSON.new()
|
||||
var json_string = json.stringify(value)
|
||||
var json_string = JSON.stringify(value)
|
||||
|
||||
vm.lua_pushstring(json_string)
|
||||
return 1
|
||||
|
||||
@@ -253,7 +253,6 @@ func _print_handler(vm: LuauVM) -> int:
|
||||
message_parts.append(arg_str)
|
||||
|
||||
var final_message = "\t".join(message_parts)
|
||||
var current_time = Time.get_ticks_msec() / 1000.0
|
||||
|
||||
call_deferred("_emit_print_output", final_message)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ class WebSocketWrapper:
|
||||
var vm: LuauVM
|
||||
var url: String
|
||||
var websocket: WebSocketPeer
|
||||
var is_connected: bool = false
|
||||
var connection_status: bool = false
|
||||
var event_handlers: Dictionary = {}
|
||||
var timer: Timer
|
||||
var last_state: int = -1
|
||||
@@ -20,7 +20,7 @@ class WebSocketWrapper:
|
||||
websocket = WebSocketPeer.new()
|
||||
|
||||
func connect_to_url():
|
||||
if is_connected:
|
||||
if connection_status:
|
||||
return
|
||||
|
||||
var error = websocket.connect_to_url(url)
|
||||
@@ -54,8 +54,8 @@ class WebSocketWrapper:
|
||||
|
||||
match state:
|
||||
WebSocketPeer.STATE_OPEN:
|
||||
if not is_connected:
|
||||
is_connected = true
|
||||
if not connection_status:
|
||||
connection_status = true
|
||||
trigger_event("open", {})
|
||||
|
||||
# Check for messages
|
||||
@@ -65,8 +65,8 @@ class WebSocketWrapper:
|
||||
trigger_event("message", {"data": message})
|
||||
|
||||
WebSocketPeer.STATE_CLOSED:
|
||||
if is_connected:
|
||||
is_connected = false
|
||||
if connection_status:
|
||||
connection_status = false
|
||||
trigger_event("close", {})
|
||||
|
||||
# Clean up timer
|
||||
@@ -80,26 +80,26 @@ class WebSocketWrapper:
|
||||
|
||||
WebSocketPeer.STATE_CLOSING:
|
||||
# Connection is closing
|
||||
if is_connected:
|
||||
is_connected = false
|
||||
if connection_status:
|
||||
connection_status = false
|
||||
|
||||
_:
|
||||
# Unknown state or connection failed
|
||||
if is_connected:
|
||||
is_connected = false
|
||||
if connection_status:
|
||||
connection_status = false
|
||||
trigger_event("close", {})
|
||||
elif not is_connected:
|
||||
elif not connection_status:
|
||||
# This might be a connection failure
|
||||
trigger_event("error", {"message": "Connection failed or was rejected by server"})
|
||||
|
||||
func send_message(message: String):
|
||||
if is_connected and websocket:
|
||||
if connection_status and websocket:
|
||||
websocket.send_text(message)
|
||||
|
||||
func close_connection():
|
||||
if websocket:
|
||||
websocket.close()
|
||||
is_connected = false
|
||||
connection_status = false
|
||||
|
||||
if timer:
|
||||
timer.queue_free()
|
||||
@@ -222,7 +222,7 @@ static func _websocket_send(vm: LuauVM) -> int:
|
||||
|
||||
# Get wrapper instance
|
||||
var wrapper: WebSocketWrapper = websocket_instances.get(instance_id)
|
||||
if wrapper and wrapper.is_connected:
|
||||
if wrapper and wrapper.connection_status:
|
||||
wrapper.send_message(message)
|
||||
else:
|
||||
vm.luaL_error("WebSocket is not connected")
|
||||
|
||||
Reference in New Issue
Block a user