]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
setup versioning for libotk that is separate from libobrender (and libobparser for...
[chaz/openbox] / openbox / frame.c
index b10f793b9de8c7d0d0b4192c832bb15ec51ad9e8..be8230c02256a608ee1d7eb71daa5cf0cb0c1d5a 100644 (file)
 #include "frame.h"
 #include "client.h"
 #include "openbox.h"
-#include "extensions.h"
 #include "prop.h"
 #include "grab.h"
 #include "config.h"
 #include "framerender.h"
-#include "mainloop.h"
 #include "focus_cycle.h"
 #include "focus_cycle_indicator.h"
 #include "moveresize.h"
 #include "screen.h"
 #include "render/theme.h"
+#include "obt/display.h"
 
 #define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \
                          ButtonPressMask | ButtonReleaseMask | \
@@ -377,10 +376,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 +1006,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);
@@ -1047,8 +1052,8 @@ void frame_release_client(ObFrame *self)
     gboolean reparent = TRUE;
 
     /* if there was any animation going on, kill it */
-    ob_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
-                                     self, FALSE);
+    obt_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
+                                      self, FALSE);
 
     /* check if the app has already reparented its window away */
     while (XCheckTypedWindowEvent(ob_display, self->client->window,
@@ -1085,6 +1090,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);
@@ -1120,7 +1129,7 @@ void frame_release_client(ObFrame *self)
     g_hash_table_remove(window_map, &self->rgriptop);
     g_hash_table_remove(window_map, &self->rgripbottom);
 
-    ob_main_loop_timeout_remove_data(ob_main_loop, flash_timeout, self, TRUE);
+    obt_main_loop_timeout_remove_data(ob_main_loop, flash_timeout, self, TRUE);
 }
 
 /* is there anything present between us and the label? */
@@ -1436,9 +1445,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 +1466,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;
@@ -1637,12 +1650,12 @@ void frame_flash_start(ObFrame *self)
     self->flash_on = self->focused;
 
     if (!self->flashing)
-        ob_main_loop_timeout_add(ob_main_loop,
-                                 G_USEC_PER_SEC * 0.6,
-                                 flash_timeout,
-                                 self,
-                                 g_direct_equal,
-                                 flash_done);
+        obt_main_loop_timeout_add(ob_main_loop,
+                                  G_USEC_PER_SEC * 0.6,
+                                  flash_timeout,
+                                  self,
+                                  g_direct_equal,
+                                  flash_done);
     g_get_current_time(&self->flash_end);
     g_time_val_add(&self->flash_end, G_USEC_PER_SEC * 5);
 
@@ -1801,12 +1814,12 @@ void frame_begin_iconify_animation(ObFrame *self, gboolean iconifying)
     }
 
     if (new_anim) {
-        ob_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
-                                         self, FALSE);
-        ob_main_loop_timeout_add(ob_main_loop,
-                                 FRAME_ANIMATE_ICONIFY_STEP_TIME,
-                                 frame_animate_iconify, self,
-                                 g_direct_equal, NULL);
+        obt_main_loop_timeout_remove_data(ob_main_loop, frame_animate_iconify,
+                                          self, FALSE);
+        obt_main_loop_timeout_add(ob_main_loop,
+                                  FRAME_ANIMATE_ICONIFY_STEP_TIME,
+                                  frame_animate_iconify, self,
+                                  g_direct_equal, NULL);
 
         /* do the first step */
         frame_animate_iconify(self);
This page took 0.030907 seconds and 4 git commands to generate.