static void event_handle_root(XEvent *e);
static void event_handle_dock(Dock *s, XEvent *e);
static void event_handle_dockapp(DockApp *app, XEvent *e);
-static void event_handle_client(Client *c, XEvent *e);
-static void event_handle_menu(Client *c, XEvent *e);
+static void event_handle_client(ObClient *c, XEvent *e);
+static void event_handle_menu(ObClient *c, XEvent *e);
static void fd_event_handle();
#ifdef USE_SM
static void ice_watch(IceConn conn, IcePointer data, Bool opening,
}
}
-static gboolean event_ignore(XEvent *e, Client *client)
+static gboolean event_ignore(XEvent *e, ObClient *client)
{
switch(e->type) {
case FocusIn:
static void event_process(XEvent *e)
{
Window window;
- Client *client = NULL;
+ ObClient *client = NULL;
Dock *dock = NULL;
DockApp *dockapp = NULL;
Menu *menu = NULL;
#ifdef XRANDR
XRRUpdateConfiguration(e);
#endif
- if (e->xconfigure.width != screen_physical_size.width ||
- e->xconfigure.height != screen_physical_size.height)
- screen_resize(e->xconfigure.width, e->xconfigure.height);
+ screen_resize();
break;
default:
;
}
}
-static void event_handle_client(Client *client, XEvent *e)
+static void event_handle_client(ObClient *client, XEvent *e)
{
XEvent ce;
Atom msgtype;
break;
case EnterNotify:
if (client_normal(client)) {
- if (ob_state == State_Starting) {
+ if (ob_state == OB_STATE_STARTING) {
/* move it to the top of the focus order */
guint desktop = client->desktop;
if (desktop == DESKTOP_ALL) desktop = screen_desktop;
if (e->xconfigurerequest.value_mask & (CWWidth | CWHeight |
CWX | CWY)) {
int x, y, w, h;
- Corner corner;
+ ObCorner corner;
x = (e->xconfigurerequest.value_mask & CWX) ?
e->xconfigurerequest.x : client->area.x;
switch (client->gravity) {
case NorthEastGravity:
case EastGravity:
- corner = Corner_TopRight;
+ corner = OB_CORNER_TOPRIGHT;
break;
case SouthWestGravity:
case SouthGravity:
- corner = Corner_BottomLeft;
+ corner = OB_CORNER_BOTTOMLEFT;
break;
case SouthEastGravity:
- corner = Corner_BottomRight;
+ corner = OB_CORNER_BOTTOMRIGHT;
break;
default: /* NorthWest, Static, etc */
- corner = Corner_TopLeft;
+ corner = OB_CORNER_TOPLEFT;
}
client_configure(client, corner, x, y, w, h, FALSE, TRUE);
else
h = client->area.y;
client->gravity = tmpg;
- client_configure(client, Corner_TopLeft, x, y, w, h, FALSE, TRUE);
+ client_configure(client, OB_CORNER_TOPLEFT,
+ x, y, w, h, FALSE, TRUE);
client->gravity = oldg;
}
break;
}
}
-static void event_handle_menu(Client *client, XEvent *e)
+static void event_handle_menu(ObClient *client, XEvent *e)
{
static MenuEntry *over = NULL;
MenuEntry *entry;
else
menu_control_mouseover(over, FALSE);
menu_entry_render(over);
+ over = NULL;
}
/*
if (top->hide)
m->location.x,
e->xbutton.y_root -
m->location.y))) {
- menu_entry_fire(entry);
+ if (over) {
+ if (over->parent->mouseover)
+ over->parent->mouseover(over, FALSE);
+ else
+ menu_control_mouseover(over, FALSE);
+ menu_entry_render(over);
+ over = NULL;
+ /* this hides the menu */
+ menu_entry_fire(entry);
+ }
}
break;
}
if (over->parent->mouseover)
over->parent->mouseover(over, FALSE);
else
- menu_control_mouseover(over, FALSE);
+ menu_control_mouseover(over, FALSE);
+ menu_entry_render(over);
+ over = NULL;
}
- menu_entry_render(over);
/*
if (top->hide)
top->hide(top);
}
void event_add_fd_handler(event_fd_handler *h) {
- g_datalist_id_set_data(&fd_handler_list, h->fd, h);
- FD_SET(h->fd, &allset);
- max_fd = MAX(max_fd, h->fd);
+ g_datalist_id_set_data(&fd_handler_list, h->fd, h);
+ FD_SET(h->fd, &allset);
+ max_fd = MAX(max_fd, h->fd);
}
static void find_max_fd_foreach(GQuark n, gpointer data, gpointer max)
{
- *((unsigned int *)max) = MAX(*((unsigned int *)max), n);
+ *((unsigned int *)max) = MAX(*((unsigned int *)max), n);
}
static void find_max_fd()
{
- int tmpmax = -1;
- g_datalist_foreach(&fd_handler_list, find_max_fd_foreach, (gpointer)&tmpmax);
- max_fd = MAX(x_fd, tmpmax);
+ int tmpmax = -1;
+ g_datalist_foreach(&fd_handler_list, find_max_fd_foreach,
+ (gpointer)&tmpmax);
+ max_fd = MAX(x_fd, tmpmax);
#ifdef USE_SM
- max_fd = MAX(ice_fd, tmpmax);
+ max_fd = MAX(ice_fd, tmpmax);
#endif
}
void event_remove_fd(int n)
{
- FD_CLR(n, &allset);
- g_datalist_id_remove_data(&fd_handler_list, (GQuark)n);
- find_max_fd();
+ FD_CLR(n, &allset);
+ g_datalist_id_remove_data(&fd_handler_list, (GQuark)n);
+ find_max_fd();
}
static void fd_event_handle_foreach(GQuark n, gpointer data, gpointer user_data)