- /* reentrance problems */
- if (m_waiting) return false;
-
- /* store requested format to be asked for by callbacks */
- m_targetRequested = format;
-
- wxLogTrace( TRACE_CLIPBOARD,
- wxT("wxClipboard:IsSupported: requested format: %s"),
- format.GetId().c_str() );
-
- wxCHECK_MSG( m_targetRequested, false, wxT("invalid clipboard format") );
-
- m_formatSupported = false;
-
- /* perform query. this will set m_formatSupported to
- true if m_targetRequested is supported.
- also, we have to wait for the "answer" from the
- clipboard owner which is an asynchronous process.
- therefore we set m_waiting = true here and wait
- until the callback "targets_selection_received"
- sets it to false */
-
- m_waiting = true;
-
- gtk_selection_convert( m_targetsWidget,
- m_usePrimary ? (GdkAtom)GDK_SELECTION_PRIMARY
- : g_clipboardAtom,
- g_targetsAtom,
- (guint32) GDK_CURRENT_TIME );
-
- while (m_waiting) gtk_main_iteration();