#include "startup.h"
#include "screen.h"
#include "moveresize.h"
+#include "place.h"
#include "prop.h"
#include "extensions.h"
#include "frame.h"
#include "grab.h"
#include "focus.h"
#include "stacking.h"
-#include "dispatch.h"
#include "openbox.h"
#include "group.h"
#include "config.h"
frame_grab_client(self->frame, self);
- client_apply_startup_state(self);
-
grab_server(FALSE);
+ client_apply_startup_state(self);
+
/* update the focus lists */
focus_order_add_new(self);
#endif
}
- dispatch_client(Event_Client_New, self, 0, 0);
+ if (ob_state() == OB_STATE_RUNNING) {
+ int x = self->area.x, ox = x;
+ int y = self->area.y, oy = y;
+
+ place_client(self, &x, &y);
+
+ client_find_onscreen(self, &x, &y,
+ self->frame->area.width,
+ self->frame->area.height,
+ client_normal(self));
+
+ if (x != ox || y != oy)
+ client_configure(self, OB_CORNER_TOPLEFT, x, y,
+ self->area.width, self->area.height,
+ TRUE, TRUE);
+ }
/* make sure the window is visible */
- if (ob_state() == OB_STATE_RUNNING)
client_move_onscreen(self, client_normal(self));
client_showhide(self);
keyboard_grab_for_client(self, TRUE);
mouse_grab_for_client(self, TRUE);
- dispatch_client(Event_Client_Mapped, self, 0, 0);
-
ob_debug("Managed window 0x%lx (%s)\n", window, self->class);
}
ob_debug("Unmanaging window: %lx (%s)\n", self->window, self->class);
- dispatch_client(Event_Client_Destroy, self, 0, 0);
g_assert(self != NULL);
keyboard_grab_for_client(self, FALSE);
self->group = NULL;
}
- /* dispatch the unmapped event */
- dispatch_client(Event_Client_Unmapped, self, 0, 0);
- g_assert(self != NULL);
-
/* give the client its border back */
client_toggle_border(self, TRUE);
ur ? "ON" : "OFF");
/* fire the urgent callback if we're mapped, otherwise, wait until
after we're mapped */
- if (self->frame)
- dispatch_client(Event_Client_Urgent, self, self->urgent, 0);
+ if (self->frame) {
+ /* XXX do shit */
+ }
}
}
client_shade(self, TRUE);
}
if (self->urgent)
- dispatch_client(Event_Client_Urgent, self, self->urgent, 0);
+ /* XXX do shit */;
if (self->max_vert && self->max_horz) {
self->max_vert = self->max_horz = FALSE;
client_change_state(self);
client_showhide(self);
screen_update_areas();
-
- dispatch_client(iconic ? Event_Client_Unmapped : Event_Client_Mapped,
- self, 0, 0);
}
/* iconify all transients */
focus_order_to_top(self);
else
focus_order_to_bottom(self);
-
- dispatch_client(Event_Client_Desktop, self, target, old);
}
/* move all transients */