]> Dogcows Code - chaz/openbox/commitdiff
testing failed, hopefully this is reverting to the right place
authorMikael Magnusson <mikachu@comhem.se>
Sun, 6 Feb 2005 02:18:06 +0000 (02:18 +0000)
committerMikael Magnusson <mikachu@comhem.se>
Sun, 6 Feb 2005 02:18:06 +0000 (02:18 +0000)
openbox/client.c
openbox/place.c

index 0386d23dc0a49f0953dba39997759ce749d90c39..6aec7b295254b730732829ed2e4ab0b390af2307 100644 (file)
@@ -344,6 +344,15 @@ void client_manage(Window window)
 
         place_client(self, &x, &y);
 
+        /* make sure the window is visible. */
+        client_find_onscreen(self, &x, &y,
+                             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 */
+                             client_normal(self) && !self->session);
         if (x != ox || y != oy)         
             client_move(self, x, y);
     }
@@ -603,8 +612,7 @@ 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);
-    a = screen_physical_area_monitor(client_monitor(self));
+    a = screen_area(self->desktop);
     if (client_normal(self)) {
         if (!self->strut.right && *x >= a->x + a->width - 1)
             *x = a->x + a->width - self->frame->area.width;
@@ -619,7 +627,11 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
     /* This here doesn't let windows even a pixel outside the screen,
      * not applied to all windows. Not sure if it's going to stay at all.
      * I wonder if disabling this will break struts somehow? Let's find out. */
-    if (rude) {
+    if (0 && rude) {
+        /* avoid the xinerama monitor divide while we're at it,
+         * 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." */
 
index 67a1631b40fdc3c8005c7cfbbbe18e5b8a1a036a..6669a28e4c5fa42723c064e3acb527ed2c8f5ffc 100644 (file)
@@ -375,13 +375,9 @@ static gboolean place_transient(ObClient *client, gint *x, gint *y)
 
 void place_client(ObClient *client, gint *x, gint *y)
 {
-   /* 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 */
-    gint rude = client_normal(client) && !client->session;
     if (client->positioned)
-        rude = 0;
-    else if (place_transient(client, x, y)             ||
+        return;
+    if (place_transient(client, x, y)             ||
         ((config_place_policy == OB_PLACE_POLICY_MOUSE) ?
          place_under_mouse(client, x, y) :
          place_smart(client, x, y, SMART_FULL)    ||
@@ -393,9 +389,4 @@ void place_client(ObClient *client, gint *x, gint *y)
         frame_frame_gravity(client->frame, x, y);
     } else
         g_assert_not_reached(); /* the last one better succeed */
-    /* make sure the window is visible. */
-    client_find_onscreen(client, x, y,
-                         client->frame->area.width,
-                         client->frame->area.height,
-                         rude);
 }
This page took 0.028687 seconds and 4 git commands to generate.