Use the ObClient *c variable in client_search_focus_tree_full
[mikachu/openbox.git] / openbox / client.c
index 5bf8bfb..a86bb3a 100644 (file)
@@ -782,7 +782,7 @@ static gboolean client_can_steal_focus(ObClient *self, Time steal_time,
 
     /* This is focus stealing prevention */
     ob_debug_type(OB_DEBUG_FOCUS,
-                  "Want to focus new window 0x%x at time %u "
+                  "Want to focus window 0x%x at time %u "
                   "launched at %u (last user interaction time %u)\n",
                   self->window, steal_time, launch_time,
                   event_last_user_time);
@@ -2488,7 +2488,7 @@ ObClient *client_search_focus_tree_full(ObClient *self)
 
         for (it = self->parents; it; it = g_slist_next(it)) {
             ObClient *c = it->data;
-            if ((c = client_search_focus_tree_full(it->data))) return c;
+            if ((c = client_search_focus_tree_full(c))) return c;
         }
 
         return NULL;
@@ -3194,6 +3194,9 @@ void client_fullscreen(ObClient *self, gboolean fs)
 
     if (fs) {
         self->pre_fullscreen_area = self->area;
+        self->pre_fullscreen_max_horz = self->max_horz;
+        self->pre_fullscreen_max_vert = self->max_vert;
+
         /* if the window is maximized, its area isn't all that meaningful.
            save its premax area instead. */
         if (self->max_horz) {
@@ -3215,6 +3218,17 @@ void client_fullscreen(ObClient *self, gboolean fs)
         g_assert(self->pre_fullscreen_area.width > 0 &&
                  self->pre_fullscreen_area.height > 0);
 
+        self->max_horz = self->pre_fullscreen_max_horz;
+        self->max_vert = self->pre_fullscreen_max_vert;
+        if (self->max_horz) {
+            self->pre_max_area.x = self->pre_fullscreen_area.x;
+            self->pre_max_area.width = self->pre_fullscreen_area.width;
+        }
+        if (self->max_vert) {
+            self->pre_max_area.y = self->pre_fullscreen_area.y;
+            self->pre_max_area.height = self->pre_fullscreen_area.height;
+        }
+
         x = self->pre_fullscreen_area.x;
         y = self->pre_fullscreen_area.y;
         w = self->pre_fullscreen_area.width;