]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
add application opacity configuration
[chaz/openbox] / openbox / config.c
index 9067011a1d395bdf5d0f1d2f1e103f41a9275c70..f0f6c7b3de73d7fa25f938aff22a3eeaff55dcb9 100644 (file)
@@ -48,6 +48,8 @@ StrutPartial config_margins;
 gchar   *config_theme;
 gboolean config_theme_keepborder;
 guint    config_theme_window_list_icon_size;
+guint    config_frame_flash_delay;
+guint    config_frame_flash_duration;
 
 gchar   *config_title_layout;
 
@@ -111,7 +113,7 @@ ObAppSettings* config_create_app_settings(void)
     settings->type = -1;
     settings->decor = -1;
     settings->shade = -1;
-    settings->monitor_type = 0;
+    settings->monitor_type = OB_PLACE_MONITOR_ANY;
     settings->monitor = -1;
     settings->focus = -1;
     settings->desktop = 0;
@@ -122,6 +124,7 @@ ObAppSettings* config_create_app_settings(void)
     settings->fullscreen = -1;
     settings->max_horz = -1;
     settings->max_vert = -1;
+    settings->opacity = -1;
     return settings;
 }
 
@@ -136,7 +139,7 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src,
     copy_if(type, (ObClientType)-1);
     copy_if(decor, -1);
     copy_if(shade, -1);
-    copy_if(monitor_type, 0);
+    copy_if(monitor_type, OB_PLACE_MONITOR_ANY);
     copy_if(monitor, -1);
     copy_if(focus, -1);
     copy_if(desktop, 0);
@@ -147,6 +150,7 @@ void config_app_settings_copy_non_defaults(const ObAppSettings *src,
     copy_if(fullscreen, -1);
     copy_if(max_horz, -1);
     copy_if(max_vert, -1);
+    copy_if(opacity, -1);
 
     if (src->pos_given) {
         dst->pos_given = TRUE;
@@ -297,13 +301,13 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d)
                         gchar *s = obt_xml_node_string(c);
                         if (!g_ascii_strcasecmp(s, "mouse"))
                             settings->monitor_type =
-                                    OB_APP_SETTINGS_MONITOR_MOUSE;
+                                    OB_PLACE_MONITOR_MOUSE;
                         else if (!g_ascii_strcasecmp(s, "active"))
                             settings->monitor_type =
-                                    OB_APP_SETTINGS_MONITOR_ACTIVE;
+                                    OB_PLACE_MONITOR_ACTIVE;
                         else if (!g_ascii_strcasecmp(s, "primary"))
                             settings->monitor_type =
-                                    OB_APP_SETTINGS_MONITOR_PRIMARY;
+                                    OB_PLACE_MONITOR_PRIMARY;
                         else
                             settings->monitor = obt_xml_node_int(c);
                         g_free(s);
@@ -373,6 +377,10 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d)
                     g_free(s);
                 }
 
+            if ((n = obt_xml_find_node(app->children, "opacity")))
+                if (!obt_xml_node_contains(n, "default"))
+                    settings->opacity = obt_xml_node_int(n);
+
             config_per_app_settings = g_slist_append(config_per_app_settings,
                                                      (gpointer) settings);
             g_free(name);
@@ -655,6 +663,10 @@ static void parse_theme(xmlNodePtr node, gpointer d)
         else if (config_theme_window_list_icon_size > 96)
             config_theme_window_list_icon_size = 96;
     }
+    if ((n = obt_xml_find_node(node, "flashFrameDelay")))
+        config_frame_flash_delay = obt_xml_node_int(n);
+    if ((n = obt_xml_find_node(node, "flashFrameDuration")))
+        config_frame_flash_duration = obt_xml_node_int(n);
 
     n = obt_xml_find_node(node, "font");
     while (n) {
@@ -1031,6 +1043,8 @@ void config_startup(ObtXmlInst *i)
     config_title_layout = g_strdup("NLIMC");
     config_theme_keepborder = TRUE;
     config_theme_window_list_icon_size = 36;
+    config_frame_flash_delay = 600;
+    config_frame_flash_duration = 5000;
 
     config_font_activewindow = NULL;
     config_font_inactivewindow = NULL;
This page took 0.024943 seconds and 4 git commands to generate.