static void client_apply_startup_state(ObClient *self);
static void client_restore_session_state(ObClient *self);
static void client_restore_session_stacking(ObClient *self);
+static void client_urgent_notify(ObClient *self);
void client_startup()
{
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,
client_normal(self));
if (x != ox || y != oy)
- client_configure(self, OB_CORNER_TOPLEFT, x, y,
- self->area.width, self->area.height,
- TRUE, TRUE);
+ client_move(self, x, y);
}
- /* make sure the window is visible */
- client_move_onscreen(self, client_normal(self));
-
client_showhide(self);
/* use client_focus instead of client_activate cuz client_activate does
client_set_list();
}
+static void client_urgent_notify(ObClient *self)
+{
+ if (self->urgent)
+ frame_flash_start(self->frame);
+ else
+ frame_flash_stop(self->frame);
+}
+
static void client_restore_session_state(ObClient *self)
{
GList *it;
if (client_find_onscreen(self, &x, &y,
self->frame->area.width,
self->frame->area.height, rude)) {
- client_configure(self, OB_CORNER_TOPLEFT, x, y,
- self->area.width, self->area.height,
- TRUE, TRUE);
+ client_move(self, x, y);
}
}
void client_setup_decor_and_functions(ObClient *self)
{
/* start with everything (cept fullscreen) */
- self->decorations = (OB_FRAME_DECOR_TITLEBAR |
- OB_FRAME_DECOR_HANDLE |
- OB_FRAME_DECOR_GRIPS |
- OB_FRAME_DECOR_BORDER |
- OB_FRAME_DECOR_ICON |
- OB_FRAME_DECOR_ALLDESKTOPS |
- OB_FRAME_DECOR_ICONIFY |
- OB_FRAME_DECOR_MAXIMIZE |
- OB_FRAME_DECOR_SHADE);
- self->functions = (OB_CLIENT_FUNC_RESIZE |
- OB_CLIENT_FUNC_MOVE |
- OB_CLIENT_FUNC_ICONIFY |
- OB_CLIENT_FUNC_MAXIMIZE |
- OB_CLIENT_FUNC_SHADE);
+ self->decorations =
+ (OB_FRAME_DECOR_TITLEBAR |
+ (ob_rr_theme->show_handle ? OB_FRAME_DECOR_HANDLE : 0) |
+ OB_FRAME_DECOR_GRIPS |
+ OB_FRAME_DECOR_BORDER |
+ OB_FRAME_DECOR_ICON |
+ OB_FRAME_DECOR_ALLDESKTOPS |
+ OB_FRAME_DECOR_ICONIFY |
+ OB_FRAME_DECOR_MAXIMIZE |
+ OB_FRAME_DECOR_SHADE);
+ self->functions =
+ (OB_CLIENT_FUNC_RESIZE |
+ OB_CLIENT_FUNC_MOVE |
+ OB_CLIENT_FUNC_ICONIFY |
+ OB_CLIENT_FUNC_MAXIMIZE |
+ OB_CLIENT_FUNC_SHADE);
if (self->delete_window) {
self->functions |= OB_CLIENT_FUNC_CLOSE;
self->decorations |= OB_FRAME_DECOR_CLOSE;
ur ? "ON" : "OFF");
/* fire the urgent callback if we're mapped, otherwise, wait until
after we're mapped */
- if (self->frame) {
- /* XXX do shit */
- }
+ if (self->frame)
+ client_urgent_notify(self);
}
}
client_shade(self, TRUE);
}
if (self->urgent)
- /* XXX do shit */;
+ client_urgent_notify(self);
if (self->max_vert && self->max_horz) {
self->max_vert = self->max_horz = FALSE;
client_setup_decor_and_functions(self);
- client_configure(self, OB_CORNER_TOPLEFT, x, y, w, h, TRUE, TRUE);
+ client_move_resize(self, x, y, w, h);
/* try focus us when we go into fullscreen mode */
client_focus(self);
/* figure out where the client should be going */
frame_frame_gravity(self->frame, &x, &y);
- client_configure(self, OB_CORNER_TOPLEFT, x, y, w, h, TRUE, TRUE);
+ client_move_resize(self, x, y, w, h);
}
void client_shade(ObClient *self, gboolean shade)