diff --git a/PanoPainter.xcodeproj/project.pbxproj b/PanoPainter.xcodeproj/project.pbxproj index fa5c59f..0e73ca2 100644 --- a/PanoPainter.xcodeproj/project.pbxproj +++ b/PanoPainter.xcodeproj/project.pbxproj @@ -158,6 +158,8 @@ AD83A0D323268B6F005B0871 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD83A0D223268B6F005B0871 /* MobileCoreServices.framework */; }; AD83A0D9232A7906005B0871 /* node_input_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD83A0D7232A7905005B0871 /* node_input_box.cpp */; }; AD83A0DA232A793A005B0871 /* node_input_box.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD83A0D7232A7905005B0871 /* node_input_box.cpp */; }; + AD83A0DD232AD251005B0871 /* node_dialog_export_ppbr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD83A0DC232AD251005B0871 /* node_dialog_export_ppbr.cpp */; }; + AD83A0DE232AD26F005B0871 /* node_dialog_export_ppbr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD83A0DC232AD251005B0871 /* node_dialog_export_ppbr.cpp */; }; ADA2A57822BE8D8E00C6B6C9 /* node_tool_bucket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADA2A57622BE8D8E00C6B6C9 /* node_tool_bucket.cpp */; }; ADA2A57922BE8D8E00C6B6C9 /* node_tool_bucket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADA2A57622BE8D8E00C6B6C9 /* node_tool_bucket.cpp */; }; ADA3ABF6222C8C370083B825 /* node_panel_quick.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADA3ABF4222C8C350083B825 /* node_panel_quick.cpp */; }; @@ -466,6 +468,8 @@ AD83A0D223268B6F005B0871 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.4.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; AD83A0D7232A7905005B0871 /* node_input_box.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_input_box.cpp; sourceTree = ""; }; AD83A0D8232A7906005B0871 /* node_input_box.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_input_box.h; sourceTree = ""; }; + AD83A0DB232AD251005B0871 /* node_dialog_export_ppbr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node_dialog_export_ppbr.h; sourceTree = ""; }; + AD83A0DC232AD251005B0871 /* node_dialog_export_ppbr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node_dialog_export_ppbr.cpp; sourceTree = ""; }; AD8CF71F1E913F0500083FFD /* log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = log.cpp; sourceTree = ""; }; AD8CF7201E913F0500083FFD /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; AD95AEC31E41EDEC002DD03A /* font.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = font.cpp; sourceTree = ""; }; @@ -718,6 +722,8 @@ ADBC8C491FAE7CC30094B339 /* node_dialog_browse.h */, ADBC8C521FAFD0370094B339 /* node_dialog_cloud.cpp */, ADBC8C501FAFD0360094B339 /* node_dialog_cloud.h */, + AD83A0DC232AD251005B0871 /* node_dialog_export_ppbr.cpp */, + AD83A0DB232AD251005B0871 /* node_dialog_export_ppbr.h */, AD10635D1EC7ADFA002A525F /* node_dialog_open.cpp */, AD10635E1EC7ADFA002A525F /* node_dialog_open.h */, ADC6F4611F3AFA2B004177FA /* node_dialog_layer_rename.cpp */, @@ -1435,6 +1441,7 @@ ADFD32282166C9A000F46F85 /* node_dialog_resize.cpp in Sources */, AD0E5CCB1ECC72AD00C35669 /* node_scroll.cpp in Sources */, AD0E5CBF1ECC72AD00C35669 /* node_dialog_open.cpp in Sources */, + AD83A0DE232AD26F005B0871 /* node_dialog_export_ppbr.cpp in Sources */, ADE4911B1F86E65E00FB8E92 /* advancing_front.cc in Sources */, AD0E5CE31ECC72AD00C35669 /* util.cpp in Sources */, AD0E5CD51ECC72AD00C35669 /* asset.cpp in Sources */, @@ -1559,6 +1566,7 @@ ADC0EB3E1FBDC748004079BB /* node_colorwheel.cpp in Sources */, AD7FB087223E8A43005913AB /* YGEnums.cpp in Sources */, ADD6AFD81F94DEB000E92461 /* node_progress_bar.cpp in Sources */, + AD83A0DD232AD251005B0871 /* node_dialog_export_ppbr.cpp in Sources */, AD0E119B1ECA215600CDA6BB /* node_scroll.cpp in Sources */, ADDC18C522B43004008D7F60 /* canvas_layer.cpp in Sources */, ADA3ABF6222C8C370083B825 /* node_panel_quick.cpp in Sources */, diff --git a/src/node_dialog_export_ppbr.cpp b/src/node_dialog_export_ppbr.cpp index 87f8a10..ca5a484 100644 --- a/src/node_dialog_export_ppbr.cpp +++ b/src/node_dialog_export_ppbr.cpp @@ -20,6 +20,7 @@ void NodeDialogExportPPBR::init() m_border_color = tpl->m_border_color;; m_thinkness = tpl->m_thinkness;; init_controls(); + m_capture_children = false; // don't capture children events on mouse_capture } void NodeDialogExportPPBR::init_controls() @@ -30,3 +31,9 @@ void NodeDialogExportPPBR::init_controls() destroy(); }; } + +void NodeDialogExportPPBR::added(Node* parent) +{ + NodeBorder::added(parent); + mouse_capture(); +} diff --git a/src/node_dialog_export_ppbr.h b/src/node_dialog_export_ppbr.h index 76ce186..1566440 100644 --- a/src/node_dialog_export_ppbr.h +++ b/src/node_dialog_export_ppbr.h @@ -12,5 +12,6 @@ public: virtual Node* clone_instantiate() const override; virtual void clone_finalize(Node* dest) const override; virtual void init() override; + virtual void added(Node* parent) override; void init_controls(); }; diff --git a/src/node_text_input.cpp b/src/node_text_input.cpp index 27ec9e5..d435d6e 100644 --- a/src/node_text_input.cpp +++ b/src/node_text_input.cpp @@ -141,3 +141,9 @@ void NodeTextInput::set_text(const std::string& s) m_string = s; } +void NodeTextInput::destroy() +{ + if (root()->current_key_capture.get() == this) + App::I->hideKeyboard(); + NodeBorder::destroy(); +} diff --git a/src/node_text_input.h b/src/node_text_input.h index 48e73e9..00375b6 100644 --- a/src/node_text_input.h +++ b/src/node_text_input.h @@ -16,6 +16,7 @@ public: virtual void init() override; virtual void on_tick(float dt) override; virtual kEventResult handle_event(Event* e) override; + virtual void destroy() override; void init_controls(); void set_text(const std::string& s); };