X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=6560402f6e6a01dba8c845376b5ef01b5ad1f619;hb=95ffd99cfab5ffc46d3b12f2c1c7c8ac73e70337;hp=0088085b65241fcd9d273645ae6e330cd11026b1;hpb=7567e3d7810985458634c9943a0a75539bdf7ce1;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 0088085b..6560402f 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -253,7 +253,7 @@ void event_process(XEvent *e) break; } - client = g_hash_table_lookup(client_map, (gpointer)window); + client = g_hash_table_lookup(client_map, &window); /* deal with it in the kernel */ if (client) @@ -275,8 +275,6 @@ void event_process(XEvent *e) xwc.sibling = e->xconfigurerequest.above; xwc.stack_mode = e->xconfigurerequest.detail; - g_message("Proxying configure event for 0x%lx", window); - /* we are not to be held responsible if someone sends us an invalid request! */ xerror_set_ignore(TRUE); @@ -323,6 +321,7 @@ static void event_handle_client(Client *client, XEvent *e) { XEvent ce; Atom msgtype; + int i=0; switch (e->type) { case FocusIn: @@ -330,10 +329,10 @@ static void event_handle_client(Client *client, XEvent *e) client_set_focused(client, e->type == FocusIn); break; case ConfigureRequest: - g_message("ConfigureRequest for window %lx", client->window); /* compress these */ while (XCheckTypedWindowEvent(ob_display, client->window, ConfigureRequest, &ce)) { + ++i; /* XXX if this causes bad things.. we can compress config req's with the same mask. */ e->xconfigurerequest.value_mask |= @@ -352,6 +351,7 @@ static void event_handle_client(Client *client, XEvent *e) if (ce.xconfigurerequest.value_mask & CWStackMode) e->xconfigurerequest.detail = ce.xconfigurerequest.detail; } + if (i) g_message("Compressed %d Configures", i); /* if we are iconic (or shaded (fvwm does this)) ignore the event */ if (client->iconic || client->shaded) return; @@ -438,6 +438,8 @@ static void event_handle_client(Client *client, XEvent *e) client_unmanage(client); break; case MapRequest: + if (!client->iconic) break; /* this normally doesn't happen, but if it + does, we don't want it! */ if (screen_showing_desktop) screen_show_desktop(FALSE); client_iconify(client, FALSE, TRUE); @@ -565,7 +567,7 @@ static void event_handle_client(Client *client, XEvent *e) ; #ifdef SHAPE if (extensions_shape && e->type == extensions_shape_event_basep) { - client->shaped = ((XShapeEvent*)&e)->shaped; + client->shaped = ((XShapeEvent*)e)->shaped; engine_frame_adjust_shape(client->frame); } #endif