[DEBUG] pb on focus for the fileChooser pop-up

This commit is contained in:
Edouard DUPIN 2014-06-03 21:24:32 +02:00
parent 7a1293c541
commit 9ae39eda36
4 changed files with 19 additions and 11 deletions

2
external/etk vendored

@ -1 +1 @@
Subproject commit 6bb7f2e911a42e62839a8c2795d0196490c0e088 Subproject commit cfc4d435b433fba9414330815b29e26cfe82927d

View File

@ -77,43 +77,45 @@ ewol::widget::Manager::~Manager() {
* *************************************************************************/ * *************************************************************************/
void ewol::widget::Manager::focusKeep(const ewol::object::Shared<ewol::Widget>& _newWidget) { void ewol::widget::Manager::focusKeep(const ewol::object::Shared<ewol::Widget>& _newWidget) {
if (nullptr == _newWidget) { if (_newWidget == nullptr) {
// nothing to do ... // nothing to do ...
return; return;
} }
EWOL_VERBOSE("focusKeep=" << _newWidget->getId() );
//etk::log::displayBacktrace();
if (_newWidget == m_focusWidgetCurrent) { if (_newWidget == m_focusWidgetCurrent) {
// nothing to do ... // nothing to do ...
return; return;
} }
if (nullptr != m_focusWidgetCurrent) { if (m_focusWidgetCurrent != nullptr) {
EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() ); EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() );
m_focusWidgetCurrent->rmFocus(); m_focusWidgetCurrent->rmFocus();
m_focusWidgetCurrent = nullptr; m_focusWidgetCurrent = nullptr;
} }
if (false == _newWidget->canHaveFocus()) { if (_newWidget->canHaveFocus() == false) {
EWOL_VERBOSE("Widget can not have focus, id=" << _newWidget->getId() ); EWOL_DEBUG("Widget can not have focus, id=" << _newWidget->getId() );
return; return;
} }
m_focusWidgetCurrent = _newWidget; m_focusWidgetCurrent = _newWidget;
if (nullptr != m_focusWidgetCurrent) { if (m_focusWidgetCurrent != nullptr) {
EWOL_DEBUG("Set focus on WidgetID=" << m_focusWidgetCurrent->getId() ); EWOL_DEBUG("Set focus on WidgetID=" << m_focusWidgetCurrent->getId() );
m_focusWidgetCurrent->setFocus(); m_focusWidgetCurrent->setFocus();
} }
} }
void ewol::widget::Manager::focusSetDefault(const ewol::object::Shared<ewol::Widget>& _newWidget) { void ewol::widget::Manager::focusSetDefault(const ewol::object::Shared<ewol::Widget>& _newWidget) {
if( nullptr != _newWidget if( _newWidget != nullptr
&& false == _newWidget->canHaveFocus() ) { && _newWidget->canHaveFocus() == false) {
EWOL_VERBOSE("Widget can not have focus, id=" << _newWidget->getId() ); EWOL_VERBOSE("Widget can not have focus, id=" << _newWidget->getId() );
return; return;
} }
if (m_focusWidgetDefault == m_focusWidgetCurrent) { if (m_focusWidgetDefault == m_focusWidgetCurrent) {
if (nullptr != m_focusWidgetCurrent) { if (m_focusWidgetCurrent != nullptr) {
EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() ); EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() );
m_focusWidgetCurrent->rmFocus(); m_focusWidgetCurrent->rmFocus();
} }
m_focusWidgetCurrent = _newWidget; m_focusWidgetCurrent = _newWidget;
if (nullptr != m_focusWidgetCurrent) { if (m_focusWidgetCurrent != nullptr) {
EWOL_DEBUG("Set focus on WidgetID=" << m_focusWidgetCurrent->getId() ); EWOL_DEBUG("Set focus on WidgetID=" << m_focusWidgetCurrent->getId() );
m_focusWidgetCurrent->setFocus(); m_focusWidgetCurrent->setFocus();
} }
@ -126,7 +128,7 @@ void ewol::widget::Manager::focusRelease() {
// nothink to do ... // nothink to do ...
return; return;
} }
if (nullptr != m_focusWidgetCurrent) { if (m_focusWidgetCurrent != nullptr) {
EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() ); EWOL_DEBUG("Rm focus on WidgetID=" << m_focusWidgetCurrent->getId() );
m_focusWidgetCurrent->rmFocus(); m_focusWidgetCurrent->rmFocus();
} }

View File

@ -116,8 +116,13 @@ ewol::widget::FileChooser::FileChooser() {
registerOnEventNameWidget("[" + std::to_string(getId()) + "]file-shooser:img-home", "pressed", ewolEventFileChooserHome); registerOnEventNameWidget("[" + std::to_string(getId()) + "]file-shooser:img-home", "pressed", ewolEventFileChooserHome);
// set the default Folder properties: // set the default Folder properties:
updateCurrentFolder(); updateCurrentFolder();
setCanHaveFocus(true);
} }
void ewol::widget::FileChooser::onGetFocus() {
// transfert focus on a specific widget...
setConfigNamed("[" + std::to_string(getId()) + "]file-shooser:entry-file", "focus", "true");
}
ewol::widget::FileChooser::~FileChooser() { ewol::widget::FileChooser::~FileChooser() {

View File

@ -93,6 +93,7 @@ namespace ewol {
void updateCurrentFolder(); void updateCurrentFolder();
public: // Derived function public: // Derived function
virtual void onReceiveMessage(const ewol::object::Message& _msg); virtual void onReceiveMessage(const ewol::object::Message& _msg);
virtual void onGetFocus();
}; };
}; };
}; };