Various fixes for sparse warnings.
[mikachu/openbox.git] / openbox / event.c
index bc59d67..f4ebfa4 100644 (file)
@@ -43,6 +43,7 @@
 #include "stacking.h"
 #include "extensions.h"
 #include "translate.h"
+#include "ping.h"
 
 #include <X11/Xlib.h>
 #include <X11/Xatom.h>
@@ -102,8 +103,8 @@ static void focus_delay_client_dest(ObClient *client, gpointer data);
 Time event_curtime = CurrentTime;
 Time event_last_user_time = CurrentTime;
 /*! The serial of the current X event */
-gulong event_curserial;
 
+static gulong event_curserial;
 static gboolean focus_left_screen = FALSE;
 /*! A list of ObSerialRanges which are to be ignored for mouse enter events */
 static GSList *ignore_serials = NULL;
@@ -475,10 +476,12 @@ static void event_process(const XEvent *ec, gpointer data)
             client = WINDOW_AS_CLIENT(obwin);
             break;
         case Window_Menu:
-        case Window_Internal:
             /* not to be used for events */
             g_assert_not_reached();
             break;
+        case Window_Internal:
+            /* we don't do anything with events directly on these windows */
+            break;
         }
     }
 
@@ -765,6 +768,9 @@ static void event_handle_root(XEvent *e)
                 ob_restart();
             else if (e->xclient.data.l[0] == 3)
                 ob_exit(0);
+        } else if (msgtype == prop_atoms.wm_protocols) {
+            if (e->xclient.data.l[0] == prop_atoms.net_wm_ping)
+                ping_got_pong(e->xclient.data.l[1]);
         }
         break;
     case PropertyNotify:
@@ -1912,7 +1918,7 @@ static void focus_delay_client_dest(ObClient *client, gpointer data)
                                      client, FALSE);
 }
 
-void event_halt_focus_delay()
+void event_halt_focus_delay(void)
 {
     /* ignore all enter events up till the event which caused this to occur */
     if (event_curserial) event_ignore_enter_range(1, event_curserial);
@@ -1995,6 +2001,8 @@ void event_cancel_all_key_grabs(void)
     }
     else
         ungrab_passive_key();
+
+    XSync(ob_display, FALSE);
 }
 
 gboolean event_time_after(Time t1, Time t2)