\hypertarget{structxdg__shell__listener}{\section{xdg\+\_\+shell\+\_\+listener Struct Reference}
\label{structxdg__shell__listener}\index{xdg\+\_\+shell\+\_\+listener@{xdg\+\_\+shell\+\_\+listener}}
}


xdg\+\_\+shell -\/ create desktop-\/style surfaces \+: check if the client is alive  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
void($\ast$ \hyperlink{structxdg__shell__listener_ad6b1feecb1ebc57f69b3eae53d58c600}{ping} )(void $\ast$data, struct xdg\+\_\+shell $\ast$xdg\+\_\+shell, uint32\+\_\+t serial)
\begin{DoxyCompactList}\small\item\em ping -\/ check if the client is alive \+: pass this to the callback \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
xdg\+\_\+shell -\/ create desktop-\/style surfaces \+: check if the client is alive 

This interface is implemented by servers that provide desktop-\/style user interfaces.

It allows clients to associate a xdg\+\_\+surface with a basic surface. 

\subsection{Field Documentation}
\hypertarget{structxdg__shell__listener_ad6b1feecb1ebc57f69b3eae53d58c600}{\index{xdg\+\_\+shell\+\_\+listener@{xdg\+\_\+shell\+\_\+listener}!ping@{ping}}
\index{ping@{ping}!xdg\+\_\+shell\+\_\+listener@{xdg\+\_\+shell\+\_\+listener}}
\subsubsection[{ping}]{\setlength{\rightskip}{0pt plus 5cm}void($\ast$ xdg\+\_\+shell\+\_\+listener\+::ping)(void $\ast$data, struct xdg\+\_\+shell $\ast$xdg\+\_\+shell, uint32\+\_\+t serial)}}\label{structxdg__shell__listener_ad6b1feecb1ebc57f69b3eae53d58c600}


ping -\/ check if the client is alive \+: pass this to the callback 

The ping event asks the client if it's still alive. Pass the serial specified in the event back to the compositor by sending a \char`\"{}pong\char`\"{} request back with the specified serial.

Compositors can use this to determine if the client is still alive. It's unspecified what will happen if the client doesn't respond to the ping request, or in what timeframe. Clients should try to respond in a reasonable amount of time. 