Fix some typos in comments.
[mikachu/openbox.git] / openbox / event.c
index 0d7ff2a..2d3ecec 100644 (file)
@@ -89,6 +89,7 @@ static void event_process(const XEvent *e, gpointer data);
 static void event_handle_root(XEvent *e);
 static gboolean event_handle_menu_keyboard(XEvent *e);
 static gboolean event_handle_menu(XEvent *e);
+static gboolean event_handle_prompt(ObPrompt *p, XEvent *e);
 static void event_handle_dock(ObDock *s, XEvent *e);
 static void event_handle_dockapp(ObDockApp *app, XEvent *e);
 static void event_handle_client(ObClient *c, XEvent *e);
@@ -477,6 +478,8 @@ static void event_process(const XEvent *ec, gpointer data)
             break;
         case Window_Client:
             client = WINDOW_AS_CLIENT(obwin);
+            /* events on clients can be events on prompt windows too */
+            prompt = client->prompt;
             break;
         case Window_Menu:
             /* not to be used for events */
@@ -704,7 +707,9 @@ static void event_process(const XEvent *ec, gpointer data)
     }
 #endif
 
-    if (e->type == ButtonPress || e->type == ButtonRelease) {
+    if (prompt && event_handle_prompt(prompt, e))
+        ;
+    else if (e->type == ButtonPress || e->type == ButtonRelease) {
         /* If the button press was on some non-root window, or was physically
            on the root window, then process it */
         if (window != RootWindow(ob_display, ob_screen) ||
@@ -850,7 +855,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
     case ButtonRelease:
         /* Wheel buttons don't draw because they are an instant click, so it
            is a waste of resources to go drawing it.
-           if the user is doing an intereactive thing, or has a menu open then
+           if the user is doing an interactive thing, or has a menu open then
            the mouse is grabbed (possibly) and if we get these events we don't
            want to deal with them
         */
@@ -1672,6 +1677,21 @@ static ObMenuFrame* find_active_or_last_menu(void)
     return ret;
 }
 
+static gboolean event_handle_prompt(ObPrompt *p, XEvent *e)
+{
+    switch (e->type) {
+    case ButtonPress:
+    case ButtonRelease:
+    case MotionNotify:
+        return prompt_mouse_event(p, e);
+        break;
+    case KeyPress:
+        return prompt_key_event(p, e);
+        break;
+    }
+    return FALSE;
+}
+
 static gboolean event_handle_menu_keyboard(XEvent *ev)
 {
     guint keycode, state;