Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/compositor/compositor.c

    rcf02eaf rfeeac0d  
    335335        }
    336336
    337         list_foreach(viewport_list, link) {
    338                 viewport_t *vp = list_get_instance(link, viewport_t, link);
     337        list_foreach(viewport_list, link, viewport_t, vp) {
    339338                sysarg_t w_vp, h_vp;
    340339                surface_get_resolution(vp->surface, &w_vp, &h_vp);
     
    354353        fibril_mutex_lock(&pointer_list_mtx);
    355354
    356         list_foreach(pointer_list, link) {
    357                 pointer_t *ptr = list_get_instance(link, pointer_t, link);
     355        list_foreach(pointer_list, link, pointer_t, ptr) {
    358356                ptr->pos.x = ptr->pos.x > viewport_bound_rect.x ? ptr->pos.x : viewport_bound_rect.x;
    359357                ptr->pos.y = ptr->pos.y > viewport_bound_rect.y ? ptr->pos.y : viewport_bound_rect.y;
     
    374372        fibril_mutex_lock(&pointer_list_mtx);
    375373
    376         list_foreach(viewport_list, link) {
    377 
     374        list_foreach(viewport_list, link, viewport_t, vp) {
    378375                /* Determine what part of the viewport must be updated. */
    379                 viewport_t *vp = list_get_instance(link, viewport_t, link);
    380376                sysarg_t x_dmg_vp, y_dmg_vp, w_dmg_vp, h_dmg_vp;
    381377                surface_get_resolution(vp->surface, &w_dmg_vp, &h_dmg_vp);
     
    446442                        }
    447443
    448                         list_foreach(pointer_list, link) {
    449 
    450                                 pointer_t *ptr = list_get_instance(link, pointer_t, link);
     444                        list_foreach(pointer_list, link, pointer_t, ptr) {
    451445                                if (ptr->ghost.surface) {
    452446
     
    522516                        }
    523517
    524                         list_foreach(pointer_list, link) {
     518                        list_foreach(pointer_list, link, pointer_t, ptr) {
    525519
    526520                                /* Determine what part of the pointer intersects with the
    527521                                 * updated area of the current viewport. */
    528                                 pointer_t *ptr = list_get_instance(link, pointer_t, link);
    529522                                sysarg_t x_dmg_ptr, y_dmg_ptr, w_dmg_ptr, h_dmg_ptr;
    530523                                surface_t *sf_ptr = ptr->cursor.states[ptr->state];
     
    569562
    570563        /* Notify visualizers about updated regions. */
    571         list_foreach(viewport_list, link) {
    572                 viewport_t *vp = list_get_instance(link, viewport_t, link);
     564        list_foreach(viewport_list, link, viewport_t, vp) {
    573565                sysarg_t x_dmg_vp, y_dmg_vp, w_dmg_vp, h_dmg_vp;
    574566                surface_get_damaged_region(vp->surface, &x_dmg_vp, &y_dmg_vp, &w_dmg_vp, &h_dmg_vp);
     
    631623
    632624        fibril_mutex_lock(&pointer_list_mtx);
    633         list_foreach(pointer_list, link) {
    634                 pointer_t *pointer = list_get_instance(link, pointer_t, link);
     625        list_foreach(pointer_list, link, pointer_t, pointer) {
    635626                if (pointer->id == pos_id) {
    636627                        pointer->grab_flags = pointer->pressed ? grab_flags : GF_EMPTY;
     
    710701{
    711702        fibril_mutex_lock(&window_list_mtx);
    712         window_t *window = NULL;
    713         list_foreach(window_list, link) {
    714                 window = list_get_instance(link, window_t, link);
     703
     704        list_foreach(window_list, link, window_t, window) {
    715705                if (window == target) {
    716706                        prodcons_produce(&window->queue, &event->link);
    717                 }
    718         }
    719         if (!window) {
    720                 free(event);
    721         }
     707                        fibril_mutex_unlock(&window_list_mtx);
     708                        return;
     709                }
     710        }
     711
    722712        fibril_mutex_unlock(&window_list_mtx);
     713        free(event);
    723714}
    724715
     
    863854        window_t *win = NULL;
    864855        fibril_mutex_lock(&window_list_mtx);
    865         list_foreach(window_list, link) {
    866                 window_t *cur = list_get_instance(link, window_t, link);
     856        list_foreach(window_list, link, window_t, cur) {
    867857                if (cur->in_dsid == service_id || cur->out_dsid == service_id) {
    868858                        win = cur;
     
    1007997                /* Close all clients and their windows. */
    1008998                fibril_mutex_lock(&window_list_mtx);
    1009                 list_foreach(window_list, link) {
    1010                         window_t *win = list_get_instance(link, window_t, link);
     999                list_foreach(window_list, link, window_t, win) {
    10111000                        window_event_t *event = (window_event_t *) malloc(sizeof(window_event_t));
    10121001                        if (event) {
     
    10341023        viewport_t *vp = NULL;
    10351024        fibril_mutex_lock(&viewport_list_mtx);
    1036         list_foreach(viewport_list, link) {
    1037                 viewport_t *cur = list_get_instance(link, viewport_t, link);
     1025        list_foreach(viewport_list, link, viewport_t, cur) {
    10381026                if (cur->dsid == (service_id_t) IPC_GET_ARG1(*icall)) {
    10391027                        vp = cur;
     
    15711559
    15721560        /* Determine the window which the mouse click belongs to. */
    1573         list_foreach(window_list, link) {
    1574                 win = list_get_instance(link, window_t, link);
     1561        list_foreach(window_list, link, window_t, cw) {
     1562                win = cw;
    15751563                if (win->surface) {
    15761564                        surface_get_resolution(win->surface, &width, &height);
Note: See TracChangeset for help on using the changeset viewer.