]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
remove debug prints
[chaz/openbox] / openbox / frame.c
index bb4440f36e3952340140774a7e12ef3893ab4724..44ca9c4e997c02f6c0385a96395f4311a220db42 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    frame.c for the Openbox window manager
    Copyright (c) 2003        Ben Jansens
@@ -20,6 +20,7 @@
 #include "client.h"
 #include "openbox.h"
 #include "extensions.h"
+#include "prop.h"
 #include "config.h"
 #include "framerender.h"
 #include "mainloop.h"
@@ -59,12 +60,9 @@ ObFrame *frame_new()
     unsigned long mask;
     ObFrame *self;
 
-    self = g_new(ObFrame, 1);
+    self = g_new0(ObFrame, 1);
 
-    self->visible = FALSE;
     self->obscured = TRUE;
-    self->decorations = 0;
-    self->flashing = FALSE;
 
     /* create all of the decor windows */
     mask = CWOverrideRedirect | CWEventMask;
@@ -184,17 +182,17 @@ static void frame_free(ObFrame *self)
 void frame_show(ObFrame *self)
 {
     if (!self->visible) {
-       self->visible = TRUE;
-       XMapWindow(ob_display, self->window);
+        self->visible = TRUE;
+        XMapWindow(ob_display, self->window);
     }
 }
 
 void frame_hide(ObFrame *self)
 {
     if (self->visible) {
-       self->visible = FALSE;
-       self->client->ignore_unmaps++;
-       XUnmapWindow(ob_display, self->window);
+        self->visible = FALSE;
+        self->client->ignore_unmaps++;
+        XUnmapWindow(ob_display, self->window);
     }
 }
 
@@ -253,6 +251,10 @@ void frame_adjust_shape(ObFrame *self)
 void frame_adjust_area(ObFrame *self, gboolean moved,
                        gboolean resized, gboolean fake)
 {
+    Strut oldsize;
+
+    oldsize = self->size;
+
     if (resized) {
         self->decorations = self->client->decorations;
         self->max_horz = self->client->max_horz;
@@ -408,6 +410,16 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
 
             frame_adjust_shape(self);
         }
+
+        if (!STRUT_EQUAL(self->size, oldsize)) {
+            guint32 vals[4];
+            vals[0] = self->size.left;
+            vals[1] = self->size.right;
+            vals[2] = self->size.top;
+            vals[3] = self->size.bottom;
+            PROP_SETA32(self->client->window, kde_net_wm_frame_strut,
+                        cardinal, vals, 4);
+        }
     }
 }
 
@@ -646,7 +658,7 @@ static void layout_title(ObFrame *self)
     }
 }
 
-ObFrameContext frame_context_from_string(char *name)
+ObFrameContext frame_context_from_string(const gchar *name)
 {
     if (!g_ascii_strcasecmp("Desktop", name))
         return OB_FRAME_CONTEXT_DESKTOP;
@@ -855,12 +867,9 @@ static gboolean flash_timeout(gpointer data)
         return FALSE; /* we are done */
 
     self->flash_on = !self->flash_on;
-    {
-        gboolean focused;
-        
-        focused = self->focused; /* save the focused flag */
+    if (!self->focused) {
         frame_adjust_focus(self, self->flash_on);
-        self->focused = focused;
+        self->focused = FALSE;
     }
 
     return TRUE; /* go again */
@@ -872,7 +881,7 @@ void frame_flash_start(ObFrame *self)
 
     if (!self->flashing)
         ob_main_loop_timeout_add(ob_main_loop,
-                                 G_USEC_PER_SEC * 0.75,
+                                 G_USEC_PER_SEC * 0.6,
                                  flash_timeout,
                                  self,
                                  flash_done);
This page took 0.023259 seconds and 4 git commands to generate.