]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
try another scaling algo for the icons
[chaz/openbox] / openbox / client.c
index 37df6c5e7a4a690a4775cc5bfe88218200ac81d3..930f3ee4d174571bd5e2576383133dd66a6b6a14 100644 (file)
@@ -126,7 +126,7 @@ void client_set_list()
         windows = NULL;
 
     PROP_SETA32(RootWindow(ob_display, ob_screen),
-                net_client_list, window, (guint32*)windows, size);
+                net_client_list, window, (gulong*)windows, size);
 
     if (windows)
         g_free(windows);
@@ -349,11 +349,17 @@ void client_manage(Window window)
                              self->frame->area.width,
                              self->frame->area.height,
                              /* non-normal clients has less rules, and
-                                windows that are being restored from a session
-                                do also. we can assume you want it back where
-                                you saved it. Clients saying the user placed
-                                them are also spared from the evil rules */
-                             !(self->positioned & USPosition) &&
+                                windows that are being restored from a
+                                session do also. we can assume you want
+                                it back where you saved it. Clients saying
+                                they placed themselves are subjected to
+                                harder rules, ones that are placed by
+                                place.c or by the user are allowed partially
+                                off-screen and on xinerama divides (ie,
+                                it is up to the placement routines to avoid
+                                the xinerama divides) */
+                             ((self->positioned & PPosition) &&
+                              !(self->positioned & USPosition)) &&
                              client_normal(self) &&
                              !self->session);
         if (x != ox || y != oy)         
@@ -615,8 +621,8 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
     /* XXX watch for xinerama dead areas */
     /* This makes sure windows aren't entirely outside of the screen so you
      * can't see them at all */
-    a = screen_area(self->desktop);
     if (client_normal(self)) {
+        a = screen_area(self->desktop);
         if (!self->strut.right && *x >= a->x + a->width - 1)
             *x = a->x + a->width - self->frame->area.width;
         if (!self->strut.bottom && *y >= a->y + a->height - 1)
@@ -638,9 +644,6 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
          * remember to fix the placement stuff to avoid it also and
          * then remove this XXX */
         a = screen_physical_area_monitor(client_monitor(self));
-        /* this is ben's MOZILLA BITCHSLAP. "oh ya it fucking feels good.
-           Java can suck it too." */
-
         /* dont let windows map/move into the strut unless they
            are bigger than the available area */
         if (w <= a->width) {
@@ -1297,7 +1300,7 @@ void client_setup_decor_and_functions(ObClient *self)
 
 static void client_change_allowed_actions(ObClient *self)
 {
-    guint32 actions[9];
+    gulong actions[9];
     gint num = 0;
 
     /* desktop windows are kept on all desktops */
@@ -1712,8 +1715,8 @@ void client_update_icons(ObClient *self)
 
 static void client_change_state(ObClient *self)
 {
-    guint32 state[2];
-    guint32 netstate[11];
+    gulong state[2];
+    gulong netstate[11];
     guint num;
 
     state[0] = self->wmstate;
This page took 0.023598 seconds and 4 git commands to generate.