@@ -88,6 +88,8 @@ class FilterUIPopup extends PApplet implements Runnable {
8888 private int expanderLineTwoStart;
8989 private int [] expanderTriangleXYCollapsed = new int [6 ];
9090 private int [] expanderTriangleXYExpanded = new int [6 ];
91+ private boolean ignoreExpanderInteraction = false ;
92+ List<controlP5. ScrollableList > cp5ElementsToCheck = new ArrayList<controlP5. ScrollableList > ();
9193
9294 DecimalFormat df = new DecimalFormat (" #.0" );
9395
@@ -206,10 +208,12 @@ class FilterUIPopup extends PApplet implements Runnable {
206208 rect (0 , 0 , width , headerHeight);
207209
208210 // Draw Channel Expander
211+ lockExpanderOnOverlapCheck(cp5ElementsToCheck);
209212 expanderIsHover = mouseY > expanderY - expanderH/ 2
210213 && mouseX < expanderX + expanderW
211214 && mouseY < expanderY + expanderH/ 2
212- && mouseX > expanderX;
215+ && mouseX > expanderX
216+ && ! ignoreExpanderInteraction;
213217 color expanderColor = expanderIsHover ? OPENBCI_BLUE : color (102 );
214218 int [] triXY = filterSettings. values. filterChannelSelect == FilterChannelSelect . ALL_CHANNELS ?
215219 expanderTriangleXYCollapsed :
@@ -327,6 +331,8 @@ class FilterUIPopup extends PApplet implements Runnable {
327331 // Create header objects last so they always draw on top!
328332 bfGlobalFilterDropdown = createDropdown(" filter" , - 1 , headerObjX[1 ], headerObjY, headerObjWidth, filterSettings. values. brainFlowFilter, BFFilter . values());
329333 bfEnvironmentalNoiseDropdown = createDropdown(" environmentalFilter" , - 1 , headerObjX[3 ], headerObjY, headerObjWidth - 10 , filterSettings. values. globalEnvFilter, GlobalEnvironmentalFilter . values());
334+ cp5ElementsToCheck. add(bfGlobalFilterDropdown);
335+ cp5ElementsToCheck. add(bfEnvironmentalNoiseDropdown);
330336
331337 updateChannelCp5Objects();
332338 arrangeAllObjectsXY();
@@ -910,13 +916,15 @@ class FilterUIPopup extends PApplet implements Runnable {
910916 filterTypeDropdowns[chan] = createDropdown(" filterType" + chan, chan, lg_spacer* 4 + textfieldWidth* 3 , headerHeight* 2 + sm_spacer* (chan+ 2 ) + uiObjectHeight* (chan+ 1 ), typeDropdownWidth, filterSettings. values. masterBandPassFilterType, BrainFlowFilterType . values());
911917 }
912918 masterFilterTypeDropdown = createDropdown(" masterFilterTypeDropdown" , - 1 , lg_spacer* 4 + textfieldWidth* 3 , headerHeight* 2 + sm_spacer, typeDropdownWidth, filterSettings. values. masterBandPassFilterType, BrainFlowFilterType . values());
919+ cp5ElementsToCheck. add(masterFilterTypeDropdown);
913920 }
914921
915922 private void createOrderDropdowns () {
916923 for (int chan = filterSettings. getChannelCount() - 1 ; chan >= 0 ; chan-- ) {
917924 filterOrderDropdowns[chan] = createDropdown(" filterOrder" + chan, chan, lg_spacer* 5 + textfieldWidth* 3 + typeDropdownWidth, headerHeight* 2 + sm_spacer* (chan+ 2 ) + uiObjectHeight* (chan+ 1 ), orderDropdownWidth, filterSettings. values. masterBandPassFilterOrder, BrainFlowFilterOrder . values());
918925 }
919926 masterFilterOrderDropdown = createDropdown(" masterFilterOrderDropdown" , - 1 , lg_spacer* 5 + textfieldWidth* 3 + typeDropdownWidth, headerHeight* 2 + sm_spacer, orderDropdownWidth, filterSettings. values. masterBandPassFilterOrder, BrainFlowFilterOrder . values());
927+ cp5ElementsToCheck. add(masterFilterOrderDropdown);
920928 }
921929
922930 private void createFilterSettingsSaveButton (String name , String text , int _x , int _y , int _w , int _h ) {
@@ -1029,4 +1037,18 @@ class FilterUIPopup extends PApplet implements Runnable {
10291037 private void checkIfExpanderWasClicked () {
10301038 setUItoChannelMode(filterSettings. values. filterChannelSelect);
10311039 }
1040+
1041+ private void lockExpanderOnOverlapCheck (List<controlP5. ScrollableList > listOfControllers ) {
1042+ for (controlP5. ScrollableList c : listOfControllers) {
1043+ if (c == null ) {
1044+ continue ; // Gracefully skip over a controller if it is null
1045+ }
1046+ if (c. isOpen()) {
1047+ ignoreExpanderInteraction = true ;
1048+ return ;
1049+ } else {
1050+ ignoreExpanderInteraction = false ;
1051+ }
1052+ }
1053+ }
10321054}
0 commit comments