]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
new method for loading menu files etc
[chaz/openbox] / openbox / event.c
index 6480855e7553d7f4959897a3ae87b10297f73a9c..094d19fe2267ce4b0045b3c9ee06f0bcd5119f02 100644 (file)
@@ -1102,14 +1102,15 @@ static void find_max_fd()
 #endif
 }
 
-void event_remove_fd(int n)
+void event_remove_fd(gint n)
 {
     FD_CLR(n, &allset);
     g_datalist_id_remove_data(&fd_handler_list, (GQuark)n);
     find_max_fd();
 }
 
-static void fd_event_handle_foreach(GQuark n, gpointer data, gpointer user_data)
+static void fd_event_handle_foreach(GQuark n,
+                                    gpointer data, gpointer user_data)
 {
     if (FD_ISSET( (int)n, &selset)) {
         event_fd_handler *h = (event_fd_handler *)data;
@@ -1170,21 +1171,22 @@ static void event_handle_menu(XEvent *ev)
 
     switch (ev->type) {
     case ButtonRelease:
-        if (!(f = menu_frame_under(ev->xmotion.x_root,
-                                   ev->xmotion.y_root)))
+        if (!(f = menu_frame_under(ev->xbutton.x_root,
+                                   ev->xbutton.y_root)))
             menu_frame_hide_all();
         else {
-            if ((e = menu_entry_frame_under(ev->xmotion.x_root,
-                                            ev->xmotion.y_root)))
-                menu_entry_frame_execute(e);
+            if ((e = menu_entry_frame_under(ev->xbutton.x_root,
+                                            ev->xbutton.y_root)))
+                menu_entry_frame_execute(e,
+                                         !(ev->xbutton.state & ControlMask));
         }
         break;
     case MotionNotify:
         if ((f = menu_frame_under(ev->xmotion.x_root,
                                   ev->xmotion.y_root))) {
             menu_frame_move_on_screen(f);
-            if (e = menu_entry_frame_under(ev->xmotion.x_root,
-                                           ev->xmotion.y_root))
+            if ((e = menu_entry_frame_under(ev->xmotion.x_root,
+                                            ev->xmotion.y_root)))
                 menu_frame_select(f, e);
         }
         break;
This page took 0.02974 seconds and 4 git commands to generate.