Changeset ec50d65e in mainline for uspace/lib/ui/src


Ignore:
Timestamp:
2024-06-22T09:13:30Z (13 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
49aaa0e
Parents:
743f2cdd
git-author:
Jiri Svoboda <jiri@…> (2024-06-22 09:12:48)
git-committer:
Jiri Svoboda <jiri@…> (2024-06-22 09:13:30)
Message:

Editor needs to hide cursor when menu bar is activated

Location:
uspace/lib/ui/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/src/menubar.c

    r743f2cdd rec50d65e  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    6666static ui_evclaim_t ui_menu_bar_ctl_kbd_event(void *, kbd_event_t *);
    6767static ui_evclaim_t ui_menu_bar_ctl_pos_event(void *, pos_event_t *);
     68static void ui_menu_bar_activate_ev(ui_menu_bar_t *);
     69static void ui_menu_bar_deactivate_ev(ui_menu_bar_t *);
    6870
    6971/** Menu bar control ops */
     
    131133        ui_control_delete(mbar->control);
    132134        free(mbar);
     135}
     136
     137/** Set menu bar callbacks.
     138 *
     139 * @param mbar Menu bar
     140 * @param cb Callbacks
     141 * @param arg Callback argument
     142 */
     143void ui_menu_bar_set_cb(ui_menu_bar_t *mbar, ui_menu_bar_cb_t *cb, void *arg)
     144{
     145        mbar->cb = cb;
     146        mbar->arg = arg;
    133147}
    134148
     
    288302                }
    289303
     304                if (!mbar->active)
     305                        ui_menu_bar_activate_ev(mbar);
    290306                mbar->active = true;
    291307        } else {
     308                if (mbar->active)
     309                        ui_menu_bar_deactivate_ev(mbar);
    292310                mbar->active = false;
    293311        }
     
    640658
    641659        (void) ui_menu_bar_paint(mbar);
     660        ui_menu_bar_activate_ev(mbar);
    642661}
    643662
     
    649668{
    650669        ui_menu_bar_select(mbar, NULL, false, 0);
     670        ui_menu_bar_deactivate_ev(mbar);
    651671}
    652672
     
    700720}
    701721
     722/** Send menu bar activate event.
     723 *
     724 * @param mbar Menu bar
     725 */
     726static void ui_menu_bar_activate_ev(ui_menu_bar_t *mbar)
     727{
     728        if (mbar->cb != NULL && mbar->cb->activate != NULL)
     729                mbar->cb->activate(mbar, mbar->arg);
     730}
     731
     732/** Send menu bar deactivate event.
     733 *
     734 * @param mbar Menu bar
     735 */
     736static void ui_menu_bar_deactivate_ev(ui_menu_bar_t *mbar)
     737{
     738        if (mbar->cb != NULL && mbar->cb->deactivate != NULL)
     739                mbar->cb->deactivate(mbar, mbar->arg);
     740}
     741
    702742/** @}
    703743 */
  • uspace/lib/ui/src/window.c

    r743f2cdd rec50d65e  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    318318{
    319319        ui_window_t *window;
     320        ui_window_t *pwindow = NULL;
    320321        display_info_t info;
    321322        gfx_coord2_t scr_dims;
     
    505506        *rwindow = window;
    506507
     508        if (ui_is_fullscreen(ui))
     509                pwindow = ui_window_get_active(ui);
     510
    507511        list_append(&window->lwindows, &ui->windows);
     512
     513        if (ui_is_fullscreen(ui)) {
     514                /* Send unfocus event to previously active window */
     515                if (pwindow != NULL)
     516                        ui_window_send_unfocus(pwindow, 0);
     517        }
     518
    508519        return EOK;
    509520error:
     
    531542{
    532543        ui_t *ui;
     544        ui_window_t *nwindow;
    533545
    534546        if (window == NULL)
     
    558570        if (ui_is_fullscreen(ui)) {
    559571                ui_paint(ui);
     572                /* Send focus event to newly active window */
     573                nwindow = ui_window_get_active(ui);
     574                if (nwindow != NULL)
     575                        ui_window_send_focus(nwindow, 0);
    560576        }
    561577
Note: See TracChangeset for help on using the changeset viewer.