Commit bc8d56f6 authored by fallenstardust's avatar fallenstardust Committed by GitHub

Merge pull request #37 from mercury233/patch-4

call getElementFromPoint only once
parents 9756b5e5 c1931168
...@@ -1978,12 +1978,13 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -1978,12 +1978,13 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
case irr::EET_MOUSE_INPUT_EVENT: { case irr::EET_MOUSE_INPUT_EVENT: {
IGUIElement* root = mainGame->env->getRootGUIElement(); IGUIElement* root = mainGame->env->getRootGUIElement();
position2di mousepos = position2di(event.MouseInput.X, event.MouseInput.Y); position2di mousepos = position2di(event.MouseInput.X, event.MouseInput.Y);
irr::gui::IGUIElement* eventElement = root->getElementFromPoint(mousepos);
u32 static presstime, leftuptime; u32 static presstime, leftuptime;
switch(event.MouseInput.Event) { switch(event.MouseInput.Event) {
case irr::EMIE_LMOUSE_PRESSED_DOWN: { case irr::EMIE_LMOUSE_PRESSED_DOWN: {
presstime = mainGame->device->getTimer()->getRealTime(); presstime = mainGame->device->getTimer()->getRealTime();
//vertical scrollbar //vertical scrollbar
if(root->getElementFromPoint(mousepos) == mainGame->stText) { if(eventElement == mainGame->stText) {
if(!mainGame->scrCardText->isVisible()) { if(!mainGame->scrCardText->isVisible()) {
break; break;
} }
...@@ -1992,7 +1993,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -1992,7 +1993,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstLog) { if(eventElement == mainGame->lstLog) {
if(!mainGame->lstLog->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstLog->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2001,7 +2002,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2001,7 +2002,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstReplayList) { if(eventElement == mainGame->lstReplayList) {
if(!mainGame->lstReplayList->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstReplayList->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2010,7 +2011,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2010,7 +2011,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstSinglePlayList) { if(eventElement == mainGame->lstSinglePlayList) {
if(!mainGame->lstSinglePlayList->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstSinglePlayList->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2019,7 +2020,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2019,7 +2020,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstBotList) { if(eventElement == mainGame->lstBotList) {
if(!mainGame->lstBotList->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstBotList->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2028,7 +2029,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2028,7 +2029,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstDecks) { if(eventElement == mainGame->lstDecks) {
if(!mainGame->lstDecks->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstDecks->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2037,7 +2038,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2037,7 +2038,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->lstANCard) { if(eventElement == mainGame->lstANCard) {
if(!mainGame->lstANCard->getVerticalScrollBar()->isVisible()) { if(!mainGame->lstANCard->getVerticalScrollBar()->isVisible()) {
break; break;
} }
...@@ -2046,7 +2047,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2046,7 +2047,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->tabHelper){ if(eventElement == mainGame->tabHelper){
if(!mainGame->scrTabHelper->isVisible()) { if(!mainGame->scrTabHelper->isVisible()) {
break; break;
} }
...@@ -2055,7 +2056,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2055,7 +2056,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y = event.MouseInput.Y; dragging_tab_start_y = event.MouseInput.Y;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->tabSystem){ if(eventElement == mainGame->tabSystem){
if(!mainGame->scrTabSystem->isVisible()) { if(!mainGame->scrTabSystem->isVisible()) {
break; break;
} }
...@@ -2066,8 +2067,8 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2066,8 +2067,8 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
} }
//horizontal scollbar //horizontal scollbar
for(int i=0; i<5; i++) { for(int i=0; i<5; i++) {
if(root->getElementFromPoint(mousepos) == mainGame->btnCardSelect[i] || if(eventElement == mainGame->btnCardSelect[i] ||
root->getElementFromPoint(mousepos) == mainGame->stCardPos[i]) { eventElement == mainGame->stCardPos[i]) {
if(!mainGame->scrCardList->isVisible()) { if(!mainGame->scrCardList->isVisible()) {
break; break;
} }
...@@ -2076,8 +2077,8 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2076,8 +2077,8 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_x = event.MouseInput.X; dragging_tab_start_x = event.MouseInput.X;
return true; return true;
} }
if(root->getElementFromPoint(mousepos) == mainGame->btnCardDisplay[i] || if(eventElement == mainGame->btnCardDisplay[i] ||
root->getElementFromPoint(mousepos) == mainGame->stDisplayPos[i]) { eventElement == mainGame->stDisplayPos[i]) {
if(!mainGame->scrDisplayList->isVisible()) { if(!mainGame->scrDisplayList->isVisible()) {
break; break;
} }
...@@ -2090,12 +2091,12 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) { ...@@ -2090,12 +2091,12 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
break; break;
} }
case irr::EMIE_LMOUSE_LEFT_UP: { case irr::EMIE_LMOUSE_LEFT_UP: {
if (root->getElementFromPoint(mousepos) == mainGame->stText || if (eventElement == mainGame->stText ||
root->getElementFromPoint(mousepos) == mainGame->wHostPrepare || eventElement == mainGame->wHostPrepare ||
root->getElementFromPoint(mousepos) == mainGame->imgCard || eventElement == mainGame->imgCard ||
root->getElementFromPoint(mousepos) == mainGame->wReplay || eventElement == mainGame->wReplay ||
root->getElementFromPoint(mousepos) == mainGame->wSinglePlay || eventElement == mainGame->wSinglePlay ||
root->getElementFromPoint(mousepos) == mainGame->wLanWindow) { eventElement == mainGame->wLanWindow) {
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->textFont->setTransparency(true); mainGame->textFont->setTransparency(true);
mainGame->ClearChatMsg(); mainGame->ClearChatMsg();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment