]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
show a popup notification when switching desktops (also make all the config options...
[chaz/openbox] / openbox / config.c
index e25d99fe69ba5601d917860041b8f739bfa03400..c7d6db30b326ddef17af094760237f2eacb28c44 100644 (file)
@@ -57,6 +57,7 @@ RrFont *config_font_osd;
 gint    config_desktops_num;
 GSList *config_desktops_names;
 guint   config_screen_firstdesk;
+guint   config_desktop_popup_time;
 
 gboolean config_resize_redraw;
 gboolean config_resize_four_corners;
@@ -189,7 +190,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
         if (class_set || name_set) {
             xmlNodePtr n, c;
             ObAppSettings *settings = config_create_app_settings();;
-            
+
             if (name_set)
                 settings->name = g_pattern_spec_new(name);
 
@@ -211,7 +212,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
                 if ((c = parse_find_node("x", n->children)))
                     if (!parse_contains("default", doc, c)) {
                         gchar *s = parse_string(doc, c);
-                        if (!strcmp(s, "center")) {
+                        if (!g_ascii_strcasecmp(s, "center")) {
                             settings->center_x = TRUE;
                             x_pos_given = TRUE;
                         } else {
@@ -229,7 +230,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
                 if (x_pos_given && (c = parse_find_node("y", n->children)))
                     if (!parse_contains("default", doc, c)) {
                         gchar *s = parse_string(doc, c);
-                        if (!strcmp(s, "center")) {
+                        if (!g_ascii_strcasecmp(s, "center")) {
                             settings->center_y = TRUE;
                             settings->pos_given = TRUE;
                         } else {
@@ -248,7 +249,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
                     (c = parse_find_node("monitor", n->children)))
                     if (!parse_contains("default", doc, c)) {
                         gchar *s = parse_string(doc, c);
-                        if (!strcmp(s, "mouse"))
+                        if (!g_ascii_strcasecmp(s, "mouse"))
                             settings->monitor = 0;
                         else
                             settings->monitor = parse_int(doc, c) + 1;
@@ -263,7 +264,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
             if ((n = parse_find_node("desktop", app->children))) {
                 if (!parse_contains("default", doc, n)) {
                     gchar *s = parse_string(doc, n);
-                    if (!strcmp(s, "all"))
+                    if (!g_ascii_strcasecmp(s, "all"))
                         settings->desktop = DESKTOP_ALL;
                     else {
                         gint i = parse_int(doc, n);
@@ -277,9 +278,9 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
             if ((n = parse_find_node("layer", app->children)))
                 if (!parse_contains("default", doc, n)) {
                     gchar *s = parse_string(doc, n);
-                    if (!strcmp(s, "above"))
+                    if (!g_ascii_strcasecmp(s, "above"))
                         settings->layer = 1;
-                    else if (!strcmp(s, "below"))
+                    else if (!g_ascii_strcasecmp(s, "below"))
                         settings->layer = -1;
                     else
                         settings->layer = 0;
@@ -305,10 +306,10 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
             if ((n = parse_find_node("maximized", app->children)))
                 if (!parse_contains("default", doc, n)) {
                     gchar *s = parse_string(doc, n);
-                    if (!strcmp(s, "horizontal")) {
+                    if (!g_ascii_strcasecmp(s, "horizontal")) {
                         settings->max_horz = TRUE;
                         settings->max_vert = FALSE;
-                    } else if (!strcmp(s, "vertical")) {
+                    } else if (!g_ascii_strcasecmp(s, "vertical")) {
                         settings->max_horz = FALSE;
                         settings->max_vert = TRUE;
                     } else
@@ -320,7 +321,7 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
             config_per_app_settings = g_slist_append(config_per_app_settings,
                                               (gpointer) settings);
         }
-        
+
         app = parse_find_node("application", app->next);
     }
 
@@ -362,7 +363,7 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     else if ((n = parse_find_node("action", node->children))) {
         while (n) {
             ObActionsAct *action;
-            
+
             action = actions_parse(i, doc, n);
             if (action)
                 keyboard_bind(keylist, action);
@@ -401,7 +402,7 @@ static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
 
 /*
 
-<context name="Titlebar"> 
+<context name="Titlebar">
   <mousebind button="Left" action="Press">
     <action name="Raise"></action>
   </mousebind>
@@ -420,7 +421,7 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     mouse_unbind_all();
 
     node = node->children;
-    
+
     if ((n = parse_find_node("dragThreshold", node)))
         config_mouse_threshold = parse_int(doc, n);
     if ((n = parse_find_node("doubleClickTime", node)))
@@ -472,13 +473,13 @@ static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n;
 
     node = node->children;
-    
+
     if ((n = parse_find_node("focusNew", node)))
         config_focus_new = parse_bool(doc, n);
     if ((n = parse_find_node("followMouse", node)))
         config_focus_follow = parse_bool(doc, n);
     if ((n = parse_find_node("focusDelay", node)))
-        config_focus_delay = parse_int(doc, n) * 1000;
+        config_focus_delay = parse_int(doc, n);
     if ((n = parse_find_node("raiseOnFocus", node)))
         config_focus_raise = parse_bool(doc, n);
     if ((n = parse_find_node("focusLast", node)))
@@ -493,7 +494,7 @@ static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n;
 
     node = node->children;
-    
+
     if ((n = parse_find_node("policy", node)))
         if (parse_contains("UnderMouse", doc, n))
             config_place_policy = OB_PLACE_POLICY_MOUSE;
@@ -507,7 +508,7 @@ static void parse_margins(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n;
 
     node = node->children;
-    
+
     if ((n = parse_find_node("top", node)))
         config_margins.top = MAX(0, parse_int(doc, n));
     if ((n = parse_find_node("left", node)))
@@ -607,7 +608,7 @@ static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n;
 
     node = node->children;
-    
+
     if ((n = parse_find_node("number", node))) {
         gint d = parse_int(doc, n);
         if (d > 0)
@@ -634,6 +635,8 @@ static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             nname = parse_find_node("name", nname->next);
         }
     }
+    if ((n = parse_find_node("popupTime", node)))
+        config_desktop_popup_time = parse_int(doc, n);
 }
 
 static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
@@ -642,7 +645,7 @@ static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n;
 
     node = node->children;
-    
+
     if ((n = parse_find_node("drawContents", node)))
         config_resize_redraw = parse_bool(doc, n);
     if ((n = parse_find_node("popupShow", node))) {
@@ -724,9 +727,9 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     if ((n = parse_find_node("autoHide", node)))
         config_dock_hide = parse_bool(doc, n);
     if ((n = parse_find_node("hideDelay", node)))
-        config_dock_hide_delay = parse_int(doc, n) * 1000;
+        config_dock_hide_delay = parse_int(doc, n);
     if ((n = parse_find_node("showDelay", node)))
-        config_dock_show_delay = parse_int(doc, n) * 1000;
+        config_dock_show_delay = parse_int(doc, n);
     if ((n = parse_find_node("moveButton", node))) {
         gchar *str = parse_string(doc, n);
         guint b, s;
@@ -763,8 +766,8 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             config_menu_client_list_icons = parse_bool(doc, n);
     }
 }
-   
-static void parse_resistance(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, 
+
+static void parse_resistance(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
                              gpointer d)
 {
     xmlNodePtr n;
@@ -782,6 +785,21 @@ typedef struct
     const gchar *actname;
 } ObDefKeyBind;
 
+static void bind_default_keyboard()
+{
+    ObDefKeyBind *it;
+    ObDefKeyBind binds[] = {
+        { "A-Tab", "NextWindow" },
+        { "S-A-Tab", "PreviousWindow" },
+        { "A-F4", "Close" },
+        { NULL, NULL }
+    };
+    for (it = binds; it->key; ++it) {
+        GList *l = g_list_append(NULL, g_strdup(it->key));
+        keyboard_bind(l, actions_parse_string(it->actname));
+    }
+}
+
 typedef struct
 {
     const gchar *button;
@@ -885,6 +903,7 @@ void config_startup(ObParseInst *i)
     config_desktops_num = 4;
     config_screen_firstdesk = 1;
     config_desktops_names = NULL;
+    config_desktop_popup_time = 500;
 
     parse_register(i, "desktops", parse_desktops, NULL);
 
@@ -913,6 +932,8 @@ void config_startup(ObParseInst *i)
     translate_key("C-g", &config_keyboard_reset_state,
                   &config_keyboard_reset_keycode);
 
+    bind_default_keyboard();
+
     parse_register(i, "keyboard", parse_keyboard, NULL);
 
     config_mouse_threshold = 8;
This page took 0.032141 seconds and 4 git commands to generate.