]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
Some fixes for the submenu hide delay code
[chaz/openbox] / openbox / config.c
index 9b6c20285784eaf6c782618df8a2fb80f5af679f..240606a43e591d3f3f7a1166bc809a162cbffadc 100644 (file)
@@ -40,6 +40,9 @@ ObPlacePolicy  config_place_policy;
 gboolean       config_place_center;
 ObPlaceMonitor config_place_monitor;
 
+guint          config_primary_monitor_index;
+ObPlaceMonitor config_primary_monitor;
+
 StrutPartial config_margins;
 
 gchar   *config_theme;
@@ -88,6 +91,7 @@ gint config_mouse_screenedgetime;
 guint    config_menu_hide_delay;
 gboolean config_menu_middle;
 guint    config_submenu_show_delay;
+guint    config_submenu_hide_delay;
 gboolean config_menu_client_list_icons;
 gboolean config_menu_manage_desktops;
 
@@ -529,6 +533,13 @@ static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
         else if (parse_contains("mouse", doc, n))
             config_place_monitor = OB_PLACE_MONITOR_MOUSE;
     }
+    if ((n = parse_find_node("primaryMonitor", node))) {
+        config_primary_monitor_index = parse_int(doc, n);
+        if (!config_primary_monitor_index) {
+            if (parse_contains("mouse", doc, n))
+                config_primary_monitor = OB_PLACE_MONITOR_MOUSE;
+        }
+    }
 }
 
 static void parse_margins(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
@@ -802,6 +813,8 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
         config_menu_middle = parse_bool(doc, n);
     if ((n = parse_find_node("submenuShowDelay", node)))
         config_submenu_show_delay = parse_int(doc, n);
+    if ((n = parse_find_node("submenuHideDelay", node)))
+        config_submenu_hide_delay = parse_int(doc, n);
     if ((n = parse_find_node("applicationIcons", node)))
         config_menu_client_list_icons = parse_bool(doc, n);
     if ((n = parse_find_node("manageDesktops", node)))
@@ -931,6 +944,9 @@ void config_startup(ObParseInst *i)
     config_place_center = TRUE;
     config_place_monitor = OB_PLACE_MONITOR_ANY;
 
+    config_primary_monitor_index = 1;
+    config_primary_monitor = OB_PLACE_MONITOR_ACTIVE;
+
     parse_register(i, "placement", parse_placement, NULL);
 
     STRUT_PARTIAL_SET(config_margins, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
@@ -1002,7 +1018,8 @@ void config_startup(ObParseInst *i)
 
     config_menu_hide_delay = 250;
     config_menu_middle = FALSE;
-    config_submenu_show_delay = 0;
+    config_submenu_show_delay = 200;
+    config_submenu_hide_delay = 400;
     config_menu_client_list_icons = TRUE;
     config_menu_manage_desktops = TRUE;
     config_menu_files = NULL;
This page took 0.023663 seconds and 4 git commands to generate.