X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.c;h=211a275c75024bbd002aab55c8da3d0f1ad037e6;hb=2e824eece1c54e96e5178c952ca92c3c2415b099;hp=f344f9e5c79afa08e782e6b94323e385e67972d3;hpb=16a9ac018ed77e245e873be60729be509fa1ce92;p=chaz%2Fopenbox diff --git a/openbox/frame.c b/openbox/frame.c index f344f9e5..211a275c 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -430,20 +430,20 @@ void frame_grab_client(Frame *self, Client *client) frame_adjust_area(self, TRUE, TRUE); - /* set all the windows for the frame in the client_map */ - g_hash_table_insert(client_map, &self->window, client); - g_hash_table_insert(client_map, &self->plate, client); - g_hash_table_insert(client_map, &self->title, client); - g_hash_table_insert(client_map, &self->label, client); - g_hash_table_insert(client_map, &self->max, client); - g_hash_table_insert(client_map, &self->close, client); - g_hash_table_insert(client_map, &self->desk, client); - g_hash_table_insert(client_map, &self->shade, client); - g_hash_table_insert(client_map, &self->icon, client); - g_hash_table_insert(client_map, &self->iconify, client); - g_hash_table_insert(client_map, &self->handle, client); - g_hash_table_insert(client_map, &self->lgrip, client); - g_hash_table_insert(client_map, &self->rgrip, client); + /* set all the windows for the frame in the window_map */ + g_hash_table_insert(window_map, &self->window, client); + g_hash_table_insert(window_map, &self->plate, client); + g_hash_table_insert(window_map, &self->title, client); + g_hash_table_insert(window_map, &self->label, client); + g_hash_table_insert(window_map, &self->max, client); + g_hash_table_insert(window_map, &self->close, client); + g_hash_table_insert(window_map, &self->desk, client); + g_hash_table_insert(window_map, &self->shade, client); + g_hash_table_insert(window_map, &self->icon, client); + g_hash_table_insert(window_map, &self->iconify, client); + g_hash_table_insert(window_map, &self->handle, client); + g_hash_table_insert(window_map, &self->lgrip, client); + g_hash_table_insert(window_map, &self->rgrip, client); } void frame_release_client(Frame *self, Client *client) @@ -456,8 +456,12 @@ void frame_release_client(Frame *self, Client *client) if (XCheckTypedWindowEvent(ob_display, client->window, ReparentNotify, &ev)) { XPutBackEvent(ob_display, &ev); + /* re-map the window since the unmanaging process unmaps it */ - XMapWindow(ob_display, client->window); + + /* XXX ... um no it doesnt it unmaps its parent, the window itself + retains its mapped state, no?! XXX + XMapWindow(ob_display, client->window); */ } else { /* according to the ICCCM - if the client doesn't reparent itself, then we will reparent the window to root for them */ @@ -466,20 +470,20 @@ void frame_release_client(Frame *self, Client *client) client->area.y); } - /* remove all the windows for the frame from the client_map */ - g_hash_table_remove(client_map, &self->window); - g_hash_table_remove(client_map, &self->plate); - g_hash_table_remove(client_map, &self->title); - g_hash_table_remove(client_map, &self->label); - g_hash_table_remove(client_map, &self->max); - g_hash_table_remove(client_map, &self->close); - g_hash_table_remove(client_map, &self->desk); - g_hash_table_remove(client_map, &self->shade); - g_hash_table_remove(client_map, &self->icon); - g_hash_table_remove(client_map, &self->iconify); - g_hash_table_remove(client_map, &self->handle); - g_hash_table_remove(client_map, &self->lgrip); - g_hash_table_remove(client_map, &self->rgrip); + /* remove all the windows for the frame from the window_map */ + g_hash_table_remove(window_map, &self->window); + g_hash_table_remove(window_map, &self->plate); + g_hash_table_remove(window_map, &self->title); + g_hash_table_remove(window_map, &self->label); + g_hash_table_remove(window_map, &self->max); + g_hash_table_remove(window_map, &self->close); + g_hash_table_remove(window_map, &self->desk); + g_hash_table_remove(window_map, &self->shade); + g_hash_table_remove(window_map, &self->icon); + g_hash_table_remove(window_map, &self->iconify); + g_hash_table_remove(window_map, &self->handle); + g_hash_table_remove(window_map, &self->lgrip); + g_hash_table_remove(window_map, &self->rgrip); frame_free(self); }