]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
remove a bunch of g_new()/g_free() by returning Rect const*'s from screen area functi...
[chaz/openbox] / openbox / frame.c
index ab5a14a868a4761023f52b02bbf3e651645c58d7..a6bfaefeeb566b642ba1920dd3da1ef19c814a8b 100644 (file)
 #include "client.h"
 #include "openbox.h"
 #include "grab.h"
+#include "debug.h"
 #include "config.h"
 #include "framerender.h"
 #include "focus_cycle.h"
 #include "focus_cycle_indicator.h"
 #include "moveresize.h"
 #include "screen.h"
-#include "render/theme.h"
+#include "obrender/theme.h"
 #include "obt/display.h"
 #include "obt/prop.h"
 
@@ -338,14 +339,14 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
         self->max_vert = self->client->max_vert;
         self->shaded = self->client->shaded;
 
-        if (self->decorations & OB_FRAME_DECOR_BORDER ||
-            (self->client->undecorated && config_theme_keepborder
-             && !self->client->fullscreen))
+        if (self->decorations & OB_FRAME_DECOR_BORDER)
             self->bwidth = ob_rr_theme->fbwidth;
         else
             self->bwidth = 0;
 
-        if (self->decorations & OB_FRAME_DECOR_BORDER) {
+        if (self->decorations & OB_FRAME_DECOR_BORDER &&
+            !self->client->undecorated)
+        {
             self->cbwidth_l = self->cbwidth_r = ob_rr_theme->cbwidthx;
             self->cbwidth_t = self->cbwidth_b = ob_rr_theme->cbwidthy;
         } else
@@ -368,9 +369,7 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
 
         STRUT_SET(self->size,
                   self->cbwidth_l + (!self->max_horz ? self->bwidth : 0),
-                  self->cbwidth_t +
-                  (!self->max_horz || !self->max_vert ||
-                   !self->client->undecorated ? self->bwidth : 0),
+                  self->cbwidth_t + self->bwidth,
                   self->cbwidth_r + (!self->max_horz ? self->bwidth : 0),
                   self->cbwidth_b +
                   (!self->max_horz || !self->max_vert ? self->bwidth : 0));
@@ -862,10 +861,12 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
         if (focus_cycle_target == self->client)
             focus_cycle_update_indicator(self->client);
     }
-    if (resized && (self->decorations & OB_FRAME_DECOR_TITLEBAR))
+    if (resized && (self->decorations & OB_FRAME_DECOR_TITLEBAR) &&
+        self->label_width)
+    {
         XResizeWindow(obt_display, self->label, self->label_width,
                       ob_rr_theme->label_height);
-
+    }
 }
 
 static void frame_adjust_cursors(ObFrame *self)
@@ -949,6 +950,9 @@ void frame_adjust_state(ObFrame *self)
 
 void frame_adjust_focus(ObFrame *self, gboolean hilite)
 {
+    ob_debug_type(OB_DEBUG_FOCUS,
+                  "Frame for 0x%x has focus: %d\n",
+                  self->client->window, hilite);
     self->focused = hilite;
     self->need_render = TRUE;
     framerender_frame(self);
@@ -1673,12 +1677,10 @@ static gboolean frame_animate_iconify(gpointer p)
 
     if (self->client->icon_geometry.width == 0) {
         /* there is no icon geometry set so just go straight down */
-        Rect *a = screen_physical_area_monitor
-            (screen_find_monitor(&self->area));
+        Rect const *a = screen_physical_area_monitor(screen_find_monitor(&self->area));
         iconx = self->area.x + self->area.width / 2 + 32;
         icony = a->y + a->width;
         iconw = 64;
-        g_free(a);
     } else {
         iconx = self->client->icon_geometry.x;
         icony = self->client->icon_geometry.y;
This page took 0.021743 seconds and 4 git commands to generate.