Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2008-01-14 02:17:03 +0300
committerEion Robb <eion@robbmob.com>2008-01-14 02:17:03 +0300
commite03d63bfbf3fb066e08711ddeaf2cfd189f8f245 (patch)
tree38e734ee926b0a7a5258884899a8c828ca63c648 /skype_messaging_x11.c
parentfd332cbf01d2ec4f781a54ec85f7d0877c831ced (diff)
Fixed disconnection crasher, should be faster fetching x11 messages too
Diffstat (limited to 'skype_messaging_x11.c')
-rw-r--r--skype_messaging_x11.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/skype_messaging_x11.c b/skype_messaging_x11.c
index dfd481c..e65faf1 100644
--- a/skype_messaging_x11.c
+++ b/skype_messaging_x11.c
@@ -70,7 +70,11 @@ skype_disconnect()
e = g_new0(XEvent, 1);
e->xclient.type = DestroyNotify;
- XSendEvent(disp, win, False, 0, e);
+ XSendEvent(disp, win, False, 0, e);
+
+ //wait here for the event to be handled
+
+
XDestroyWindow(disp, win);
XCloseDisplay(disp);
@@ -150,18 +154,27 @@ receive_message_loop(void)
XEvent e;
GString *msg = NULL;
char msg_temp[21];
- size_t len;
+ size_t len;
+ Bool event_bool;
msg_temp[20] = '\0';
while(run_loop)
{
- XNextEvent(disp, &e);
- if (e.type != ClientMessage)
- {
- purple_debug_info("skype_x11", "Unknown event received: %d\n", e.xclient.type);
- XFlush(disp);
- continue;
- }
+ //XNextEvent(disp, &e);
+ //if (e.type != ClientMessage)
+ //{
+ // purple_debug_info("skype_x11", "Unknown event received: %d\n", e.xclient.type);
+ // XFlush(disp);
+ // continue;
+ //}
+
+ event_bool = XCheckTypedEvent(disp, ClientMessage, &e);
+ if (event_bool == False)
+ {
+ usleep(1000);
+ continue;
+ }
+
strncpy(msg_temp, e.xclient.data.b, 20);
len = strlen(msg_temp);
if (e.xclient.message_type == message_start)