|  | @@ -107,14 +107,14 @@ impl widget::Widget for Tray {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          match event.response_type() {
 | 
	
		
			
				|  |  |              xcb::PROPERTY_NOTIFY if self.timestamp == 0 => {
 | 
	
		
			
				|  |  | -                let event: &xcb::PropertyNotifyEvent = xcb::cast_event(&event);
 | 
	
		
			
				|  |  | +                let event: &xcb::PropertyNotifyEvent = unsafe { xcb::cast_event(&event) };
 | 
	
		
			
				|  |  |                  if !self.take_selection(event.time()) {
 | 
	
		
			
				|  |  |                      println!("Could not take ownership of tray selection. Maybe another tray is also running?");
 | 
	
		
			
				|  |  |                      return true
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              CLIENT_MESSAGE => {
 | 
	
		
			
				|  |  | -                let event: &xcb::ClientMessageEvent = xcb::cast_event(&event);
 | 
	
		
			
				|  |  | +                let event: &xcb::ClientMessageEvent = unsafe { xcb::cast_event(&event) };
 | 
	
		
			
				|  |  |                  if event.type_() == self.conn.atom(x11::_NET_SYSTEM_TRAY_OPCODE) {
 | 
	
		
			
				|  |  |                      let data = event.data().data32();
 | 
	
		
			
				|  |  |                      let opcode = data[1];
 | 
	
	
		
			
				|  | @@ -125,17 +125,17 @@ impl widget::Widget for Tray {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              xcb::REPARENT_NOTIFY => {
 | 
	
		
			
				|  |  | -                let event: &xcb::ReparentNotifyEvent = xcb::cast_event(&event);
 | 
	
		
			
				|  |  | +                let event: &xcb::ReparentNotifyEvent = unsafe { xcb::cast_event(&event) };
 | 
	
		
			
				|  |  |                  if event.parent() != self.window {
 | 
	
		
			
				|  |  |                      self.forget(event.window());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              xcb::DESTROY_NOTIFY => {
 | 
	
		
			
				|  |  | -                let event: &xcb::DestroyNotifyEvent = xcb::cast_event(&event);
 | 
	
		
			
				|  |  | +                let event: &xcb::DestroyNotifyEvent = unsafe { xcb::cast_event(&event) };
 | 
	
		
			
				|  |  |                  self.forget(event.window());
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              xcb::CONFIGURE_NOTIFY => {
 | 
	
		
			
				|  |  | -                let event: &xcb::ConfigureNotifyEvent = xcb::cast_event(&event);
 | 
	
		
			
				|  |  | +                let event: &xcb::ConfigureNotifyEvent = unsafe { xcb::cast_event(&event) };
 | 
	
		
			
				|  |  |                  let window = event.window();
 | 
	
		
			
				|  |  |                  if window != self.window {
 | 
	
		
			
				|  |  |                      self.force_size(window, Some((event.width(), event.height())));
 |