Merge branch 'backport' into work
[mikachu/openbox.git] / openbox / frame.c
index 5767351..25c4704 100644 (file)
@@ -98,7 +98,7 @@ ObFrame *frame_new(ObClient *client)
     mask = 0;
     if (visual) {
         /* client has a 32-bit visual */
-        mask |= CWColormap | CWBackPixel | CWBorderPixel;
+        mask = CWColormap | CWBackPixel | CWBorderPixel;
         /* create a colormap with the visual */
         self->colormap = attrib.colormap =
             XCreateColormap(obt_display, obt_root(ob_screen),
@@ -114,7 +114,7 @@ ObFrame *frame_new(ObClient *client)
     mask = 0;
     if (visual) {
         /* client has a 32-bit visual */
-        mask |= CWColormap | CWBackPixel | CWBorderPixel;
+        mask = CWColormap | CWBackPixel | CWBorderPixel;
         attrib.colormap = RrColormap(ob_rr_inst);
     }
 
@@ -188,7 +188,7 @@ ObFrame *frame_new(ObClient *client)
 
     set_theme_statics(self);
 
-    return (ObFrame*)self;
+    return self;
 }
 
 static void set_theme_statics(ObFrame *self)
@@ -214,27 +214,10 @@ static void set_theme_statics(ObFrame *self)
                   ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
     XResizeWindow(obt_display, self->trrresize,
                   ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
-
-    /* set up the dynamic appearances */
-    self->a_unfocused_title = RrAppearanceCopy(ob_rr_theme->a_unfocused_title);
-    self->a_focused_title = RrAppearanceCopy(ob_rr_theme->a_focused_title);
-    self->a_unfocused_label = RrAppearanceCopy(ob_rr_theme->a_unfocused_label);
-    self->a_focused_label = RrAppearanceCopy(ob_rr_theme->a_focused_label);
-    self->a_unfocused_handle =
-        RrAppearanceCopy(ob_rr_theme->a_unfocused_handle);
-    self->a_focused_handle = RrAppearanceCopy(ob_rr_theme->a_focused_handle);
-    self->a_icon = RrAppearanceCopy(ob_rr_theme->a_icon);
 }
 
 static void free_theme_statics(ObFrame *self)
 {
-    RrAppearanceFree(self->a_unfocused_title);
-    RrAppearanceFree(self->a_focused_title);
-    RrAppearanceFree(self->a_unfocused_label);
-    RrAppearanceFree(self->a_focused_label);
-    RrAppearanceFree(self->a_unfocused_handle);
-    RrAppearanceFree(self->a_focused_handle);
-    RrAppearanceFree(self->a_icon);
 }
 
 void frame_free(ObFrame *self)
@@ -1167,7 +1150,7 @@ static void layout_title(ObFrame *self)
     self->label_width = self->width - (ob_rr_theme->paddingx + 1) * 2;
     self->leftmost = self->rightmost = OB_FRAME_CONTEXT_NONE;
 
-    /* figure out what's being show, find each element's position, and the
+    /* figure out what's being shown, find each element's position, and the
        width of the label
 
        do the ones before the label, then after the label,
@@ -1707,7 +1690,7 @@ static gboolean frame_animate_iconify(gpointer p)
     g_get_current_time(&now);
     time = frame_animate_iconify_time_left(self, &now);
 
-    if (time == 0 || iconifying) {
+    if ((time > 0 && iconifying) || (time == 0 && !iconifying)) {
         /* start where the frame is supposed to be */
         x = self->area.x;
         y = self->area.y;
@@ -1738,12 +1721,11 @@ static gboolean frame_animate_iconify(gpointer p)
         h = self->size.top; /* just the titlebar */
     }
 
+    XMoveResizeWindow(obt_display, self->window, x, y, w, h);
+    XFlush(obt_display);
+
     if (time == 0)
         frame_end_iconify_animation(self);
-    else {
-        XMoveResizeWindow(obt_display, self->window, x, y, w, h);
-        XFlush(obt_display);
-    }
 
     return time > 0; /* repeat until we're out of time */
 }