mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-10-31 20:56:42 +00:00 
			
		
		
		
	Potential fix for context sensitive select mode issues.
This commit is contained in:
		
							parent
							
								
									101c3cc90d
								
							
						
					
					
						commit
						3e4ac0c662
					
				
					 1 changed files with 17 additions and 14 deletions
				
			
		|  | @ -215,23 +215,26 @@ bool CSVRender::InstanceMode::primaryEditStartDrag (const QPoint& pos) | |||
|     if (mDragMode!=DragMode_None || mLocked) | ||||
|         return false; | ||||
| 
 | ||||
| 
 | ||||
|     WorldspaceHitResult hit = getWorldspaceWidget().mousePick (pos, getWorldspaceWidget().getInteractionMask()); | ||||
|     if (hit.tag && CSMPrefs::get()["3D Scene Input"]["context-select"].isTrue()) | ||||
|     { | ||||
|         getWorldspaceWidget().clearSelection (Mask_Reference); | ||||
|         if (CSVRender::ObjectTag *objectTag = dynamic_cast<CSVRender::ObjectTag *> (hit.tag.get())) | ||||
|         { | ||||
|             CSVRender::Object* object = objectTag->mObject; | ||||
|             object->setSelected (true); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     std::vector<osg::ref_ptr<TagBase> > selection = | ||||
|         getWorldspaceWidget().getSelection (Mask_Reference); | ||||
| 
 | ||||
|     std::vector<osg::ref_ptr<TagBase> > selection = getWorldspaceWidget().getSelection (Mask_Reference); | ||||
|     if (selection.empty()) | ||||
|         return false; | ||||
|     { | ||||
|         // Only change selection at the start of drag if no object is already selected
 | ||||
|         if (hit.tag && CSMPrefs::get()["3D Scene Input"]["context-select"].isTrue()) | ||||
|         { | ||||
|             getWorldspaceWidget().clearSelection (Mask_Reference); | ||||
|             if (CSVRender::ObjectTag *objectTag = dynamic_cast<CSVRender::ObjectTag *> (hit.tag.get())) | ||||
|             { | ||||
|                 CSVRender::Object* object = objectTag->mObject; | ||||
|                 object->setSelected (true); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         selection = getWorldspaceWidget().getSelection (Mask_Reference); | ||||
|         if (selection.empty()) | ||||
|             return false; | ||||
|     } | ||||
| 
 | ||||
|     for (std::vector<osg::ref_ptr<TagBase> >::iterator iter (selection.begin()); | ||||
|         iter!=selection.end(); ++iter) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue