Changeset d92b8e8f in mainline for uspace/lib


Ignore:
Timestamp:
2024-03-04T14:12:26Z (17 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
e229148
Parents:
ee3b28a9
git-author:
Jiri Svoboda <jiri@…> (2024-03-03 18:12:02)
git-committer:
Jiri Svoboda <jiri@…> (2024-03-04 14:12:26)
Message:

Start menu support for passing input device ID (multiseat)

Location:
uspace/lib/ui
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/include/ui/menu.h

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5959extern ui_evclaim_t ui_menu_pos_event(ui_menu_t *, gfx_coord2_t *,
    6060    pos_event_t *);
     61extern sysarg_t ui_menu_get_idev_id(ui_menu_t *);
    6162
    6263#endif
  • uspace/lib/ui/include/ui/popup.h

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5454extern ui_resource_t *ui_popup_get_res(ui_popup_t *);
    5555extern gfx_context_t *ui_popup_get_gc(ui_popup_t *);
     56extern sysarg_t ui_popup_get_idev_id(ui_popup_t *);
    5657
    5758#endif
  • uspace/lib/ui/private/menu.h

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    7070        /** Callback argument */
    7171        void *arg;
     72        /** ID of device that activated entry */
     73        sysarg_t idev_id;
    7274};
    7375
  • uspace/lib/ui/private/popup.h

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5858        /** Placement rectangle */
    5959        gfx_rect_t place;
     60        /** ID of device that sent input event */
     61        sysarg_t idev_id;
    6062};
    6163
  • uspace/lib/ui/src/menu.c

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    578578        ui_menu_t *menu = (ui_menu_t *)arg;
    579579
     580        menu->idev_id = ui_popup_get_idev_id(menu->popup);
    580581        ui_menu_kbd_event(menu, event);
    581582}
     
    592593        gfx_coord2_t spos;
    593594
     595        menu->idev_id = ui_popup_get_idev_id(menu->popup);
     596
    594597        spos.x = 0;
    595598        spos.y = 0;
     
    641644}
    642645
     646/** Get ID of last device that input event.
     647 *
     648 * @param menu Menu
     649 * @return Input device ID
     650 */
     651sysarg_t ui_menu_get_idev_id(ui_menu_t *menu)
     652{
     653        return menu->idev_id;
     654}
     655
    643656/** @}
    644657 */
  • uspace/lib/ui/src/popup.c

    ree3b28a9 rd92b8e8f  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    190190}
    191191
     192/** Get ID of device that sent the last position event.
     193 *
     194 * @param popup Popup window
     195 * @return Input device ID
     196 */
     197sysarg_t ui_popup_get_idev_id(ui_popup_t *popup)
     198{
     199        return popup->idev_id;
     200}
     201
    192202/** Handle close event in popup window.
    193203 *
     
    214224        ui_popup_t *popup = (ui_popup_t *)arg;
    215225
     226        /* Remember ID of device that sent the last event */
     227        popup->idev_id = event->kbd_id;
     228
    216229        if (popup->cb != NULL && popup->cb->kbd != NULL)
    217230                popup->cb->kbd(popup, popup->arg, event);
     
    229242        ui_popup_t *popup = (ui_popup_t *)arg;
    230243
     244        /* Remember ID of device that sent the last event */
     245        popup->idev_id = event->pos_id;
     246
    231247        if (popup->cb != NULL && popup->cb->pos != NULL)
    232248                popup->cb->pos(popup, popup->arg, event);
Note: See TracChangeset for help on using the changeset viewer.