Changeset 5d380b6 in mainline for uspace/lib/ui/src/menubar.c
- Timestamp:
- 2023-01-20T11:50:41Z (3 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b1f0a14
- Parents:
- 6828a56
- git-author:
- Jiri Svoboda <jiri@…> (2023-01-20 19:50:21)
- git-committer:
- Jiri Svoboda <jiri@…> (2023-01-20 11:50:41)
- File:
-
- 1 edited
-
uspace/lib/ui/src/menubar.c (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/menubar.c
r6828a56 r5d380b6 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 243 243 * @param menu Menu to select (or deselect if selected) or @c NULL 244 244 * @param openup Open menu even if not currently open 245 */ 246 void ui_menu_bar_select(ui_menu_bar_t *mbar, ui_menu_t *menu, bool openup) 245 * @param idev_id Input device ID associated with the selecting seat 246 */ 247 void ui_menu_bar_select(ui_menu_bar_t *mbar, ui_menu_t *menu, bool openup, 248 sysarg_t idev_id) 247 249 { 248 250 ui_menu_t *old_menu; … … 272 274 * specified. 273 275 */ 274 (void) ui_menu_open(mbar->selected, &rect );276 (void) ui_menu_open(mbar->selected, &rect, idev_id); 275 277 } 276 278 } … … 283 285 * 284 286 * @param mbar Menu bar 285 */ 286 void ui_menu_bar_left(ui_menu_bar_t *mbar) 287 * @param idev_id Input device ID 288 */ 289 void ui_menu_bar_left(ui_menu_bar_t *mbar, sysarg_t idev_id) 287 290 { 288 291 ui_menu_t *nmenu; … … 296 299 297 300 if (nmenu != mbar->selected) 298 ui_menu_bar_select(mbar, nmenu, false );301 ui_menu_bar_select(mbar, nmenu, false, idev_id); 299 302 } 300 303 … … 305 308 * 306 309 * @param mbar Menu bar 307 */ 308 void ui_menu_bar_right(ui_menu_bar_t *mbar) 310 * @param idev_id Input device ID 311 */ 312 void ui_menu_bar_right(ui_menu_bar_t *mbar, sysarg_t idev_id) 309 313 { 310 314 ui_menu_t *nmenu; … … 318 322 319 323 if (nmenu != mbar->selected) 320 ui_menu_bar_select(mbar, nmenu, false );324 ui_menu_bar_select(mbar, nmenu, false, idev_id); 321 325 } 322 326 … … 345 349 346 350 if (event->key == KC_LEFT) 347 ui_menu_bar_left(mbar );351 ui_menu_bar_left(mbar, event->kbd_id); 348 352 349 353 if (event->key == KC_RIGHT) 350 ui_menu_bar_right(mbar );354 ui_menu_bar_right(mbar, event->kbd_id); 351 355 352 356 if (event->key == KC_ENTER || event->key == KC_DOWN) { … … 354 358 ui_menu_bar_entry_rect(mbar, mbar->selected, 355 359 &rect); 356 ui_menu_open(mbar->selected, &rect );360 ui_menu_open(mbar->selected, &rect, event->kbd_id); 357 361 } 358 362 … … 362 366 if (event->c != '\0' && !ui_menu_is_open(mbar->selected)) { 363 367 /* Check if it is an accelerator. */ 364 ui_menu_bar_press_accel(mbar, event->c );368 ui_menu_bar_press_accel(mbar, event->c, event->kbd_id); 365 369 } 366 370 … … 379 383 (event->mods & (KM_CTRL | KM_SHIFT)) == 0 && event->c != '\0') { 380 384 /* Check if it is an accelerator. */ 381 ui_menu_bar_press_accel(mbar, event->c );385 ui_menu_bar_press_accel(mbar, event->c, event->kbd_id); 382 386 } 383 387 … … 399 403 * @param mbar Menu bar 400 404 * @param c Character 401 */ 402 void ui_menu_bar_press_accel(ui_menu_bar_t *mbar, char32_t c) 405 * @param kbd_id Keyboard ID 406 */ 407 void ui_menu_bar_press_accel(ui_menu_bar_t *mbar, char32_t c, sysarg_t kbd_id) 403 408 { 404 409 ui_menu_t *menu; … … 409 414 maccel = ui_menu_get_accel(menu); 410 415 if (c == maccel) { 411 ui_menu_bar_select(mbar, menu, true );416 ui_menu_bar_select(mbar, menu, true, kbd_id); 412 417 return; 413 418 } … … 433 438 gfx_coord_t hpad; 434 439 gfx_coord2_t ppos; 440 sysarg_t pos_id; 435 441 436 442 res = ui_window_get_res(mbar->window); … … 446 452 447 453 pos = mbar->rect.p0; 454 pos_id = event->pos_id; 448 455 449 456 menu = ui_menu_first(mbar); … … 463 470 /* Open the menu, close if already open. */ 464 471 if (menu == mbar->selected) 465 ui_menu_bar_select(mbar, NULL, false );472 ui_menu_bar_select(mbar, NULL, false, pos_id); 466 473 else 467 ui_menu_bar_select(mbar, menu, true );474 ui_menu_bar_select(mbar, menu, true, pos_id); 468 475 469 476 return ui_claimed; … … 544 551 void ui_menu_bar_deactivate(ui_menu_bar_t *mbar) 545 552 { 546 ui_menu_bar_select(mbar, NULL, false );553 ui_menu_bar_select(mbar, NULL, false, 0); 547 554 mbar->active = false; 548 555 }
Note:
See TracChangeset
for help on using the changeset viewer.
