]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
draw a box inside the key-focused button in an ObPrompt. also fix rendering the...
[chaz/openbox] / openbox / frame.c
index b10f793b9de8c7d0d0b4192c832bb15ec51ad9e8..8fee3b69e439bcb6f8a354d9d0f83ea21cb3050f 100644 (file)
@@ -216,27 +216,10 @@ static void set_theme_statics(ObFrame *self)
                   ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
     XResizeWindow(ob_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)
@@ -377,10 +360,12 @@ 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->bwidth,
+                  self->cbwidth_t +
+                  (!self->max_horz || !self->max_vert ||
+                   !self->client->undecorated ? self->bwidth : 0),
                   self->cbwidth_r + (!self->max_horz ? self->bwidth : 0),
                   self->cbwidth_b +
-                    (!self->max_horz || !self->max_vert ? self->bwidth : 0));
+                  (!self->max_horz || !self->max_vert ? self->bwidth : 0));
 
         if (self->decorations & OB_FRAME_DECOR_TITLEBAR)
             self->size.top += ob_rr_theme->title_height + self->bwidth;
@@ -1005,6 +990,10 @@ void frame_grab_client(ObFrame *self)
     g_hash_table_insert(window_map, &self->innertop, self->client);
     g_hash_table_insert(window_map, &self->innerright, self->client);
     g_hash_table_insert(window_map, &self->innerbottom, self->client);
+    g_hash_table_insert(window_map, &self->innerblb, self->client);
+    g_hash_table_insert(window_map, &self->innerbll, self->client);
+    g_hash_table_insert(window_map, &self->innerbrb, self->client);
+    g_hash_table_insert(window_map, &self->innerbrr, self->client);
     g_hash_table_insert(window_map, &self->title, self->client);
     g_hash_table_insert(window_map, &self->label, self->client);
     g_hash_table_insert(window_map, &self->max, self->client);
@@ -1085,6 +1074,10 @@ void frame_release_client(ObFrame *self)
     g_hash_table_remove(window_map, &self->innertop);
     g_hash_table_remove(window_map, &self->innerright);
     g_hash_table_remove(window_map, &self->innerbottom);
+    g_hash_table_remove(window_map, &self->innerblb);
+    g_hash_table_remove(window_map, &self->innerbll);
+    g_hash_table_remove(window_map, &self->innerbrb);
+    g_hash_table_remove(window_map, &self->innerbrr);
     g_hash_table_remove(window_map, &self->title);
     g_hash_table_remove(window_map, &self->label);
     g_hash_table_remove(window_map, &self->max);
@@ -1436,9 +1429,9 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y)
     if (win == self->lgripbottom)       return OB_FRAME_CONTEXT_BLCORNER;
     if (win == self->handleright)       return OB_FRAME_CONTEXT_BRCORNER;
     if (win == self->rgrip)             return OB_FRAME_CONTEXT_BRCORNER;
-    if (win == self->rgripright)        return OB_FRAME_CONTEXT_BLCORNER;
-    if (win == self->rgriptop)          return OB_FRAME_CONTEXT_BLCORNER;
-    if (win == self->rgripbottom)       return OB_FRAME_CONTEXT_BLCORNER;
+    if (win == self->rgripright)        return OB_FRAME_CONTEXT_BRCORNER;
+    if (win == self->rgriptop)          return OB_FRAME_CONTEXT_BRCORNER;
+    if (win == self->rgripbottom)       return OB_FRAME_CONTEXT_BRCORNER;
     if (win == self->title)             return OB_FRAME_CONTEXT_TITLEBAR;
     if (win == self->titlebottom)       return OB_FRAME_CONTEXT_TITLEBAR;
     if (win == self->titleleft)         return OB_FRAME_CONTEXT_TLCORNER;
@@ -1457,6 +1450,10 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y)
     if (win == self->innerleft)         return OB_FRAME_CONTEXT_LEFT;
     if (win == self->innerbottom)       return OB_FRAME_CONTEXT_BOTTOM;
     if (win == self->innerright)        return OB_FRAME_CONTEXT_RIGHT;
+    if (win == self->innerbll)          return OB_FRAME_CONTEXT_BLCORNER;
+    if (win == self->innerblb)          return OB_FRAME_CONTEXT_BLCORNER;
+    if (win == self->innerbrr)          return OB_FRAME_CONTEXT_BRCORNER;
+    if (win == self->innerbrb)          return OB_FRAME_CONTEXT_BRCORNER;
     if (win == self->max)               return OB_FRAME_CONTEXT_MAXIMIZE;
     if (win == self->iconify)           return OB_FRAME_CONTEXT_ICONIFY;
     if (win == self->close)             return OB_FRAME_CONTEXT_CLOSE;
This page took 0.026672 seconds and 4 git commands to generate.