浏览代码

Merge pull request #26105 from nekomatata/texture-button-mask-fix

TextureButton with click mask only can be clicked
Rémi Verschelde 6 年之前
父节点
当前提交
47c4ec7f1d
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      scene/gui/texture_button.cpp

+ 5 - 1
scene/gui/texture_button.cpp

@@ -64,7 +64,9 @@ bool TextureButton::has_point(const Point2 &p_point) const {
 		Rect2 rect = Rect2();
 		Size2 mask_size = click_mask->get_size();
 
-		if (_tile) {
+		if (_position_rect.no_area()) {
+			rect.size = mask_size;
+		} else if (_tile) {
 			// if the stretch mode is tile we offset the point to keep it inside the mask size
 			rect.size = mask_size;
 			if (_position_rect.has_point(point)) {
@@ -216,6 +218,8 @@ void TextureButton::_notification(int p_what) {
 					draw_texture_rect(texdraw, _position_rect, _tile);
 				else
 					draw_texture_rect_region(texdraw, _position_rect, _texture_region);
+			} else {
+				_position_rect = Rect2();
 			}
 			if (has_focus() && focused.is_valid()) {