]> Dogcows Code - chaz/openbox/blobdiff - openbox/session.c
Merge branch 'master' into chaz
[chaz/openbox] / openbox / session.c
index ba51ed327e1bc6b7eccb0edac0ab3581c5c09811..1a81b90dbe81ad3546c79f987a379a167866db75 100644 (file)
@@ -376,7 +376,7 @@ static void session_setup_restart_command(void)
 
 static ObSMSaveData *sm_save_get_data(void)
 {
-    ObSMSaveData *savedata = g_new0(ObSMSaveData, 1);
+    ObSMSaveData *savedata = g_slice_new0(ObSMSaveData);
     /* save the active desktop and client.
        we don't bother to preemptively save the other desktop state like
        number and names of desktops, cuz those shouldn't be changing during
@@ -398,7 +398,7 @@ static void sm_save_yourself_2(SmcConn conn, SmPointer data)
     if (savedata == NULL)
         savedata = sm_save_get_data();
     success = session_save_to_file(savedata);
-    g_free(savedata);
+    g_slice_free(ObSMSaveData, savedata);
 
     /* tell the session manager how to restore this state */
     if (success) session_setup_restart_command();
@@ -443,7 +443,7 @@ static void sm_save_yourself(SmcConn conn, SmPointer data, gint save_type,
 
     if (!SmcRequestSaveYourselfPhase2(conn, sm_save_yourself_2, savedata)) {
         ob_debug_type(OB_DEBUG_SM, "Requst for phase 2 failed");
-        g_free(savedata);
+        g_slice_free(ObSMSaveData, savedata);
         SmcSaveYourselfDone(conn, FALSE);
     }
 }
@@ -583,6 +583,7 @@ static gboolean session_save_to_file(const ObSMSaveData *savedata)
             fprintf(f, "\t<y>%d</y>\n", prey);
             fprintf(f, "\t<width>%d</width>\n", prew);
             fprintf(f, "\t<height>%d</height>\n", preh);
+            fprintf(f, "\t<opacity>%d</opacity>\n", c->opacity);
             if (c->shaded)
                 fprintf(f, "\t<shaded />\n");
             if (c->iconic)
@@ -630,7 +631,7 @@ static void session_state_free(ObSessionState *state)
         g_free(state->class);
         g_free(state->role);
 
-        g_free(state);
+        g_slice_free(ObSessionState, state);
     }
 }
 
@@ -731,7 +732,7 @@ static void session_load_file(const gchar *path)
     {
         ObSessionState *state;
 
-        state = g_new0(ObSessionState, 1);
+        state = g_slice_new0(ObSessionState);
 
         if (!obt_xml_attr_string(node, "id", &state->id))
             if (!obt_xml_attr_string(node, "command", &state->command))
@@ -763,6 +764,9 @@ static void session_load_file(const gchar *path)
         if (!(n = obt_xml_find_node(node->children, "height")))
             goto session_load_bail;
         state->h = obt_xml_node_int(n);
+        if (!(n = obt_xml_find_node(node->children, "opacity")))
+            goto session_load_bail;
+        state->opacity = obt_xml_node_int(n);
 
         state->shaded =
             obt_xml_find_node(node->children, "shaded") != NULL;
This page took 0.021931 seconds and 4 git commands to generate.