0 votes


I've created a modal popup with nested LineEdits, the problem is that the popup closes when I try to select one of the LineEdits with a mouse. TAB-select works fine though. i've tried messing with set_focus_mode and set_stop_mouse but nothing seems to work. Here's a example code.

extends Button

onready var m_popup = Popup.new()
onready var m_x = LineEdit.new()
onready var m_y = LineEdit.new()

func _ready():
    connect("pressed", self, "clicked")


    var hBox = HBoxContainer.new()



func clicked():
   var pos = get_global_mouse_pos()
   pos.x -= 125
   pos.y += 10
asked Jul 26, 2017 in Engine by tommila (23 points)

1 Answer

0 votes
Best answer

That is because a popup is supposed to close when you click somewhere outside of its boundaries and I am going to guess that the LineEdits are not within its margins due to the Container. There are a couple of solutions for this:
You could simply use a normal "Control" and use .show() and .hide() for manipulating its visibility. You can also use these methods on a popup by the way instead of .popup() which will show the Popup without disappearing automatically.
And finally, you can set the popup to "Exclusive" with the method set_exclusive(true) in order to make it hide other popups on the screen and to stay visible.

I hope any of these solutions help you! :D

answered Jul 26, 2017 by BE-Never Games (299 points)
selected Jul 27, 2017 by tommila

Manually resizing the popup boundaries/size solved this problem. It's interesting, though, that the popup object isn't inherited from a container object. Thanks for pointing me to the right direction!

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.