X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/65391c8ffcb388cd31f610776654f50aed97cbee..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/gtk/sockgtk.cpp?ds=sidebyside diff --git a/src/gtk/sockgtk.cpp b/src/gtk/sockgtk.cpp index e887cebb69..c0f1b4f6cb 100644 --- a/src/gtk/sockgtk.cpp +++ b/src/gtk/sockgtk.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: gtk/gsockgtk.cpp +// Name: src/gtk/sockgtk.cpp // Purpose: implementation of wxGTK-specific socket event handling // Author: Guilhem Lavaux, Vadim Zeitlin // Created: 1999 @@ -12,22 +12,19 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#if wxUSE_SOCKETS +#if wxUSE_SOCKETS && defined(__UNIX__) #include "wx/apptrait.h" #include "wx/private/fdiomanager.h" -#include +#include extern "C" { -static -void wxSocket_GDK_Input(gpointer data, - gint WXUNUSED(source), - GdkInputCondition condition) +static gboolean wxSocket_Input(GIOChannel*, GIOCondition condition, gpointer data) { wxFDIOHandler * const handler = static_cast(data); - if ( condition & GDK_INPUT_READ ) + if (condition & G_IO_IN) { handler->OnReadWaiting(); @@ -35,11 +32,13 @@ void wxSocket_GDK_Input(gpointer data, // shouldn't call OnWriteWaiting() as the socket is now closed and it // would assert if ( !handler->IsOk() ) - return; + return true; } - if ( condition & GDK_INPUT_WRITE ) + if (condition & G_IO_OUT) handler->OnWriteWaiting(); + + return true; } } @@ -48,19 +47,17 @@ class GTKFDIOManager : public wxFDIOManager public: virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) { - return gdk_input_add - ( - fd, - d == OUTPUT ? GDK_INPUT_WRITE : GDK_INPUT_READ, - wxSocket_GDK_Input, - handler - ); + return g_io_add_watch( + g_io_channel_unix_new(fd), + d == OUTPUT ? G_IO_OUT : G_IO_IN, + wxSocket_Input, + handler); } virtual void RemoveInput(wxFDIOHandler* WXUNUSED(handler), int fd, Direction WXUNUSED(d)) { - gdk_input_remove(fd); + g_source_remove(fd); } }; @@ -70,4 +67,4 @@ wxFDIOManager *wxGUIAppTraits::GetFDIOManager() return &s_manager; } -#endif // wxUSE_SOCKETS +#endif // wxUSE_SOCKETS && __UNIX__