diff --git a/Sources/libewol/ewol/base/MainThread.cpp b/Sources/libewol/ewol/base/MainThread.cpp index 790ffe77..6bfa6195 100644 --- a/Sources/libewol/ewol/base/MainThread.cpp +++ b/Sources/libewol/ewol/base/MainThread.cpp @@ -336,6 +336,7 @@ void EWOL_ThreadEventShow(void) void EWOL_ThreadEventHasJustDisplay(void) { - ewol::threadMsg::SendMessage(androidJniMsg, THREAD_JUST_DISPLAY, ewol::threadMsg::MSG_PRIO_REAL_TIME); + ewol::threadMsg::SendDisplayDone(androidJniMsg); + //ewol::threadMsg::SendMessage(androidJniMsg, THREAD_JUST_DISPLAY, ewol::threadMsg::MSG_PRIO_REAL_TIME); } diff --git a/Sources/libewol/ewol/base/gui.h b/Sources/libewol/ewol/base/gui.h index ba182734..71f7b565 100644 --- a/Sources/libewol/ewol/base/gui.h +++ b/Sources/libewol/ewol/base/gui.h @@ -49,7 +49,6 @@ namespace guiAbstraction void SendKeyboardEventMove(bool isDown, ewol::eventKbMoveType_te &keyInput); }; -int64_t GetCurrentTime(void); //!< must be define in CPP by the application ... void APP_Init(void); diff --git a/Sources/libewol/ewol/ewol.h b/Sources/libewol/ewol/ewol.h index d2da733e..64a19c1f 100644 --- a/Sources/libewol/ewol/ewol.h +++ b/Sources/libewol/ewol/ewol.h @@ -57,6 +57,7 @@ namespace ewol { bool IsSetInsert(void); }; +int64_t GetCurrentTime(void); #endif diff --git a/Sources/libewol/ewol/threadMsg.cpp b/Sources/libewol/ewol/threadMsg.cpp index fc8adcf9..4533fc92 100644 --- a/Sources/libewol/ewol/threadMsg.cpp +++ b/Sources/libewol/ewol/threadMsg.cpp @@ -83,6 +83,19 @@ bool ewol::threadMsg::WaitMessage(ewol::threadMsg::threadMsg_ts& messageData, ew for (int32_t iii=0; MSG_PRIO_NUMBER>iii; iii++) { if (0 < messageData.nbMessages[iii]) { // find a message : + if (false == messageData.listOfMessages[iii][0].isActive) { + EWOL_ERROR( "an error occured ==> bad case ..."); + data.isActive = false; + data.type = 0; + data.data[0] = '\0'; + } else { + data = messageData.listOfMessages[iii][0]; + messageData.listOfMessages[iii][0].isActive = false; + } + memmove(&messageData.listOfMessages[iii][0], &messageData.listOfMessages[iii][1], (NUMBER_OF_ELEMENT_IN_THE_FIFO-1)*sizeof(ewol::threadMsg::threadMsgContent_ts) ); + + messageData.listOfMessages[iii][NUMBER_OF_ELEMENT_IN_THE_FIFO-1].isActive = false; + /* for (int32_t jjj=0; NUMBER_OF_ELEMENT_IN_THE_FIFO>jjj; jjj++) { if (true == messageData.listOfMessages[iii][jjj].isActive) { // copy the data : @@ -91,6 +104,7 @@ bool ewol::threadMsg::WaitMessage(ewol::threadMsg::threadMsg_ts& messageData, ew messageData.listOfMessages[iii][jjj].isActive = false; } } + */ // decrement the number of message : messageData.nbMessages[iii]--; if (0>messageData.nbMessages[iii]) { @@ -166,4 +180,7 @@ int32_t ewol::threadMsg::WaitingMessage(threadMsg_ts& messageData) return nbMessage; } - +void ewol::threadMsg::SendDisplayDone(threadMsg_ts& messageData) +{ + +} diff --git a/Sources/libewol/ewol/threadMsg.h b/Sources/libewol/ewol/threadMsg.h index c8fe435d..efd8d8bd 100644 --- a/Sources/libewol/ewol/threadMsg.h +++ b/Sources/libewol/ewol/threadMsg.h @@ -53,6 +53,7 @@ namespace ewol { bool isInit; pthread_mutex_t mutex; pthread_cond_t condition; + //etk::VectorType threadMsgContent_ts listOfMessages[MSG_PRIO_NUMBER][NUMBER_OF_ELEMENT_IN_THE_FIFO]; int32_t nbMessages[MSG_PRIO_NUMBER]; bool displayHasDone; @@ -63,6 +64,7 @@ namespace ewol { bool WaitMessage(threadMsg_ts& messageData, threadMsgContent_ts &data); int32_t WaitingMessage(threadMsg_ts& messageData); bool SendMessage(threadMsg_ts& messageData, uint32_t type, msgPriority_te prio = MSG_PRIO_NONE, void * data = NULL, uint32_t size = 0); + void SendDisplayDone(threadMsg_ts& messageData); }; }; diff --git a/Sources/libewol/ewol/widget/WidgetScrolled.cpp b/Sources/libewol/ewol/widget/WidgetScrolled.cpp index ac85af1a..8945ba6d 100644 --- a/Sources/libewol/ewol/widget/WidgetScrolled.cpp +++ b/Sources/libewol/ewol/widget/WidgetScrolled.cpp @@ -68,15 +68,18 @@ bool ewol::WidgetScrooled::OnEventInput(int32_t IdInput, ewol::eventInputType_te { #ifdef __MODE__Touch if (1 == IdInput) { + EWOL_VERBOSE("event 1 << " << (int32_t)typeEvent << "(" << x << "," << y << ")"); x -= m_origin.x; y -= m_origin.y; if (ewol::EVENT_INPUT_TYPE_DOWN == typeEvent) { m_highSpeedMode = ewol::SCROLL_INIT; m_highSpeedStartPos.x = x; m_highSpeedStartPos.y = y; + EWOL_VERBOSE("SCROOL ==> INIT"); return true; } else if (ewol::EVENT_INPUT_TYPE_UP == typeEvent) { m_highSpeedMode = ewol::SCROLL_DISABLE; + EWOL_VERBOSE("SCROOL ==> DISABLE"); MarkToReedraw(); return true; } else if (ewol::SCROLL_INIT==m_highSpeedMode && ewol::EVENT_INPUT_TYPE_MOVE == typeEvent) { @@ -86,6 +89,7 @@ bool ewol::WidgetScrooled::OnEventInput(int32_t IdInput, ewol::eventInputType_te // the scrooling can start : // select the direction : m_highSpeedMode = ewol::SCROLL_ENABLE; + EWOL_VERBOSE("SCROOL ==> ENABLE"); MarkToReedraw(); } return true; @@ -99,11 +103,13 @@ bool ewol::WidgetScrooled::OnEventInput(int32_t IdInput, ewol::eventInputType_te m_originScrooled.y = etk_min(m_originScrooled.y, m_maxSize.y); m_highSpeedStartPos.x = x; m_highSpeedStartPos.y = y; + EWOL_VERBOSE("SCROOL ==> MOVE (" << m_originScrooled.x << "," << m_originScrooled.y << ")"); MarkToReedraw(); return true; } } else if (ewol::SCROLL_DISABLE!=m_highSpeedMode && ewol::EVENT_INPUT_TYPE_LEAVE == typeEvent) { m_highSpeedMode = ewol::SCROLL_DISABLE; + EWOL_VERBOSE("SCROOL ==> DISABLE"); MarkToReedraw(); return true; }