Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 282c86d in mainline


Ignore:
Timestamp:
2021-07-21T16:12:49Z (3 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
a106037
Parents:
c9722c1
Message:

Selecting entry text by dragging the mouse

Location:
uspace/lib/ui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/private/entry.h

    rc9722c1 r282c86d  
    6666        /** Entry is activated */
    6767        bool active;
     68        /** Button is held down */
     69        bool held;
    6870};
    6971
  • uspace/lib/ui/src/entry.c

    rc9722c1 r282c86d  
    767767                pos.y = event->vpos;
    768768
     769                /* Change cursor shape when pointer is entering/leaving */
    769770                if (gfx_pix_inside_rect(&pos, &entry->rect)) {
    770771                        if (!entry->pointer_inside) {
     
    780781                        }
    781782                }
     783
     784                if (entry->held) {
     785                        /*
     786                         * Selecting using mouse drag: Change pos,
     787                         * keep sel_start
     788                         */
     789                        entry->pos = ui_entry_find_pos(entry, &pos);
     790                        ui_entry_paint(entry);
     791                }
    782792        }
    783793
     
    787797
    788798                if (gfx_pix_inside_rect(&pos, &entry->rect)) {
     799                        /* Clicked inside - activate, set position */
     800                        entry->held = true;
    789801                        entry->pos = ui_entry_find_pos(entry, &pos);
    790802                        entry->sel_start = entry->pos;
     
    796808                        return ui_claimed;
    797809                } else {
     810                        /* Clicked outside - deactivate */
    798811                        ui_entry_deactivate(entry);
    799812                }
     813        }
     814
     815        if (event->type == POS_RELEASE) {
     816                entry->held = false;
    800817        }
    801818
Note: See TracChangeset for help on using the changeset viewer.