@ -131,9 +131,13 @@ void DFHack::Lua::GetVector(lua_State *state, std::vector<std::string> &pvec)
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				static  bool  inhibit_l_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				static  bool  inhibit_r_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				static  bool  inhibit_m_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				void  DFHack : : Lua : : PushInterfaceKeys ( lua_State  * L , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				                            const  std : : set < df : : interface_key >  & keys )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    lua_createtable ( L ,  0 ,  keys . size ( )  +  5 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    lua_createtable ( L ,  0 ,  keys . size ( )  +  7 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    for  ( auto  & key  :  keys ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    { 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -154,23 +158,32 @@ void DFHack::Lua::PushInterfaceKeys(lua_State *L,
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( df : : global : : enabler )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( df : : global : : enabler - > mouse_lbut_down )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( ! inhibit_l_down  & &  df : : global : : enabler - > mouse_lbut_down )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_L_DOWN " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            inhibit_l_down  =  true ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( df : : global : : enabler - > mouse_rbut_down )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( ! inhibit_r_down  & &  df : : global : : enabler - > mouse_rbut_down )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_R_DOWN " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            inhibit_r_down  =  true ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( ! inhibit_m_down  & &  df : : global : : enabler - > mouse_mbut_down )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_M_DOWN " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            inhibit_m_down  =  true ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( df : : global : : enabler - > mouse_lbut )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_L " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            df : : global : : enabler - > mouse_lbut_down  =  0 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( df : : global : : enabler - > mouse_rbut )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_R " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            df : : global : : enabler - > mouse_rbut_down  =  0 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if  ( df : : global : : enabler - > mouse_mbut )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_pushboolean ( L ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            lua_setfield ( L ,  - 2 ,  " _MOUSE_M " ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -2134,4 +2147,11 @@ void DFHack::Lua::Core::Reset(color_ostream &out, const char *where)
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        out . printerr ( " Common lua context stack top left at %d after %s. \n " ,  top ,  where ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        lua_settop ( State ,  0 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( ! df : : global : : enabler - > mouse_lbut ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        inhibit_l_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( ! df : : global : : enabler - > mouse_rbut ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        inhibit_r_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( ! df : : global : : enabler - > mouse_mbut ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        inhibit_m_down  =  false ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				}