summaryrefslogtreecommitdiff
path: root/config/nvim-1/undo/%home%coast%Projects%wayland%wled%client.c
blob: 3224b292137add9da8829b9756d68e11a4406af2 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 08 2f 40 10 9b 2e 78 24 46 cd 07 24 2e 83 65 a4 81 ef 2f bb a0 Vim.UnDo..../@...x$F..$..e.../..
0020 f6 87 ad 81 c2 d7 d9 c1 06 a1 11 00 00 06 94 00 00 00 04 65 6c 73 65 00 00 06 7a 00 00 00 00 00 ...................else...z.....
0040 00 00 01 00 00 00 34 00 00 00 00 00 00 00 34 00 00 00 34 00 00 00 34 00 00 00 00 69 9f cd 0f 04 ......4.......4...4...4....i....
0060 01 00 00 00 20 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 ......_.........................
0080 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 69 9f c6 9a 04 01 00 00 00 00 00 f5 18 00 00 02 da 00 00 00 00 00 ..........i.....................
0200 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 02 db 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ...........}....................
0220 00 00 02 d7 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 30 20 20 20 20 69 66 20 28 66 64 73 5b ...................0....if.(fds[
0240 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 20 69 66 28 77 6c 5f 64 69 73 70 6c 61 79 0].revents&POLLIN).if(wl_display
0260 5f 64 69 73 f5 18 00 00 02 d8 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 ca 00 00 00 00 _dis............................
0280 00 00 00 00 00 00 00 01 00 00 00 17 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 ..............xdg_toplevel_set_t
02a0 69 74 6c f5 18 00 00 02 cb 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 c4 00 00 00 00 00 itl.............................
02c0 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 02 c5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ................................
02e0 00 02 b4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 31 20 20 69 66 20 28 61 2e 72 65 70 65 61 ..................1..if.(a.repea
0300 74 5f 66 64 3c 30 29 7b 70 65 72 72 6f 72 28 22 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 22 29 t_fd<0){perror("timerfd_create")
0320 3b 72 65 74 f5 18 00 00 02 b5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 ae 00 00 00 00 ;ret............................
0340 00 00 00 00 00 00 00 01 00 00 00 20 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e ..............a.open_menu=MENU_N
0360 4f 4e 45 3b 20 61 2e 68 6f 76 65 72 f5 18 00 00 02 af 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ONE;.a.hover....................
0380 00 00 02 a1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 44 20 20 65 6c 73 65 20 69 66 20 28 21 ...................D..else.if.(!
03a0 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 20 20 20 strcmp(iface,"xdg_wm_base"))....
03c0 20 20 20 20 20 20 7b 20 61 2d 3e 77 6d 20 20 3d 77 6c 5f 72 65 67 69 73 f5 18 00 00 02 a2 00 00 ......{.a->wm..=wl_regis........
03e0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 9f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1b ................................
0400 20 20 69 66 20 20 20 20 20 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 f5 18 00 00 02 ..if......(!strcmp(iface,"w.....
0420 a0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 95 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
0440 00 00 17 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 3d 77 6c 5f 73 65 61 74 5f f5 18 00 00 02 96 .......a->pointer=wl_seat_......
0460 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 8a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
0480 00 3a 20 20 2e 6b 65 79 6d 61 70 3d 6b 62 5f 6b 65 79 6d 61 70 2c 2e 65 6e 74 65 72 3d 6b 62 5f .:...keymap=kb_keymap,.enter=kb_
04a0 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 6b 62 5f 6c 65 61 76 65 2c 2e 6b 65 79 3d 6b f5 18 00 00 enter,.leave=kb_leave,.key=k....
04c0 02 8b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 81 00 00 00 00 00 00 00 00 00 00 00 01 ................................
04e0 00 00 00 48 20 20 7d 20 65 6c 73 65 20 7b 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 ...H..}.else.{.struct.itimerspec
0500 20 74 73 3d 7b 30 7d 3b 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 .ts={0};.timerfd_settime(a->repe
0520 61 74 5f 66 64 2c 30 2c 26 74 73 2c f5 18 00 00 02 82 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 at_fd,0,&ts,....................
0540 00 00 02 76 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 ...v...............Xstatic.void.
0560 6b 62 5f 6b 65 79 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 kb_key(void.*d,.struct.wl_keyboa
0580 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f rd.*kb,.uint32_t.serial,.uint32_
05a0 74 20 74 2c 20 75 69 6e 74 33 32 5f f5 18 00 00 02 77 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 t.t,.uint32_.....w..............
05c0 00 00 02 73 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 73 74 61 74 69 63 20 76 6f 69 64 20 ...s................static.void.
05e0 f5 18 00 00 02 74 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 6a 00 00 00 00 00 00 00 00 .....t.................j........
0600 00 00 00 01 00 00 00 2f 20 20 63 68 61 72 20 2a 73 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 ......./..char.*s=mmap(NULL,size
0620 2c 50 52 4f 54 5f 52 45 41 44 2c 4d 41 50 5f 50 52 49 56 41 54 45 2c f5 18 00 00 02 6b 00 00 00 ,PROT_READ,MAP_PRIVATE,.....k...
0640 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 60 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 ..............`.................
0660 20 63 75 f5 18 00 00 02 61 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 4f 00 00 00 00 00 .cu.....a.................O.....
0680 00 00 00 00 00 00 01 00 00 00 1d 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 ...............a->open_menu=MENU
06a0 5f 4e 4f 4e 45 3b 20 61 f5 18 00 00 02 50 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 43 _NONE;.a.....P.................C
06c0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f ...............Nstatic.void.ptr_
06e0 62 75 74 74 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 button(void.*d,.struct.wl_pointe
0700 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f f5 18 r.*p,.uint32_t.serial,.uint32_..
0720 00 00 02 44 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 39 00 00 00 00 00 00 00 00 00 00 ...D.................9..........
0740 00 01 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6c 65 61 76 65 28 76 6f 69 64 .....#static.void.ptr_leave(void
0760 20 2a 64 2c 20 73 74 72 75 f5 18 00 00 02 3a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 .*d,.stru.....:.................
0780 31 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 1...............Bstatic.void.dd_
07a0 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 motion(void.*d,.struct.wl_data_d
07c0 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 f5 18 00 00 02 32 00 00 00 00 00 00 00 evice.*dd,.uint32_t.....2.......
07e0 00 00 00 00 00 f5 18 00 00 02 2a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 27 20 20 73 74 72 ..........*...............'..str
0800 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 61 2d 3e 64 73 29 7b 77 6c 5f 64 61 74 61 5f uct.app.*a=d;.if(a->ds){wl_data_
0820 73 6f f5 18 00 00 02 2b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 26 00 00 00 00 00 00 so.....+.................&......
0840 00 00 00 00 00 01 00 00 00 02 73 74 f5 18 00 00 02 27 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ..........st.....'..............
0860 00 00 02 17 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 16 73 74 61 74 69 63 20 76 6f 69 64 20 ....................static.void.
0880 78 73 5f 63 66 67 28 76 6f 69 f5 18 00 00 02 18 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 xs_cfg(voi......................
08a0 02 11 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 73 74 61 74 69 f5 18 00 00 02 12 00 00 00 ..................stati.........
08c0 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 05 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 ................................
08e0 20 20 f5 18 00 00 02 06 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 f9 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 01 00 00 00 34 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 .........4....if.(sym==XKB_KEY_E
0920 6e 64 29 20 20 7b 20 77 68 69 6c 65 28 63 75 72 73 6f 72 3c 74 6c 65 6e 20 26 26 74 65 78 f5 18 nd)..{.while(cursor<tlen.&&tex..
0940 00 00 01 fa 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 f1 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 01 00 00 00 21 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 76 7c 7c .....!....if.(plain==XKB_KEY_v||
0980 70 6c 61 69 6e 3d 3d f5 18 00 00 01 f2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 ee 00 plain==.........................
09a0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 22 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b .............."....if.(plain==XK
09c0 42 5f 4b 45 59 5f 61 7c 7c 70 6c 61 69 6e 3d 3d 58 f5 18 00 00 01 ef 00 00 00 00 00 00 00 00 00 B_KEY_a||plain==X...............
09e0 00 00 00 f5 18 00 00 01 e6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 20 20 69 66 20 .............................if.
0a00 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e f5 18 00 00 01 e7 00 00 00 00 00 00 00 00 (a->open_menu!=MEN..............
0a20 00 00 00 00 f5 18 00 00 01 e1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 78 6b 62 5f ............................xkb_
0a40 6c 61 79 6f 75 74 f5 18 00 00 01 e2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 d6 00 00 layout..........................
0a60 00 00 00 00 00 00 00 00 00 01 00 00 00 28 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f .............(..wl_data_source_o
0a80 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 55 54 46 38 5f 53 54 52 49 f5 18 00 00 01 d7 00 00 00 00 ffer(a->ds,."UTF8_STRI..........
0aa0 00 00 00 00 00 00 00 00 f5 18 00 00 01 cc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 ................................
0ac0 f5 18 00 00 01 cd 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 bb 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 01 00 00 00 3b 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 76 6f 69 64 29 .......;static.int.sel_len(void)
0b00 20 20 20 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 ...{.return.sel_anchor<cursor.?.
0b20 63 75 72 f5 18 00 00 01 bc 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 b5 00 00 00 00 00 cur.............................
0b40 00 00 00 00 00 00 01 00 00 00 09 20 20 78 64 67 5f 74 6f 70 f5 18 00 00 01 b6 00 00 00 00 00 00 .............xdg_top............
0b60 00 00 00 00 00 00 f5 18 00 00 01 a7 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 20 20 73 74 ..............................st
0b80 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d f5 18 00 00 01 a8 00 00 00 00 00 00 00 00 00 00 00 ruct.popup.*p.=.................
0ba0 00 f5 18 00 00 01 9d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 47 20 20 69 66 20 28 70 2d 3e ......................G..if.(p->
0bc0 62 75 66 29 20 20 20 20 7b 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 70 2d 3e 62 buf)....{.wl_buffer_destroy(p->b
0be0 75 66 29 3b 20 20 20 20 20 20 20 20 20 20 70 2d 3e 62 75 66 20 20 20 20 3d 20 4e 55 4c 4c f5 18 uf);..........p->buf....=.NULL..
0c00 00 00 01 9e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 93 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 01 00 00 00 19 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 f5 ........xdg_surface_ack_configu.
0c40 18 00 00 01 94 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 7d 00 00 00 00 00 00 00 00 00 ......................}.........
0c60 00 00 01 00 00 00 00 f5 18 00 00 01 7e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 65 00 ............~.................e.
0c80 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1c 20 20 20 20 69 66 20 28 79 2b 63 65 6c 6c 5f 68 20 ...................if.(y+cell_h.
0ca0 3e 20 74 61 68 29 20 62 72 65 61 f5 18 00 00 01 66 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 >.tah).brea.....f...............
0cc0 00 01 5e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 20 69 66 20 28 73 f5 18 00 00 01 5f ..^..................if.(s....._
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .................P..............
0d00 00 02 20 20 f5 18 00 00 01 51 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 48 00 00 00 00 .........Q.................H....
0d20 00 00 00 00 00 00 00 01 00 00 00 14 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 ..............frect(px,pw,ph,.dx
0d40 f5 18 00 00 01 49 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 3a 00 00 00 00 00 00 00 00 .....I.................:........
0d60 00 00 00 01 00 00 00 1e 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 61 2d 3e 6d 6f 75 73 65 5f ............bool.hov.=.a->mouse_
0d80 79 3e 3d 62 79 20 f5 18 00 00 01 3b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 27 00 00 y>=by......;.................'..
0da0 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 01 28 00 00 00 00 00 00 00 00 00 00 00 ....................(...........
0dc0 00 f5 18 00 00 01 17 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 01 18 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 07 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 23 ...............................#
0e00 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 ....const.char.*h.=.getenv("HOME
0e20 22 29 3b f5 18 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 f2 00 00 00 00 00 ");.............................
0e40 00 00 00 00 00 00 01 00 00 00 18 20 20 20 20 69 66 20 28 6d 79 20 3e 3d 20 69 79 20 26 26 20 6d ...............if.(my.>=.iy.&&.m
0e60 79 20 3c f5 18 00 00 00 f3 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e3 00 00 00 00 00 y.<.............................
0e80 00 00 00 00 00 00 01 00 00 00 07 20 20 69 6e 74 20 6e f5 18 00 00 00 e4 00 00 00 00 00 00 00 00 .............int.n..............
0ea0 00 00 00 00 f5 18 00 00 00 da 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 69 6e 74 20 ............................int.
0ec0 6e 20 3d 20 28 6d f5 18 00 00 00 db 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 d1 00 00 n.=.(m..........................
0ee0 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 ................const.char.*lbls
0f00 5b 5d 20 3d 20 7b 22 f5 18 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 be 00 [].=.{".........................
0f20 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 6b 65 ...............static.void.*make
0f40 5f 73 68 6d 28 73 74 72 f5 18 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b0 _shm(str........................
0f60 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 66 f5 18 00 00 00 b1 00 00 00 00 00 00 00 ..................f.............
0f80 00 00 00 00 00 f5 18 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 20 20 20 20 20 ................................
0fa0 f5 18 00 00 00 9e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 80 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 ................................
1000 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 ....5...........................
1020 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 f5 18 00 00 ................................
1040 00 00 80 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 05 00 00 00 00 0e 00 00 00 00 ................................
1060 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 9d 00 00 00 05 00 00 00 ................................
1080 00 00 00 00 00 00 00 00 13 00 00 00 03 00 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a0 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 b0 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0e 00 ................................
10c0 00 00 19 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ................................
10e0 00 00 00 00 be 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 19 00 00 00 00 17 00 00 ................................
1100 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 d1 00 00 00 19 00 ................................
1120 00 00 00 00 00 00 00 00 00 00 09 00 00 00 0c 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1140 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 da 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 09 00 00 00 07 00 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
1180 f5 18 00 00 00 00 e3 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 18 00 00 00 00 1c ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 f2 00 00 00 ................................
11c0 18 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 23 00 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 ................#...............
11e0 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 07 01 00 00 23 00 00 00 00 00 00 00 00 00 ......................#.........
1200 00 00 10 00 00 00 01 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................................
1220 00 00 f5 18 00 00 00 00 17 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 ................................
1240 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 27 01 ."............................'.
1260 00 00 01 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 1e 00 00 00 00 24 00 00 00 00 00 00 00 00 .......................$........
1280 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 3a 01 00 00 1e 00 00 00 00 00 00 00 ....................:...........
12a0 00 00 00 00 0e 00 00 00 14 00 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 .............&..................
12c0 00 00 00 00 f5 18 00 00 00 00 48 01 00 00 14 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 02 00 ..........H.....................
12e0 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 ...(............................
1300 50 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 07 00 00 00 00 29 00 00 00 00 00 00 P........................)......
1320 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 5e 01 00 00 07 00 00 00 00 00 ......................^.........
1340 00 00 00 00 00 00 07 00 00 00 1c 00 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ...............+................
1360 00 00 00 00 00 00 f5 18 00 00 00 00 65 01 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 ............e...................
1380 00 00 00 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 .....,..........................
13a0 00 00 7d 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 19 00 00 00 00 2f 00 00 00 00 ..}......................../....
13c0 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 93 01 00 00 19 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 0a 00 00 00 47 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............G....3..............
1400 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 9d 01 00 00 47 00 00 00 00 00 00 00 00 00 00 00 0a 00 ..................G.............
1420 00 00 13 00 00 00 00 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 .......5........................
1440 00 00 00 00 a7 01 00 00 13 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 09 00 00 00 00 37 00 00 .............................7..
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 b5 01 00 00 09 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 06 00 00 00 3b 00 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 ..............;....9............
14a0 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 bb 01 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 ....................;...........
14c0 11 00 00 00 02 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 .........:......................
14e0 f5 18 00 00 00 00 cc 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 28 00 00 00 00 3c ..........................(....<
1500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 d6 01 00 00 ................................
1520 28 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 0c 00 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 (....................>..........
1540 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 e1 01 00 00 0c 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 05 00 00 00 19 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ...........@....................
1580 00 00 f5 18 00 00 00 00 e6 01 00 00 19 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 22 00 00 00 ............................"...
15a0 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ee 01 .A..............................
15c0 00 00 22 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 21 00 00 00 00 43 00 00 00 00 00 00 00 00 .."...............!....C........
15e0 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 f1 01 00 00 21 00 00 00 00 00 00 00 ........................!.......
1600 00 00 00 00 08 00 00 00 34 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 ........4....D..................
1620 00 00 00 00 f5 18 00 00 00 00 f9 01 00 00 34 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 03 00 ..............4.................
1640 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ...F............................
1660 05 02 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 05 00 00 00 00 48 00 00 00 00 00 00 .........................H......
1680 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 11 02 00 00 05 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 06 00 00 00 16 00 00 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ...............J................
16c0 00 00 00 00 00 00 f5 18 00 00 00 00 17 02 00 00 16 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 ................................
16e0 02 00 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 .....K..........................
1700 00 00 26 02 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 27 00 00 00 00 4e 00 00 00 00 ..&...................'....N....
1720 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 2a 02 00 00 27 00 00 00 ........................*...'...
1740 00 00 00 00 00 00 00 00 07 00 00 00 42 00 00 00 00 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............B....O..............
1760 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 31 02 00 00 42 00 00 00 00 00 00 00 00 00 00 00 08 00 ..............1...B.............
1780 00 00 23 00 00 00 00 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..#....Q........................
17a0 00 00 00 00 39 02 00 00 23 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 4e 00 00 00 00 53 00 00 ....9...#...............N....S..
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 43 02 00 00 4e 00 ..........................C...N.
17e0 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 1d 00 00 00 00 55 00 00 00 00 00 00 00 00 00 00 00 00 ...................U............
1800 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 4f 02 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 ................O...............
1820 11 00 00 00 04 00 00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 .........W......................
1840 f5 18 00 00 00 00 60 02 00 00 04 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 2f 00 00 00 00 59 ......`.................../....Y
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 6a 02 00 00 ............................j...
1880 2f 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 0c 00 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 /....................[..........
18a0 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 73 02 00 00 0c 00 00 00 00 00 00 00 00 00 ..................s.............
18c0 00 00 03 00 00 00 58 00 00 00 00 5d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ......X....]....................
18e0 00 00 f5 18 00 00 00 00 76 02 00 00 58 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 48 00 00 00 ........v...X...............H...
1900 00 5e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 81 02 .^..............................
1920 00 00 48 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 3a 00 00 00 00 60 00 00 00 00 00 00 00 00 ..H...............:....`........
1940 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 8a 02 00 00 3a 00 00 00 00 00 00 00 ........................:.......
1960 00 00 00 00 0b 00 00 00 17 00 00 00 00 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 .............b..................
1980 00 00 00 00 f5 18 00 00 00 00 95 02 00 00 17 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 1b 00 ................................
19a0 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ...d............................
19c0 9f 02 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 44 00 00 00 00 66 00 00 00 00 00 00 ....................D....f......
19e0 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 a1 02 00 00 44 00 00 00 00 00 ..........................D.....
1a00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 00 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ...............g................
1a20 00 00 00 00 00 00 f5 18 00 00 00 00 ae 02 00 00 20 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 ................................
1a40 31 00 00 00 00 6a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 1....j..........................
1a60 00 00 b4 02 00 00 31 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 6b 00 00 00 00 ......1....................k....
1a80 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 c4 02 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 06 00 00 00 17 00 00 00 00 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................m..............
1ac0 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 ca 02 00 00 17 00 00 00 00 00 00 00 00 00 00 00 0d 00 ................................
1ae0 00 00 30 00 00 00 00 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..0....n........................
1b00 00 00 00 00 d7 02 00 00 30 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 00 70 00 00 ........0....................p..
1b20 00 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 01 00 00 00 03 ............(.......5._.........
1b40 00 00 00 00 00 00 00 00 00 00 00 02 00 00 02 db 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c6 9b 04 01 ..........................i.....
1cc0 00 00 00 02 00 f5 18 00 00 00 02 00 00 04 5a 00 00 02 db 00 00 02 d6 00 00 00 26 23 69 6e 63 6c ..............Z...........&#incl
1ce0 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 ude."xdg-shell-client-protocol.h
1d00 22 00 00 00 13 23 69 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 12 23 69 6e 63 "....#include."config.h"....#inc
1d20 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 lude.<errno.h>....#include.<fcnt
1d40 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 14 23 69 6e l.h>....#include.<poll.h>....#in
1d60 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 clude.<stdbool.h>....#include.<s
1d80 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 tdint.h>....#include.<stdio.h>..
1da0 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
1dc0 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
1de0 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 an.h>....#include.<sys/timerfd.h
1e00 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
1e20 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c lude.<wayland-client.h>....#incl
1e40 75 64 65 20 3c 78 6b 62 63 6f 6d 6d 6f 6e 2f 78 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 22 23 ude.<xkbcommon/xkbcommon.h>..."#
1e60 69 6e 63 6c 75 64 65 20 3c 66 6f 6e 74 63 6f 6e 66 69 67 2f 66 6f 6e 74 63 6f 6e 66 69 67 2e 68 include.<fontconfig/fontconfig.h
1e80 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 66 74 32 62 75 69 6c 64 2e 68 3e 00 00 00 16 23 69 >....#include.<ft2build.h>....#i
1ea0 6e 63 6c 75 64 65 20 46 54 5f 46 52 45 45 54 59 50 45 5f 48 00 00 00 00 00 00 00 17 23 64 65 66 nclude.FT_FREETYPE_H........#def
1ec0 69 6e 65 20 4d 41 58 5f 54 45 58 54 20 20 36 35 35 33 36 00 00 00 14 23 64 65 66 69 6e 65 20 42 ine.MAX_TEXT..65536....#define.B
1ee0 41 52 5f 48 20 20 20 20 20 32 38 00 00 00 14 23 64 65 66 69 6e 65 20 42 54 4e 5f 50 41 44 20 20 AR_H.....28....#define.BTN_PAD..
1f00 20 31 30 00 00 00 13 23 64 65 66 69 6e 65 20 50 41 44 20 20 20 20 20 20 20 38 00 00 00 00 00 00 .10....#define.PAD.......8......
1f20 00 1b 23 64 65 66 69 6e 65 20 42 47 5f 43 4f 4c 4f 52 20 20 20 20 20 43 46 47 5f 42 47 00 00 00 ..#define.BG_COLOR.....CFG_BG...
1f40 1b 23 64 65 66 69 6e 65 20 46 47 5f 43 4f 4c 4f 52 20 20 20 20 20 43 46 47 5f 46 47 00 00 00 1f .#define.FG_COLOR.....CFG_FG....
1f60 23 64 65 66 69 6e 65 20 43 55 52 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 5f 43 55 52 53 4f 52 00 #define.CUR_COLOR....CFG_CURSOR.
1f80 00 00 1f 23 64 65 66 69 6e 65 20 53 45 4c 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 5f 53 45 4c 5f ...#define.SEL_COLOR....CFG_SEL_
1fa0 42 47 00 00 00 1f 23 64 65 66 69 6e 65 20 53 45 4c 5f 46 47 20 20 20 20 20 20 20 43 46 47 5f 53 BG....#define.SEL_FG.......CFG_S
1fc0 45 4c 5f 46 47 00 00 00 1f 23 64 65 66 69 6e 65 20 42 41 52 5f 42 47 20 20 20 20 20 20 20 43 46 EL_FG....#define.BAR_BG.......CF
1fe0 47 5f 42 41 52 5f 42 47 00 00 00 1f 23 64 65 66 69 6e 65 20 42 41 52 5f 46 47 20 20 20 20 20 20 G_BAR_BG....#define.BAR_FG......
2000 20 43 46 47 5f 42 41 52 5f 46 47 00 00 00 20 23 64 65 66 69 6e 65 20 42 54 4e 5f 48 4f 56 20 20 .CFG_BAR_FG....#define.BTN_HOV..
2020 20 20 20 20 43 46 47 5f 42 54 4e 5f 48 4f 56 00 00 00 20 23 64 65 66 69 6e 65 20 44 52 4f 50 5f ....CFG_BTN_HOV....#define.DROP_
2040 42 47 20 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 42 47 00 00 00 20 23 64 65 66 69 6e 65 20 44 BG......CFG_DROP_BG....#define.D
2060 52 4f 50 5f 46 47 20 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 46 47 00 00 00 21 23 64 65 66 69 ROP_FG......CFG_DROP_FG...!#defi
2080 6e 65 20 44 52 4f 50 5f 48 4f 56 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 00 00 00 24 ne.DROP_HOV.....CFG_DROP_HOV...$
20a0 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 48 4f 56 5f 46 47 20 20 43 46 47 5f 44 52 4f 50 5f 48 4f #define.DROP_HOV_FG..CFG_DROP_HO
20c0 56 5f 46 47 00 00 00 1c 23 64 65 66 69 6e 65 20 53 45 50 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 V_FG....#define.SEP_COLOR....CFG
20e0 5f 53 45 50 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 74 65 78 74 5b 4d 41 58 _SEP.......!static.char.text[MAX
2100 5f 54 45 58 54 5d 20 3d 20 7b 30 7d 3b 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 20 74 6c 65 _TEXT].=.{0};....static.int..tle
2120 6e 20 20 20 3d 20 30 3b 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 20 63 75 72 73 6f 72 20 3d n...=.0;....static.int..cursor.=
2140 20 30 3b 00 00 00 1c 73 74 61 74 69 63 20 69 6e 74 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 .0;....static.int..sel_anchor.=.
2160 2d 31 3b 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 66 69 6c 65 70 61 74 68 5b 34 30 39 36 -1;...!static.char.filepath[4096
2180 5d 20 3d 20 7b 30 7d 3b 00 00 00 1a 73 74 61 74 69 63 20 62 6f 6f 6c 20 64 69 72 74 79 20 3d 20 ].=.{0};....static.bool.dirty.=.
21a0 66 61 6c 73 65 3b 00 00 00 00 00 00 00 19 73 74 61 74 69 63 20 46 54 5f 4c 69 62 72 61 72 79 20 false;........static.FT_Library.
21c0 66 74 5f 6c 69 62 3b 00 00 00 1a 73 74 61 74 69 63 20 46 54 5f 46 61 63 65 20 20 20 20 66 74 5f ft_lib;....static.FT_Face....ft_
21e0 66 61 63 65 3b 00 00 00 19 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 63 65 6c 6c 5f face;....static.int........cell_
2200 77 3b 00 00 00 19 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 63 65 6c 6c 5f 68 3b 00 w;....static.int........cell_h;.
2220 00 00 1b 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 61 73 63 65 6e 64 65 72 3b 00 00 ...static.int........ascender;..
2240 00 26 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f .&static.int........font_pt.=.FO
2260 4e 54 5f 53 49 5a 45 3b 00 00 00 00 00 00 00 45 74 79 70 65 64 65 66 20 65 6e 75 6d 20 7b 20 4d NT_SIZE;.......Etypedef.enum.{.M
2280 45 4e 55 5f 4e 4f 4e 45 20 3d 20 2d 31 2c 20 4d 45 4e 55 5f 46 49 4c 45 20 3d 20 30 2c 20 4d 45 ENU_NONE.=.-1,.MENU_FILE.=.0,.ME
22a0 4e 55 5f 49 4e 46 4f 20 3d 20 31 20 7d 20 4d 65 6e 75 49 64 3b 00 00 00 00 00 00 00 3f 74 79 70 NU_INFO.=.1.}.MenuId;.......?typ
22c0 65 64 65 66 20 73 74 72 75 63 74 20 7b 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61 62 65 6c 3b edef.struct.{.const.char.*label;
22e0 20 62 6f 6f 6c 20 73 65 70 5f 61 66 74 65 72 3b 20 7d 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 .bool.sep_after;.}.MenuItem;....
2300 00 00 00 26 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 ...&static.const.MenuItem.file_i
2320 74 65 6d 73 5b 5d 20 3d 20 7b 00 00 00 1d 20 20 7b 20 22 4e 65 77 22 2c 20 20 20 20 20 20 20 20 tems[].=.{......{."New",........
2340 20 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 4f 70 65 6e 22 2c 20 20 20 20 20 20 ...false.},......{."Open",......
2360 20 20 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 22 2c 20 20 20 20 20 ....false.},......{."Save",.....
2380 20 20 20 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 20 41 73 22 2c 20 .....false.},......{."Save.As",.
23a0 20 20 20 20 20 20 74 72 75 65 20 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 20 61 6e 64 20 ......true..},......{."Save.and.
23c0 51 75 69 74 22 2c 20 66 61 6c 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 51 75 69 74 22 2c 20 20 Quit",.false.},......{."Quit",..
23e0 20 20 20 20 20 20 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 02 7d 3b 00 00 00 26 73 74 61 74 69 63 ........false.},....};...&static
2400 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 3d 20 7b .const.MenuItem.info_items[].=.{
2420 00 00 00 16 20 20 7b 20 22 41 62 6f 75 74 22 2c 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 02 7d 3b ......{."About",..false.},....};
2440 00 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 46 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 ...>#define.N_FILE.((int)(sizeof
2460 20 66 69 6c 65 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 66 69 6c 65 5f 69 74 65 6d 73 .file_items./.sizeof.*file_items
2480 29 29 00 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 7a 65 ))...>#define.N_INFO.((int)(size
24a0 6f 66 20 69 6e 66 6f 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 69 6e 66 6f 5f 69 74 65 of.info_items./.sizeof.*info_ite
24c0 6d 73 29 29 00 00 00 00 00 00 00 0e 73 74 72 75 63 74 20 70 6f 70 75 70 20 7b 00 00 00 1a 20 20 ms))........struct.popup.{......
24e0 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 20 20 2a 77 73 3b 00 00 00 1a 20 20 73 74 struct.wl_surface...*ws;......st
2500 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 ruct.xdg_surface..*xs;......stru
2520 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 1e 20 20 76 6f 69 64 20 20 ct.xdg_toplevel.*xt;......void..
2540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 70 69 78 65 6c 73 3b 00 00 00 23 20 20 73 69 7a 65 ..............*pixels;...#..size
2560 5f 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 _t...............pixels_size;...
2580 1b 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 20 20 20 2a 62 75 66 3b 00 00 00 0b ...struct.wl_buffer....*buf;....
25a0 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 ..int.w,.h;......bool.configured
25c0 3b 00 00 00 0c 20 20 62 6f 6f 6c 20 6f 70 65 6e 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 73 ;......bool.open;....};........s
25e0 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 23 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c truct.app.{...#..struct.wl_displ
2600 61 79 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 64 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 ay.............*d;...%..struct.w
2620 6c 5f 72 65 67 69 73 74 72 79 20 20 20 20 20 20 20 20 20 20 20 20 2a 72 65 67 3b 00 00 00 26 20 l_registry............*reg;...&.
2640 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 20 20 20 20 20 20 20 20 20 2a .struct.wl_compositor..........*
2660 63 6f 6d 70 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 20 20 20 20 20 20 20 comp;...%..struct.wl_shm........
2680 20 20 20 20 20 20 20 20 20 2a 73 68 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 .........*shm;...$..struct.xdg_w
26a0 6d 5f 62 61 73 65 20 20 20 20 20 20 20 20 20 20 20 20 2a 77 6d 3b 00 00 00 24 20 20 73 74 72 75 m_base............*wm;...$..stru
26c0 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 77 73 3b 00 00 ct.wl_surface.............*ws;..
26e0 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 .$..struct.xdg_surface..........
2700 20 20 2a 78 73 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 ..*xs;...$..struct.xdg_toplevel.
2720 20 20 20 20 20 20 20 20 20 20 2a 78 74 3b 00 00 00 26 20 20 73 74 72 75 63 74 20 77 6c 5f 73 65 ..........*xt;...&..struct.wl_se
2740 61 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 73 65 61 74 3b 00 00 00 2a 20 20 73 74 at................*seat;...*..st
2760 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 20 20 20 20 20 20 20 20 20 20 20 2a 6b 65 79 ruct.wl_keyboard............*key
2780 62 6f 61 72 64 3b 00 00 00 29 20 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 20 20 board;...)..struct.wl_pointer...
27a0 20 20 20 20 20 20 20 20 20 20 2a 70 6f 69 6e 74 65 72 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 ..........*pointer;...%..struct.
27c0 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 20 2a 64 64 6d 3b 00 00 00 24 wl_data_device_manager.*ddm;...$
27e0 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 20 20 20 20 20 20 20 20 ..struct.wl_data_device.........
2800 2a 64 64 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 *dd;...$..struct.wl_data_source.
2820 20 20 20 20 20 20 20 20 2a 64 73 3b 00 00 00 1a 20 20 76 6f 69 64 20 20 20 20 20 20 20 20 20 20 ........*ds;......void..........
2840 20 20 2a 70 69 78 65 6c 73 3b 00 00 00 1f 20 20 73 69 7a 65 5f 74 20 20 20 20 20 20 20 20 20 20 ..*pixels;......size_t..........
2860 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 .pixels_size;......struct.wl_buf
2880 66 65 72 20 2a 62 75 66 3b 00 00 00 21 20 20 69 6e 74 20 77 2c 20 68 2c 20 70 65 6e 64 69 6e 67 fer.*buf;...!..int.w,.h,.pending
28a0 5f 77 2c 20 70 65 6e 64 69 6e 67 5f 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 _w,.pending_h;......bool.configu
28c0 72 65 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 78 6b 62 5f 63 6f 6e 74 65 78 74 20 2a 78 6b red;......struct.xkb_context.*xk
28e0 62 5f 63 74 78 3b 00 00 00 21 20 20 73 74 72 75 63 74 20 78 6b 62 5f 6b 65 79 6d 61 70 20 20 2a b_ctx;...!..struct.xkb_keymap..*
2900 78 6b 62 5f 6b 65 79 6d 61 70 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 78 6b 62 5f 73 74 61 74 xkb_keymap;......struct.xkb_stat
2920 65 20 20 20 2a 78 6b 62 5f 73 74 61 74 65 3b 00 00 00 15 20 20 69 6e 74 20 20 20 20 20 20 72 65 e...*xkb_state;......int......re
2940 70 65 61 74 5f 66 64 3b 00 00 00 16 20 20 75 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 6b 65 peat_fd;......uint32_t.repeat_ke
2960 79 3b 00 00 00 17 20 20 69 6e 74 33 32 5f 74 20 20 72 65 70 65 61 74 5f 72 61 74 65 3b 00 00 00 y;......int32_t..repeat_rate;...
2980 18 20 20 69 6e 74 33 32 5f 74 20 20 72 65 70 65 61 74 5f 64 65 6c 61 79 3b 00 00 00 1f 20 20 63 ...int32_t..repeat_delay;......c
29a0 68 61 72 20 20 20 20 20 63 6c 69 70 62 6f 61 72 64 5b 4d 41 58 5f 54 45 58 54 5d 3b 00 00 00 19 har.....clipboard[MAX_TEXT];....
29c0 20 20 69 6e 74 20 20 20 20 20 20 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3b 00 00 00 17 20 20 75 ..int......clipboard_len;......u
29e0 69 6e 74 33 32 5f 74 20 6c 61 73 74 5f 73 65 72 69 61 6c 3b 00 00 00 1c 20 20 69 6e 74 20 20 20 int32_t.last_serial;......int...
2a00 20 20 20 6d 6f 75 73 65 5f 78 2c 20 6d 6f 75 73 65 5f 79 3b 00 00 00 15 20 20 4d 65 6e 75 49 64 ...mouse_x,.mouse_y;......MenuId
2a20 20 20 20 6f 70 65 6e 5f 6d 65 6e 75 3b 00 00 00 18 20 20 69 6e 74 20 20 20 20 20 20 68 6f 76 65 ...open_menu;......int......hove
2a40 72 65 64 5f 69 74 65 6d 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 61 62 6f 75 red_item;......struct.popup.abou
2a60 74 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 75 70 64 61 t;....};.......'static.void.upda
2a80 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 76 6f 69 64 29 20 7b 00 00 00 35 20 20 46 54 5f te_font_metrics(void).{...5..FT_
2aa0 53 65 74 5f 43 68 61 72 5f 53 69 7a 65 28 66 74 5f 66 61 63 65 2c 20 30 2c 20 66 6f 6e 74 5f 70 Set_Char_Size(ft_face,.0,.font_p
2ac0 74 20 2a 20 36 34 2c 20 39 36 2c 20 39 36 29 3b 00 00 00 33 20 20 46 54 5f 4c 6f 61 64 5f 43 68 t.*.64,.96,.96);...3..FT_Load_Ch
2ae0 61 72 28 66 74 5f 66 61 63 65 2c 20 27 30 27 2c 20 46 54 5f 4c 4f 41 44 5f 41 44 56 41 4e 43 45 ar(ft_face,.'0',.FT_LOAD_ADVANCE
2b00 5f 4f 4e 4c 59 29 3b 00 00 00 3a 20 20 63 65 6c 6c 5f 77 20 20 20 3d 20 28 69 6e 74 29 28 28 66 _ONLY);...:..cell_w...=.(int)((f
2b20 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 2d 3e 61 64 76 61 6e 63 65 2e 78 20 2b 20 33 32 29 20 3e t_face->glyph->advance.x.+.32).>
2b40 3e 20 36 29 3b 00 00 00 39 20 20 61 73 63 65 6e 64 65 72 20 3d 20 28 69 6e 74 29 28 66 74 5f 66 >.6);...9..ascender.=.(int)(ft_f
2b60 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 61 73 63 65 6e 64 65 72 20 3e 3e 20 36 ace->size->metrics.ascender.>>.6
2b80 29 3b 00 00 00 42 20 20 69 6e 74 20 64 65 73 63 20 3d 20 28 69 6e 74 29 28 28 2d 66 74 5f 66 61 );...B..int.desc.=.(int)((-ft_fa
2ba0 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 64 65 73 63 65 6e 64 65 72 20 2b 20 36 33 ce->size->metrics.descender.+.63
2bc0 29 20 3e 3e 20 36 29 3b 00 00 00 1d 20 20 63 65 6c 6c 5f 68 20 20 20 3d 20 61 73 63 65 6e 64 65 ).>>.6);......cell_h...=.ascende
2be0 72 20 2b 20 64 65 73 63 3b 00 00 00 1d 20 20 69 66 20 28 63 65 6c 6c 5f 77 20 3c 20 31 29 20 63 r.+.desc;......if.(cell_w.<.1).c
2c00 65 6c 6c 5f 77 20 3d 20 31 3b 00 00 00 1d 20 20 69 66 20 28 63 65 6c 6c 5f 68 20 3c 20 31 29 20 ell_w.=.1;......if.(cell_h.<.1).
2c20 63 65 6c 6c 5f 68 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 62 cell_h.=.1;....}........static.b
2c40 6f 6f 6c 20 6c 6f 61 64 5f 66 6f 6e 74 28 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 49 6e 69 ool.load_font(void).{......FcIni
2c60 74 28 29 3b 00 00 00 35 20 20 46 63 50 61 74 74 65 72 6e 20 2a 70 61 74 20 3d 20 46 63 4e 61 6d t();...5..FcPattern.*pat.=.FcNam
2c80 65 50 61 72 73 65 28 28 46 63 43 68 61 72 38 20 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 eParse((FcChar8.*)FONT_NAME);...
2ca0 30 20 20 46 63 43 6f 6e 66 69 67 53 75 62 73 74 69 74 75 74 65 28 4e 55 4c 4c 2c 20 70 61 74 2c 0..FcConfigSubstitute(NULL,.pat,
2cc0 20 46 63 4d 61 74 63 68 50 61 74 74 65 72 6e 29 3b 00 00 00 1b 20 20 46 63 44 65 66 61 75 6c 74 .FcMatchPattern);......FcDefault
2ce0 53 75 62 73 74 69 74 75 74 65 28 70 61 74 29 3b 00 00 00 0f 20 20 46 63 52 65 73 75 6c 74 20 72 Substitute(pat);......FcResult.r
2d00 65 73 3b 00 00 00 32 20 20 46 63 50 61 74 74 65 72 6e 20 2a 6d 61 74 63 68 20 3d 20 46 63 46 6f es;...2..FcPattern.*match.=.FcFo
2d20 6e 74 4d 61 74 63 68 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 26 72 65 73 29 3b 00 00 00 18 20 20 46 ntMatch(NULL,.pat,.&res);......F
2d40 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 70 61 74 29 3b 00 00 00 1b 20 20 69 66 20 28 21 cPatternDestroy(pat);......if.(!
2d60 6d 61 74 63 68 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 17 20 20 46 63 43 68 61 72 match).return.false;......FcChar
2d80 38 20 2a 70 61 74 68 20 3d 20 4e 55 4c 4c 3b 00 00 00 6f 20 20 69 66 20 28 46 63 50 61 74 74 65 8.*path.=.NULL;...o..if.(FcPatte
2da0 72 6e 47 65 74 53 74 72 69 6e 67 28 6d 61 74 63 68 2c 20 46 43 5f 46 49 4c 45 2c 20 30 2c 20 26 rnGetString(match,.FC_FILE,.0,.&
2dc0 70 61 74 68 29 20 21 3d 20 46 63 52 65 73 75 6c 74 4d 61 74 63 68 29 20 7b 20 46 63 50 61 74 74 path).!=.FcResultMatch).{.FcPatt
2de0 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ernDestroy(match);.return.false;
2e00 20 7d 00 00 00 4b 20 20 69 66 20 28 46 54 5f 49 6e 69 74 5f 46 72 65 65 54 79 70 65 28 26 66 74 .}...K..if.(FT_Init_FreeType(&ft
2e20 5f 6c 69 62 29 29 20 7b 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 _lib)).{.FcPatternDestroy(match)
2e40 3b 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 7d 00 00 00 66 20 20 69 66 20 28 46 54 5f 4e 65 ;.return.false;.}...f..if.(FT_Ne
2e60 77 5f 46 61 63 65 28 66 74 5f 6c 69 62 2c 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 29 70 61 74 w_Face(ft_lib,.(const.char.*)pat
2e80 68 2c 20 30 2c 20 26 66 74 5f 66 61 63 65 29 29 20 7b 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 h,.0,.&ft_face)).{.FcPatternDest
2ea0 72 6f 79 28 6d 61 74 63 68 29 3b 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 7d 00 00 00 1a 20 roy(match);.return.false;.}.....
2ec0 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 20 20 75 .FcPatternDestroy(match);......u
2ee0 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 74 75 72 pdate_font_metrics();......retur
2f00 6e 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 n.true;....}.......Fstatic.void.
2f20 70 73 65 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 pset(void.*px,.int.pw,.int.ph,.i
2f40 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2b 20 20 nt.x,.int.y,.uint32_t.c).{...+..
2f60 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 70 77 20 26 if.(x.>=.0.&&.y.>=.0.&&.x.<.pw.&
2f80 26 20 79 20 3c 20 70 68 29 00 00 00 25 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 &.y.<.ph)...%....((uint32_t.*)px
2fa0 29 5b 79 20 2a 20 70 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 55 73 )[y.*.pw.+.x].=.c;....}.......Us
2fc0 74 61 74 69 63 20 76 6f 69 64 20 66 72 65 63 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 tatic.void.frect(void.*px,.int.p
2fe0 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 w,.int.ph,.int.x,.int.y,.int.w,.
3000 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 20 20 20 66 6f 72 20 28 69 int.h,.uint32_t.c).{......for.(i
3020 6e 74 20 64 79 20 3d 20 30 3b 20 64 79 20 3c 20 68 3b 20 64 79 2b 2b 29 00 00 00 22 20 20 20 20 nt.dy.=.0;.dy.<.h;.dy++)..."....
3040 66 6f 72 20 28 69 6e 74 20 64 78 20 3d 20 30 3b 20 64 78 20 3c 20 77 3b 20 64 78 2b 2b 29 00 00 for.(int.dx.=.0;.dx.<.w;.dx++)..
3060 00 26 20 20 20 20 20 20 70 73 65 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2b 64 78 2c 20 79 .&......pset(px,.pw,.ph,.x+dx,.y
3080 2b 64 79 2c 20 63 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 52 73 74 61 74 69 63 20 76 6f 69 64 +dy,.c);....}.......Rstatic.void
30a0 20 62 70 69 78 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 .bpix(void.*px,.int.pw,.int.ph,.
30c0 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 66 67 2c 20 75 69 6e 74 38 int.x,.int.y,.uint32_t.fg,.uint8
30e0 5f 74 20 61 29 20 7b 00 00 00 33 20 20 69 66 20 28 78 20 3c 20 30 20 7c 7c 20 79 20 3c 20 30 20 _t.a).{...3..if.(x.<.0.||.y.<.0.
3100 7c 7c 20 78 20 3e 3d 20 70 77 20 7c 7c 20 79 20 3e 3d 20 70 68 29 20 72 65 74 75 72 6e 3b 00 00 ||.x.>=.pw.||.y.>=.ph).return;..
3120 00 30 20 20 75 69 6e 74 33 32 5f 74 20 2a 64 73 74 20 3d 20 26 28 28 75 69 6e 74 33 32 5f 74 20 .0..uint32_t.*dst.=.&((uint32_t.
3140 2a 29 70 78 29 5b 79 20 2a 20 70 77 20 2b 20 78 5d 3b 00 00 00 15 20 20 75 69 6e 74 33 32 5f 74 *)px)[y.*.pw.+.x];......uint32_t
3160 20 62 67 20 3d 20 2a 64 73 74 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 72 20 3d 20 28 28 .bg.=.*dst;...?..uint32_t.r.=.((
3180 66 67 3e 3e 31 36 26 30 78 46 46 29 2a 61 20 2b 20 28 62 67 3e 3e 31 36 26 30 78 46 46 29 2a 28 fg>>16&0xFF)*a.+.(bg>>16&0xFF)*(
31a0 32 35 35 2d 61 29 29 20 2f 20 32 35 35 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 67 20 3d 255-a))./.255;...?..uint32_t.g.=
31c0 20 28 28 66 67 3e 3e 20 38 26 30 78 46 46 29 2a 61 20 2b 20 28 62 67 3e 3e 20 38 26 30 78 46 46 .((fg>>.8&0xFF)*a.+.(bg>>.8&0xFF
31e0 29 2a 28 32 35 35 2d 61 29 29 20 2f 20 32 35 35 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 )*(255-a))./.255;...?..uint32_t.
3200 62 20 3d 20 28 28 66 67 20 20 20 20 26 30 78 46 46 29 2a 61 20 2b 20 28 62 67 20 20 20 20 26 30 b.=.((fg....&0xFF)*a.+.(bg....&0
3220 78 46 46 29 2a 28 32 35 35 2d 61 29 29 20 2f 20 32 35 35 3b 00 00 00 2b 20 20 2a 64 73 74 20 3d xFF)*(255-a))./.255;...+..*dst.=
3240 20 30 78 46 46 30 30 30 30 30 30 20 7c 20 28 72 3c 3c 31 36 29 20 7c 20 28 67 3c 3c 38 29 20 7c .0xFF000000.|.(r<<16).|.(g<<8).|
3260 20 62 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5b 73 74 61 74 69 63 20 76 6f 69 64 20 64 67 6c 79 .b;....}.......[static.void.dgly
3280 70 68 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 ph(void.*px,.int.pw,.int.ph,.int
32a0 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 70 2c 20 75 69 6e 74 33 32 .cx,.int.cy,.uint32_t.cp,.uint32
32c0 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2c 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 _t.color).{...,..FT_Load_Char(ft
32e0 5f 66 61 63 65 2c 20 63 70 2c 20 46 54 5f 4c 4f 41 44 5f 52 45 4e 44 45 52 29 3b 00 00 00 25 20 _face,.cp,.FT_LOAD_RENDER);...%.
3300 20 46 54 5f 47 6c 79 70 68 53 6c 6f 74 20 73 6c 6f 74 20 3d 20 66 74 5f 66 61 63 65 2d 3e 67 6c .FT_GlyphSlot.slot.=.ft_face->gl
3320 79 70 68 3b 00 00 00 20 20 20 46 54 5f 42 69 74 6d 61 70 20 2a 62 6d 20 3d 20 26 73 6c 6f 74 2d yph;......FT_Bitmap.*bm.=.&slot-
3340 3e 62 69 74 6d 61 70 3b 00 00 00 1d 20 20 69 6e 74 20 6f 78 20 3d 20 73 6c 6f 74 2d 3e 62 69 74 >bitmap;......int.ox.=.slot->bit
3360 6d 61 70 5f 6c 65 66 74 3b 00 00 00 2c 20 20 69 6e 74 20 6f 79 20 3d 20 63 79 20 2b 20 61 73 63 map_left;...,..int.oy.=.cy.+.asc
3380 65 6e 64 65 72 20 2d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 74 6f 70 3b 00 00 00 2f 20 20 66 ender.-.slot->bitmap_top;.../..f
33a0 6f 72 20 28 69 6e 74 20 72 6f 77 20 3d 20 30 3b 20 72 6f 77 20 3c 20 28 69 6e 74 29 62 6d 2d 3e or.(int.row.=.0;.row.<.(int)bm->
33c0 72 6f 77 73 3b 20 72 6f 77 2b 2b 29 00 00 00 34 20 20 20 20 66 6f 72 20 28 69 6e 74 20 63 6f 6c rows;.row++)...4....for.(int.col
33e0 20 3d 20 30 3b 20 63 6f 6c 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 77 69 64 74 68 3b 20 63 6f 6c 2b .=.0;.col.<.(int)bm->width;.col+
3400 2b 29 20 7b 00 00 00 35 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 76 20 3d 20 62 6d 2d 3e 62 +).{...5......uint8_t.av.=.bm->b
3420 75 66 66 65 72 5b 72 6f 77 20 2a 20 62 6d 2d 3e 70 69 74 63 68 20 2b 20 63 6f 6c 5d 3b 00 00 00 uffer[row.*.bm->pitch.+.col];...
3440 3d 20 20 20 20 20 20 69 66 20 28 61 76 29 20 62 70 69 78 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 =......if.(av).bpix(px,.pw,.ph,.
3460 63 78 2b 6f 78 2b 63 6f 6c 2c 20 6f 79 2b 72 6f 77 2c 20 63 6f 6c 6f 72 2c 20 61 76 29 3b 00 00 cx+ox+col,.oy+row,.color,.av);..
3480 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 59 73 74 61 74 69 63 20 76 6f 69 64 20 ......}....}.......Ystatic.void.
34a0 64 73 74 72 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 dstr(void.*px,.int.pw,.int.ph,.i
34c0 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 75 69 6e 74 nt.x,.int.y,.const.char.*s,.uint
34e0 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 66 6f 72 20 28 63 6f 6e 73 74 20 63 68 32_t.color).{.../..for.(const.ch
3500 61 72 20 2a 70 20 3d 20 73 3b 20 2a 70 3b 20 70 2b 2b 2c 20 78 20 2b 3d 20 63 65 6c 6c 5f 77 29 ar.*p.=.s;.*p;.p++,.x.+=.cell_w)
3520 00 00 00 37 20 20 20 20 64 67 6c 79 70 68 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c ...7....dglyph(px,.pw,.ph,.x,.y,
3540 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 2a 70 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 01 7d .(unsigned.char)*p,.color);....}
3560 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 69 6e 74 20 73 70 77 28 63 6f 6e 73 74 20 63 68 61 .......Astatic.int.spw(const.cha
3580 72 20 2a 73 29 20 7b 20 72 65 74 75 72 6e 20 28 69 6e 74 29 73 74 72 6c 65 6e 28 73 29 20 2a 20 r.*s).{.return.(int)strlen(s).*.
35a0 63 65 6c 6c 5f 77 3b 20 7d 00 00 00 00 00 00 00 5a 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 cell_w;.}.......Zstatic.void.*ma
35c0 6b 65 5f 73 68 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 77 2c 20 69 6e 74 ke_shm(struct.app.*a,.int.w,.int
35e0 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 2a 6f 62 75 66 2c 20 73 69 7a .h,.struct.wl_buffer.**obuf,.siz
3600 65 5f 74 20 2a 6f 73 7a 29 20 7b 00 00 00 20 20 20 73 69 7a 65 5f 74 20 73 7a 20 3d 20 28 73 69 e_t.*osz).{......size_t.sz.=.(si
3620 7a 65 5f 74 29 77 20 2a 20 68 20 2a 20 34 3b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 ze_t)w.*.h.*.4;...#..char.t[].=.
3640 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 58 58 58 58 58 58 22 3b 00 00 00 21 20 20 69 6e 74 20 "/tmp/wayland-XXXXXX";...!..int.
3660 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 42 20 fd.=.mkstemp(t);.unlink(t);...B.
3680 20 69 66 20 28 66 64 20 3c 20 30 20 7c 7c 20 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 7a 29 .if.(fd.<.0.||.ftruncate(fd,.sz)
36a0 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 73 68 6d 22 29 3b 20 65 78 69 74 28 31 29 3b 20 .<.0).{.perror("shm");.exit(1);.
36c0 7d 00 00 00 45 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 7a 2c }...E..void.*px.=.mmap(NULL,.sz,
36e0 20 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 .PROT_READ|PROT_WRITE,.MAP_SHARE
3700 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 34 20 20 69 66 20 28 70 78 20 3d 3d 20 4d 41 50 5f 46 41 D,.fd,.0);...4..if.(px.==.MAP_FA
3720 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b ILED).{.perror("mmap");.exit(1);
3740 20 7d 00 00 00 40 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c .}...@..struct.wl_shm_pool.*pool
3760 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 .=.wl_shm_create_pool(a->shm,.fd
3780 2c 20 73 7a 29 3b 00 00 00 50 20 20 2a 6f 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f ,.sz);...P..*obuf.=.wl_shm_pool_
37a0 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 2c 20 68 2c 20 77 2a 34 create_buffer(pool,.0,.w,.h,.w*4
37c0 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 27 20 20 ,.WL_SHM_FORMAT_ARGB8888);...'..
37e0 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 20 63 6c 6f 73 65 wl_shm_pool_destroy(pool);.close
3800 28 66 64 29 3b 00 00 00 15 20 20 69 66 20 28 6f 73 7a 29 20 2a 6f 73 7a 20 3d 20 73 7a 3b 00 00 (fd);......if.(osz).*osz.=.sz;..
3820 00 0c 20 20 72 65 74 75 72 6e 20 70 78 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3a 73 74 61 74 69 ....return.px;....}.......:stati
3840 63 20 69 6e 74 20 62 61 72 5f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 20 20 7b 20 72 c.int.bar_y(struct.app.*a)...{.r
3860 65 74 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 3a 73 74 61 74 69 63 20 eturn.a->h.-.BAR_H;.}...:static.
3880 69 6e 74 20 74 65 78 74 5f 68 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 20 7b 20 72 65 74 int.text_h(struct.app.*a)..{.ret
38a0 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 00 00 00 00 19 73 74 61 74 69 urn.a->h.-.BAR_H;.}........stati
38c0 63 20 69 6e 74 20 62 74 6e 5f 78 28 69 6e 74 20 69 29 20 7b 00 00 00 0e 20 20 69 6e 74 20 78 20 c.int.btn_x(int.i).{......int.x.
38e0 3d 20 50 41 44 3b 00 00 00 27 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d =.PAD;...'..const.char.*lbls[].=
3900 20 7b 22 46 69 6c 65 22 2c 22 49 6e 66 6f 22 7d 3b 00 00 00 3c 20 20 66 6f 72 20 28 69 6e 74 20 .{"File","Info"};...<..for.(int.
3920 6a 20 3d 20 30 3b 20 6a 20 3c 20 69 3b 20 6a 2b 2b 29 20 78 20 2b 3d 20 73 70 77 28 6c 62 6c 73 j.=.0;.j.<.i;.j++).x.+=.spw(lbls
3940 5b 6a 5d 29 20 2b 20 42 54 4e 5f 50 41 44 2a 32 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 78 3b [j]).+.BTN_PAD*2;......return.x;
3960 00 00 00 01 7d 00 00 00 47 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 77 28 69 6e 74 20 69 29 ....}...Gstatic.int.btn_w(int.i)
3980 20 7b 20 72 65 74 75 72 6e 20 73 70 77 28 69 3d 3d 30 3f 22 46 69 6c 65 22 3a 22 49 6e 66 6f 22 .{.return.spw(i==0?"File":"Info"
39a0 29 20 2b 20 42 54 4e 5f 50 41 44 2a 32 3b 20 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 69 ).+.BTN_PAD*2;.}.......+static.i
39c0 6e 74 20 64 69 68 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 63 65 6c 6c 5f 68 20 2b 20 38 nt.dih(void).{.return.cell_h.+.8
39e0 3b 20 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 74 6f 74 61 6c ;.}.......#static.int.drop_total
3a00 5f 68 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d _h(MenuId.m).{...+..int.n.=.(m==
3a20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 MENU_FILE).?.N_FILE.:.N_INFO;...
3a40 43 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d C..const.MenuItem.*items.=.(m==M
3a60 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 ENU_FILE).?.file_items.:.info_it
3a80 65 6d 73 3b 00 00 00 18 20 20 69 6e 74 20 68 20 3d 20 6e 20 2a 20 64 69 68 28 29 20 2b 20 34 3b ems;......int.h.=.n.*.dih().+.4;
3aa0 00 00 00 3d 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b ...=..for.(int.i.=.0;.i.<.n;.i++
3ac0 29 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 68 20 2b 3d 20 34 ).if.(items[i].sep_after).h.+=.4
3ae0 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 ;......return.h;....}........sta
3b00 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 77 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 10 20 20 tic.int.drop_w(MenuId.m).{......
3b20 69 6e 74 20 6d 61 78 77 20 3d 20 38 30 3b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d int.maxw.=.80;...+..int.n.=.(m==
3b40 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 MENU_FILE).?.N_FILE.:.N_INFO;...
3b60 43 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d C..const.MenuItem.*items.=.(m==M
3b80 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 ENU_FILE).?.file_items.:.info_it
3ba0 65 6d 73 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b ems;......for.(int.i.=.0;.i.<.n;
3bc0 20 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 69 6e 74 20 77 20 3d 20 73 70 77 28 69 74 65 6d 73 .i++).{...,....int.w.=.spw(items
3be0 5b 69 5d 2e 6c 61 62 65 6c 29 20 2b 20 42 54 4e 5f 50 41 44 2a 32 3b 00 00 00 1b 20 20 20 20 69 [i].label).+.BTN_PAD*2;........i
3c00 66 20 28 77 20 3e 20 6d 61 78 77 29 20 6d 61 78 77 20 3d 20 77 3b 00 00 00 03 20 20 7d 00 00 00 f.(w.>.maxw).maxw.=.w;......}...
3c20 0e 20 20 72 65 74 75 72 6e 20 6d 61 78 77 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 ...return.maxw;....}.......5stat
3c40 69 63 20 69 6e 74 20 69 74 65 6d 5f 61 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 ic.int.item_at(struct.app.*a,.Me
3c60 6e 75 49 64 20 6d 2c 20 69 6e 74 20 6d 79 29 20 7b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 nuId.m,.int.my).{......int.by.=.
3c80 62 61 72 5f 79 28 61 29 3b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f bar_y(a);...+..int.n.=.(m==MENU_
3ca0 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 43 20 20 63 6f FILE).?.N_FILE.:.N_INFO;...C..co
3cc0 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 nst.MenuItem.*items.=.(m==MENU_F
3ce0 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 ILE).?.file_items.:.info_items;.
3d00 00 00 24 20 20 69 6e 74 20 69 79 20 3d 20 62 79 20 2d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 ..$..int.iy.=.by.-.drop_total_h(
3d20 6d 29 20 2b 20 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c m).+.4;......for.(int.i.=.0;.i.<
3d40 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 69 66 20 28 6d 79 20 3e 3d 20 69 79 20 26 .n;.i++).{........if.(my.>=.iy.&
3d60 26 20 6d 79 20 3c 20 69 79 20 2b 20 64 69 68 28 29 29 20 72 65 74 75 72 6e 20 69 3b 00 00 00 10 &.my.<.iy.+.dih()).return.i;....
3d80 20 20 20 20 69 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 00 24 20 20 20 20 69 66 20 28 69 74 65 6d ....iy.+=.dih();...$....if.(item
3da0 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 69 79 20 2b 3d 20 34 3b 00 00 00 03 20 20 7d 00 s[i].sep_after).iy.+=.4;......}.
3dc0 00 00 0c 20 20 72 65 74 75 72 6e 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 .....return.-1;....}.......#stat
3de0 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 ic.void.do_save(struct.app.*a);.
3e00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 .."static.void.do_new(struct.app
3e20 20 2a 61 29 3b 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 .*a);...#static.void.do_open(str
3e40 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e uct.app.*a);...&static.void.open
3e60 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 _about(struct.app.*a);..."static
3e80 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 00 .void.redraw(struct.app.*a);....
3ea0 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 ...#static.void.do_new(struct.ap
3ec0 70 20 2a 61 29 20 7b 00 00 00 1f 20 20 6d 65 6d 73 65 74 28 74 65 78 74 2c 20 30 2c 20 73 69 7a p.*a).{......memset(text,.0,.siz
3ee0 65 6f 66 20 74 65 78 74 29 3b 00 00 00 22 20 20 74 6c 65 6e 3d 30 3b 20 63 75 72 73 6f 72 3d 30 eof.text);..."..tlen=0;.cursor=0
3f00 3b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 20 20 20 66 69 6c 65 70 61 74 68 5b 30 ;.sel_anchor=-1;......filepath[0
3f20 5d 3d 27 5c 30 27 3b 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ]='\0';.dirty=false;....}.......
3f40 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 $static.void.do_save(struct.app.
3f60 2a 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 66 69 6c 65 70 61 74 68 5b 30 5d 29 20 7b 00 00 *a).{......if.(!filepath[0]).{..
3f80 00 23 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f .#....const.char.*h.=.getenv("HO
3fa0 4d 45 22 29 3b 00 00 00 47 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 ME");...G....snprintf(filepath,.
3fc0 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 sizeof.filepath,."%s/untitled.tx
3fe0 74 22 2c 20 68 3f 68 3a 22 2f 74 6d 70 22 29 3b 00 00 00 03 20 20 7d 00 00 00 3a 20 20 69 6e 74 t",.h?h:"/tmp");......}...:..int
4000 20 66 64 20 3d 20 6f 70 65 6e 28 66 69 6c 65 70 61 74 68 2c 20 4f 5f 57 52 4f 4e 4c 59 7c 4f 5f .fd.=.open(filepath,.O_WRONLY|O_
4020 43 52 45 41 54 7c 4f 5f 54 52 55 4e 43 2c 20 30 36 34 34 29 3b 00 00 00 29 20 20 69 66 20 28 66 CREAT|O_TRUNC,.0644);...)..if.(f
4040 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 73 61 76 65 22 29 3b 20 72 65 74 75 72 6e 3b d.<.0).{.perror("save");.return;
4060 20 7d 00 00 00 30 20 20 77 72 69 74 65 28 66 64 2c 20 74 65 78 74 2c 20 74 6c 65 6e 29 3b 20 63 .}...0..write(fd,.text,.tlen);.c
4080 6c 6f 73 65 28 66 64 29 3b 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 lose(fd);.dirty=false;....}.....
40a0 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 ..$static.void.do_open(struct.ap
40c0 70 20 2a 61 29 20 7b 00 00 00 21 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 p.*a).{...!..const.char.*h.=.get
40e0 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 12 20 20 63 68 61 72 20 70 61 74 68 5b 34 30 39 36 env("HOME");......char.path[4096
4100 5d 3b 00 00 00 3d 20 20 73 6e 70 72 69 6e 74 66 28 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 70 61 ];...=..snprintf(path,.sizeof.pa
4120 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 3f 68 3a 22 2f 74 6d 70 th,."%s/untitled.txt",.h?h:"/tmp
4140 22 29 3b 00 00 00 20 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 70 61 74 68 2c 20 4f 5f 52 ");......int.fd.=.open(path,.O_R
4160 44 4f 4e 4c 59 29 3b 00 00 00 15 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 72 65 74 75 72 6e 3b DONLY);......if.(fd.<.0).return;
4180 00 00 00 34 20 20 73 73 69 7a 65 5f 74 20 6e 20 3d 20 72 65 61 64 28 66 64 2c 20 74 65 78 74 2c ...4..ssize_t.n.=.read(fd,.text,
41a0 20 4d 41 58 5f 54 45 58 54 2d 31 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 14 20 20 69 66 .MAX_TEXT-1);.close(fd);......if
41c0 20 28 6e 20 3c 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 1f 20 20 74 6c 65 6e 3d 28 69 6e 74 29 .(n.<.0).return;......tlen=(int)
41e0 6e 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 1d 20 20 63 75 72 73 6f 72 3d n;.text[tlen]='\0';......cursor=
4200 74 6c 65 6e 3b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 32 20 20 73 6e 70 72 69 6e tlen;.sel_anchor=-1;...2..snprin
4220 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 tf(filepath,.sizeof.filepath,."%
4240 73 22 2c 20 70 61 74 68 29 3b 00 00 00 0e 20 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 s",.path);......dirty=false;....
4260 7d 00 00 00 00 00 00 00 39 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 }.......9static.void.fire_item(s
4280 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 69 64 78 29 truct.app.*a,.MenuId.m,.int.idx)
42a0 20 7b 00 00 00 31 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 .{...1..a->open_menu.=.MENU_NONE
42c0 3b 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 17 20 20 69 66 20 ;.a->hovered_item.=.-1;......if.
42e0 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 68 (m.==.MENU_FILE).{........switch
4300 20 28 69 64 78 29 20 7b 00 00 00 1f 20 20 20 20 20 20 63 61 73 65 20 30 3a 20 64 6f 5f 6e 65 77 .(idx).{..........case.0:.do_new
4320 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 20 20 20 20 20 20 20 63 61 73 65 20 31 3a 20 64 6f 5f (a);.break;..........case.1:.do_
4340 6f 70 65 6e 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 20 20 20 20 20 20 20 63 61 73 65 20 32 3a open(a);.break;..........case.2:
4360 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 0f 20 20 20 20 20 20 63 61 73 .do_save(a);.break;..........cas
4380 65 20 33 3a 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 e.3:.{...'........const.char.*h.
43a0 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 4b 20 20 20 20 20 20 20 20 73 6e 70 =.getenv("HOME");...K........snp
43c0 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c rintf(filepath,.sizeof.filepath,
43e0 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 3f 68 3a 22 2f 74 6d 70 22 29 3b ."%s/untitled.txt",.h?h:"/tmp");
4400 00 00 00 1a 20 20 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 ............do_save(a);.break;..
4420 00 07 20 20 20 20 20 20 7d 00 00 00 22 20 20 20 20 20 20 63 61 73 65 20 34 3a 20 64 6f 5f 73 61 ........}..."......case.4:.do_sa
4440 76 65 28 61 29 3b 20 65 78 69 74 28 30 29 3b 00 00 00 16 20 20 20 20 20 20 63 61 73 65 20 35 3a ve(a);.exit(0);..........case.5:
4460 20 65 78 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1e 20 20 7d 20 65 6c 73 65 20 69 .exit(0);........}......}.else.i
4480 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 49 4e 46 4f 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 f.(m.==.MENU_INFO).{........if.(
44a0 69 64 78 20 3d 3d 20 30 29 20 6f 70 65 6e 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 03 20 20 7d 00 idx.==.0).open_about(a);......}.
44c0 00 00 0c 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 .....redraw(a);....}.......%stat
44e0 69 63 20 76 6f 69 64 20 64 72 61 77 5f 62 61 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 ic.void.draw_bar(struct.app.*a).
4500 7b 00 00 00 2d 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 {...-..void.*px.=.a->pixels;.int
4520 20 70 77 3d 61 2d 3e 77 2c 20 70 68 3d 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d .pw=a->w,.ph=a->h;......int.by.=
4540 20 62 61 72 5f 79 28 61 29 3b 00 00 00 2a 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 .bar_y(a);...*..frect(px,pw,ph,.
4560 30 2c 62 79 2c 20 70 77 2c 42 41 52 5f 48 2c 20 42 41 52 5f 42 47 29 3b 00 00 00 2d 20 20 66 72 0,by,.pw,BAR_H,.BAR_BG);...-..fr
4580 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c 62 79 2c 20 70 77 2c 31 2c 20 20 20 20 20 53 45 ect(px,pw,ph,.0,by,.pw,1,.....SE
45a0 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 27 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b P_COLOR);...'..const.char.*lbls[
45c0 5d 20 3d 20 7b 22 46 69 6c 65 22 2c 22 49 6e 66 6f 22 7d 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 ].=.{"File","Info"};......for.(i
45e0 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 21 20 20 20 20 69 nt.i.=.0;.i.<.2;.i++).{...!....i
4600 6e 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 20 62 77 3d 62 74 6e 5f 77 28 69 29 3b 00 00 00 44 nt.bx=btn_x(i),.bw=btn_w(i);...D
4620 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 61 2d 3e 6d 6f 75 73 65 5f 79 3e 3d 62 79 20 26 26 ....bool.hov.=.a->mouse_y>=by.&&
4640 20 61 2d 3e 6d 6f 75 73 65 5f 78 3e 3d 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 3c 62 78 .a->mouse_x>=bx.&&.a->mouse_x<bx
4660 2b 62 77 3b 00 00 00 27 20 20 20 20 69 66 20 28 68 6f 76 20 7c 7c 20 61 2d 3e 6f 70 65 6e 5f 6d +bw;...'....if.(hov.||.a->open_m
4680 65 6e 75 3d 3d 28 4d 65 6e 75 49 64 29 69 29 00 00 00 34 20 20 20 20 20 20 66 72 65 63 74 28 70 enu==(MenuId)i)...4......frect(p
46a0 78 2c 70 77 2c 70 68 2c 20 62 78 2c 62 79 2b 31 2c 20 62 77 2c 42 41 52 5f 48 2d 31 2c 20 42 54 x,pw,ph,.bx,by+1,.bw,BAR_H-1,.BT
46c0 4e 5f 48 4f 56 29 3b 00 00 00 45 20 20 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 62 78 N_HOV);...E....dstr(px,pw,ph,.bx
46e0 2b 42 54 4e 5f 50 41 44 2c 20 62 79 2b 28 42 41 52 5f 48 2d 63 65 6c 6c 5f 68 29 2f 32 2c 20 6c +BTN_PAD,.by+(BAR_H-cell_h)/2,.l
4700 62 6c 73 5b 69 5d 2c 20 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 bls[i],.BAR_FG);......}....}....
4720 00 00 00 30 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 72 6f 70 28 73 74 72 75 63 74 ...0static.void.draw_drop(struct
4740 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 2d 20 20 76 6f 69 64 20 2a .app.*a,.MenuId.m).{...-..void.*
4760 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 20 70 68 3d px.=.a->pixels;.int.pw=a->w,.ph=
4780 61 2d 3e 68 3b 00 00 00 34 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 2c 20 64 77 3d 64 a->h;...4..int.by=bar_y(a),.dw=d
47a0 72 6f 70 5f 77 28 6d 29 2c 20 64 68 3d 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 3b 00 00 00 rop_w(m),.dh=drop_total_h(m);...
47c0 21 20 20 69 6e 74 20 64 78 3d 62 74 6e 5f 78 28 28 69 6e 74 29 6d 29 2c 20 64 79 3d 62 79 2d 64 !..int.dx=btn_x((int)m),.dy=by-d
47e0 68 3b 00 00 00 25 20 20 69 6e 74 20 6e 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 4e 5f 46 h;...%..int.n=(m==MENU_FILE)?N_F
4800 49 4c 45 3a 4e 5f 49 4e 46 4f 3b 00 00 00 3d 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 ILE:N_INFO;...=..const.MenuItem.
4820 2a 69 74 65 6d 73 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 66 69 6c 65 5f 69 74 65 6d 73 *items=(m==MENU_FILE)?file_items
4840 3a 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 00 00 00 00 29 20 20 66 72 65 63 74 28 70 78 2c 70 :info_items;.......)..frect(px,p
4860 77 2c 70 68 2c 20 64 78 2c 64 79 2c 20 64 77 2c 64 68 2c 20 44 52 4f 50 5f 42 47 29 3b 00 00 00 w,ph,.dx,dy,.dw,dh,.DROP_BG);...
4880 2a 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2c 64 79 2c 20 64 77 2c 31 2c 20 *..frect(px,pw,ph,.dx,dy,.dw,1,.
48a0 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2a 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c SEP_COLOR);...*..frect(px,pw,ph,
48c0 20 64 78 2c 64 79 2c 20 31 2c 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2f 20 20 66 .dx,dy,.1,dh,.SEP_COLOR);.../..f
48e0 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b 64 77 2d 31 2c 64 79 2c 20 31 2c 64 68 2c rect(px,pw,ph,.dx+dw-1,dy,.1,dh,
4900 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2f 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 .SEP_COLOR);.../..frect(px,pw,ph
4920 2c 20 64 78 2c 64 79 2b 64 68 2d 31 2c 20 64 77 2c 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 ,.dx,dy+dh-1,.dw,1,.SEP_COLOR);.
4940 00 00 00 00 00 00 10 20 20 69 6e 74 20 69 79 20 3d 20 64 79 2b 34 3b 00 00 00 1f 20 20 66 6f 72 .........int.iy.=.dy+4;......for
4960 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 24 20 20 .(int.i.=.0;.i.<.n;.i++).{...$..
4980 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 28 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 3d 69 ..bool.hov.=.(a->hovered_item==i
49a0 29 3b 00 00 00 3c 20 20 20 20 69 66 20 28 68 6f 76 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 );...<....if.(hov).frect(px,pw,p
49c0 68 2c 20 64 78 2b 31 2c 69 79 2c 20 64 77 2d 32 2c 64 69 68 28 29 2c 20 44 52 4f 50 5f 48 4f 56 h,.dx+1,iy,.dw-2,dih(),.DROP_HOV
49e0 29 3b 00 00 00 71 20 20 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b 42 54 4e 5f );...q....dstr(px,pw,ph,.dx+BTN_
4a00 50 41 44 2c 20 69 79 2b 28 64 69 68 28 29 2d 63 65 6c 6c 5f 68 29 2f 32 2c 20 69 74 65 6d 73 5b PAD,.iy+(dih()-cell_h)/2,.items[
4a20 69 5d 2e 6c 61 62 65 6c 2c 20 68 6f 76 3f 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 48 4f 56 i].label,.hov?(uint32_t)DROP_HOV
4a40 5f 46 47 3a 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 46 47 29 3b 00 00 00 10 20 20 20 20 69 _FG:(uint32_t)DROP_FG);........i
4a60 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 00 51 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e y.+=.dih();...Q....if.(items[i].
4a80 73 65 70 5f 61 66 74 65 72 29 20 7b 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b sep_after).{.frect(px,pw,ph,.dx+
4aa0 34 2c 69 79 2c 64 77 2d 38 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 20 69 79 2b 3d 34 3b 20 7d 4,iy,dw-8,1,SEP_COLOR);.iy+=4;.}
4ac0 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 ......}....}.......#static.void.
4ae0 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2b 20 20 76 6f 69 redraw(struct.app.*a).{...+..voi
4b00 64 20 2a 70 78 3d 61 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 20 70 68 d.*px=a->pixels;.int.pw=a->w,.ph
4b20 3d 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 20 74 61 68 3d 74 65 78 74 5f 68 28 61 29 3b 00 00 =a->h;......int.tah=text_h(a);..
4b40 00 3a 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 20 69 3c 70 77 2a 70 68 3b 20 69 2b 2b 29 20 .:..for.(int.i=0;.i<pw*ph;.i++).
4b60 28 28 75 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 00 ((uint32_t*)px)[i]=BG_COLOR;....
4b80 00 00 00 1b 20 20 69 6e 74 20 73 65 6c 5f 6c 6f 3d 2d 31 2c 20 73 65 6c 5f 68 69 3d 2d 31 3b 00 ......int.sel_lo=-1,.sel_hi=-1;.
4ba0 00 00 16 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 20 7b 00 00 00 35 20 20 20 .....if.(sel_anchor>=0).{...5...
4bc0 20 73 65 6c 5f 6c 6f 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 73 65 .sel_lo.=.sel_anchor<cursor.?.se
4be0 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b 00 00 00 39 20 20 20 20 73 65 6c 5f 68 69 l_anchor.:.cursor;...9....sel_hi
4c00 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 20 20 .=.sel_anchor<cursor.?.cursor...
4c20 20 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 69 6e 74 20 ..:.sel_anchor;......}......int.
4c40 63 6f 6c 3d 30 2c 20 72 6f 77 3d 30 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b col=0,.row=0;......for.(int.i=0;
4c60 20 69 3c 3d 74 6c 65 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 2b 20 20 20 20 69 6e 74 20 78 3d 50 41 .i<=tlen;.i++).{...+....int.x=PA
4c80 44 2b 63 6f 6c 2a 63 65 6c 6c 5f 77 2c 20 79 3d 50 41 44 2b 72 6f 77 2a 63 65 6c 6c 5f 68 3b 00 D+col*cell_w,.y=PAD+row*cell_h;.
4ca0 00 00 1e 20 20 20 20 69 66 20 28 79 2b 63 65 6c 6c 5f 68 20 3e 20 74 61 68 29 20 62 72 65 61 6b .......if.(y+cell_h.>.tah).break
4cc0 3b 00 00 00 4e 20 20 20 20 62 6f 6f 6c 20 69 6e 73 20 3d 20 73 65 6c 5f 6c 6f 3e 3d 30 20 26 26 ;...N....bool.ins.=.sel_lo>=0.&&
4ce0 20 69 3e 3d 73 65 6c 5f 6c 6f 20 26 26 20 69 3c 73 65 6c 5f 68 69 20 26 26 20 28 69 3e 3d 74 6c .i>=sel_lo.&&.i<sel_hi.&&.(i>=tl
4d00 65 6e 7c 7c 74 65 78 74 5b 69 5d 21 3d 27 5c 6e 27 29 3b 00 00 00 3b 20 20 20 20 69 66 20 28 69 en||text[i]!='\n');...;....if.(i
4d20 6e 73 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 78 2c 79 2c 63 65 6c 6c 5f 77 2c 63 ns).frect(px,pw,ph,.x,y,cell_w,c
4d40 65 6c 6c 5f 68 2c 20 53 45 4c 5f 43 4f 4c 4f 52 29 3b 00 00 00 3c 20 20 20 20 69 66 20 28 69 3d ell_h,.SEL_COLOR);...<....if.(i=
4d60 3d 63 75 72 73 6f 72 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 78 2c 79 2c 32 2c 63 =cursor).frect(px,pw,ph,.x,y,2,c
4d80 65 6c 6c 5f 68 2c 20 43 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 00 11 20 20 20 20 69 66 20 28 69 3c ell_h,.CUR_COLOR);........if.(i<
4da0 74 6c 65 6e 29 20 7b 00 00 00 2a 20 20 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 3d 3d 27 5c tlen).{...*......if.(text[i]=='\
4dc0 6e 27 29 20 7b 20 63 6f 6c 3d 30 3b 20 72 6f 77 2b 2b 3b 20 7d 00 00 00 0c 20 20 20 20 20 20 65 n').{.col=0;.row++;.}..........e
4de0 6c 73 65 20 7b 00 00 00 49 20 20 20 20 20 20 20 20 69 66 20 28 78 2b 63 65 6c 6c 5f 77 20 3e 20 lse.{...I........if.(x+cell_w.>.
4e00 70 77 2d 50 41 44 29 20 7b 20 63 6f 6c 3d 30 3b 20 72 6f 77 2b 2b 3b 20 78 3d 50 41 44 3b 20 79 pw-PAD).{.col=0;.row++;.x=PAD;.y
4e20 3d 50 41 44 2b 72 6f 77 2a 63 65 6c 6c 5f 68 3b 20 7d 00 00 00 72 20 20 20 20 20 20 20 20 69 66 =PAD+row*cell_h;.}...r........if
4e40 20 28 79 2b 63 65 6c 6c 5f 68 3c 3d 74 61 68 29 20 64 67 6c 79 70 68 28 70 78 2c 70 77 2c 70 68 .(y+cell_h<=tah).dglyph(px,pw,ph
4e60 2c 20 78 2c 79 2c 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 74 65 78 74 5b 69 5d 2c 20 69 ,.x,y,.(unsigned.char)text[i],.i
4e80 6e 73 3f 28 75 69 6e 74 33 32 5f 74 29 53 45 4c 5f 46 47 3a 28 75 69 6e 74 33 32 5f 74 29 46 47 ns?(uint32_t)SEL_FG:(uint32_t)FG
4ea0 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 07 20 20 _COLOR);............col++;......
4ec0 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0e 20 20 64 ....}........}......}..........d
4ee0 72 61 77 5f 62 61 72 28 61 29 3b 00 00 00 3c 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e raw_bar(a);...<..if.(a->open_men
4f00 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 64 72 61 77 5f 64 72 6f 70 28 61 2c 20 61 2d 3e u.!=.MENU_NONE).draw_drop(a,.a->
4f20 6f 70 65 6e 5f 6d 65 6e 75 29 3b 00 00 00 00 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f open_menu);.......-..wl_surface_
4f40 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 30 2c 70 77 2c 70 68 29 3b damage_buffer(a->ws,.0,0,pw,ph);
4f60 00 00 00 28 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 ...(..wl_surface_attach(a->ws,.a
4f80 2d 3e 62 75 66 2c 20 30 2c 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d ->buf,.0,0);......wl_surface_com
4fa0 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 mit(a->ws);....}.......)static.v
4fc0 6f 69 64 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 oid.redraw_about(struct.app.*a).
4fe0 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f {......struct.popup.*p.=.&a->abo
5000 75 74 3b 00 00 00 25 20 20 69 66 20 28 21 70 2d 3e 6f 70 65 6e 20 7c 7c 20 21 70 2d 3e 70 69 78 ut;...%..if.(!p->open.||.!p->pix
5020 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 2b 20 20 76 6f 69 64 20 2a 70 78 3d 70 2d 3e 70 69 els).return;...+..void.*px=p->pi
5040 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 70 2d 3e 77 2c 20 70 68 3d 70 2d 3e 68 3b 00 00 00 3a 20 xels;.int.pw=p->w,.ph=p->h;...:.
5060 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 20 69 3c 70 77 2a 70 68 3b 20 69 2b 2b 29 20 28 28 75 .for.(int.i=0;.i<pw*ph;.i++).((u
5080 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 26 20 20 66 int32_t*)px)[i]=BG_COLOR;...&..f
50a0 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c 30 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f rect(px,pw,ph,.0,0,pw,1,SEP_COLO
50c0 52 29 3b 00 00 00 29 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c 70 68 2d 31 2c R);...)..frect(px,pw,ph,.0,ph-1,
50e0 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 26 20 20 66 72 65 63 74 28 70 78 2c 70 pw,1,SEP_COLOR);...&..frect(px,p
5100 77 2c 70 68 2c 20 30 2c 30 2c 31 2c 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 29 20 20 w,ph,.0,0,1,ph,SEP_COLOR);...)..
5120 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 70 77 2d 31 2c 30 2c 31 2c 70 68 2c 53 45 50 5f frect(px,pw,ph,.pw-1,0,1,ph,SEP_
5140 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 10 20 20 69 6e 74 20 79 20 3d 20 50 41 44 2a 32 3b 00 COLOR);..........int.y.=.PAD*2;.
5160 00 00 5a 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 22 77 ..Z..dstr(px,pw,ph,.PAD*2,.y,."w
5180 6c 65 64 20 20 2d 20 20 77 61 79 6c 61 6e 64 20 74 65 78 74 20 65 64 69 74 6f 72 22 2c 20 46 47 led..-..wayland.text.editor",.FG
51a0 5f 43 4f 4c 4f 52 29 3b 20 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 50 41 44 3b 00 00 00 _COLOR);...y.+=.cell_h.+.PAD;...
51c0 51 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 70 77 2d Q..frect(px,pw,ph,.PAD*2,.y,.pw-
51e0 50 41 44 2a 34 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 20 20 20 20 20 20 20 20 20 20 20 PAD*4,.1,.SEP_COLOR);...........
5200 20 20 20 20 20 20 20 20 20 79 20 2b 3d 20 50 41 44 3b 00 00 00 58 20 20 64 73 74 72 28 70 78 2c .........y.+=.PAD;...X..dstr(px,
5220 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 22 4c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 pw,ph,.PAD*2,.y,."Licensed.under
5240 20 47 50 4c 20 76 33 2e 30 22 2c 20 20 20 20 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 20 20 20 79 20 .GPL.v3.0",......FG_COLOR);...y.
5260 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 5b 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 +=.cell_h.+.6;...[..dstr(px,pw,p
5280 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 22 43 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 h,.PAD*2,.y,."Created.by..git.sr
52a0 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 2c 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 20 79 20 2b .ht/~coasteen/",..FG_COLOR);.y.+
52c0 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 4d 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 =.cell_h.+.6;...M..dstr(px,pw,ph
52e0 2c 20 50 41 44 2a 32 2c 20 79 2c 20 22 53 6f 75 72 63 65 3a 20 20 20 20 20 67 69 74 2e 73 72 2e ,.PAD*2,.y,."Source:.....git.sr.
5300 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 77 6c 65 64 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 ht/~coasteen/wled",.FG_COLOR);..
5320 00 00 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 .....-..wl_surface_damage_buffer
5340 28 70 2d 3e 77 73 2c 20 30 2c 30 2c 70 77 2c 70 68 29 3b 00 00 00 28 20 20 77 6c 5f 73 75 72 66 (p->ws,.0,0,pw,ph);...(..wl_surf
5360 61 63 65 5f 61 74 74 61 63 68 28 70 2d 3e 77 73 2c 20 70 2d 3e 62 75 66 2c 20 30 2c 30 29 3b 00 ace_attach(p->ws,.p->buf,.0,0);.
5380 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 .....wl_surface_commit(p->ws);..
53a0 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 73 5f ..}.......Lstatic.void.about_xs_
53c0 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 cfg(void.*d,.struct.xdg_surface.
53e0 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 73 74 72 *xs,.uint32_t.serial).{...1..str
5400 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 uct.app.*a.=.d;.struct.popup.*p.
5420 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 =.&a->about;...(..xdg_surface_ac
5440 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 50 20 20 69 66 k_configure(xs,.serial);...P..if
5460 20 28 21 70 2d 3e 70 69 78 65 6c 73 29 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 .(!p->pixels).p->pixels.=.make_s
5480 68 6d 28 61 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 2c 20 26 70 2d 3e 62 75 66 2c 20 26 70 2d 3e 70 hm(a,.p->w,.p->h,.&p->buf,.&p->p
54a0 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 17 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 ixels_size);......p->configured.
54c0 3d 20 74 72 75 65 3b 00 00 00 12 20 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 =.true;......redraw_about(a);...
54e0 01 7d 00 00 00 50 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 .}...Pstatic.const.struct.xdg_su
5500 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 73 5f 6c 20 3d 20 7b 2e 63 6f rface_listener.about_xs_l.=.{.co
5520 6e 66 69 67 75 72 65 3d 61 62 6f 75 74 5f 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 67 73 74 nfigure=about_xs_cfg};.......gst
5540 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 atic.void.about_xt_cfg(void.*d,.
5560 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 struct.xdg_toplevel.*xt,.int32_t
5580 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a .w,.int32_t.h,.struct.wl_array.*
55a0 73 29 20 7b 7d 00 00 00 3e 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 6c s).{}...>static.void.about_xt_cl
55c0 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c ose(void.*d,.struct.xdg_toplevel
55e0 20 2a 78 74 29 20 7b 00 00 00 31 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 .*xt).{...1..struct.app.*a.=.d;.
5600 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 4a struct.popup.*p.=.&a->about;...J
5620 20 20 69 66 20 28 70 2d 3e 62 75 66 29 20 20 20 20 7b 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 ..if.(p->buf)....{.wl_buffer_des
5640 74 72 6f 79 28 70 2d 3e 62 75 66 29 3b 20 20 20 20 20 20 20 20 20 20 70 2d 3e 62 75 66 20 20 20 troy(p->buf);..........p->buf...
5660 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d 3e 70 69 78 65 6c 73 29 20 7b .=.NULL;.}...J..if.(p->pixels).{
5680 20 6d 75 6e 6d 61 70 28 70 2d 3e 70 69 78 65 6c 73 2c 20 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a .munmap(p->pixels,.p->pixels_siz
56a0 65 29 3b 20 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 e);..p->pixels.=.NULL;.}...J..if
56c0 20 28 70 2d 3e 78 74 29 20 20 20 20 20 7b 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 .(p->xt).....{.xdg_toplevel_dest
56e0 72 6f 79 28 70 2d 3e 78 74 29 3b 20 20 20 20 20 20 20 20 70 2d 3e 78 74 20 20 20 20 20 3d 20 4e roy(p->xt);........p->xt.....=.N
5700 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d 3e 78 73 29 20 20 20 20 20 7b 20 78 64 67 ULL;.}...J..if.(p->xs).....{.xdg
5720 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 73 29 3b 20 20 20 20 20 20 20 20 _surface_destroy(p->xs);........
5740 20 70 2d 3e 78 73 20 20 20 20 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d .p->xs.....=.NULL;.}...J..if.(p-
5760 3e 77 73 29 20 20 20 20 20 7b 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d >ws).....{.wl_surface_destroy(p-
5780 3e 77 73 29 3b 20 20 20 20 20 20 20 20 20 20 70 2d 3e 77 73 20 20 20 20 20 3d 20 4e 55 4c 4c 3b >ws);..........p->ws.....=.NULL;
57a0 20 7d 00 00 00 29 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 66 61 6c 73 65 3b 20 70 2d 3e 63 6f 6e 66 .}...)..p->open.=.false;.p->conf
57c0 69 67 75 72 65 64 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 67 73 74 61 74 69 63 20 63 igured.=.false;....}...gstatic.c
57e0 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 onst.struct.xdg_toplevel_listene
5800 72 20 61 62 6f 75 74 5f 78 74 5f 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 61 62 6f 75 74 r.about_xt_l.=.{.configure=about
5820 5f 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 7d 3b 00 _xt_cfg,.close=about_xt_close};.
5840 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 ......'static.void.open_about(st
5860 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 ruct.app.*a).{......struct.popup
5880 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 16 20 20 69 66 20 28 70 2d 3e 6f 70 65 .*p.=.&a->about;......if.(p->ope
58a0 6e 29 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 69 6e 74 20 6c 69 6e 65 73 20 3d 20 35 3b 00 00 n).return;......int.lines.=.5;..
58c0 00 1d 20 20 70 2d 3e 77 20 3d 20 32 32 20 2a 20 63 65 6c 6c 5f 77 20 2b 20 50 41 44 2a 34 3b 00 ....p->w.=.22.*.cell_w.+.PAD*4;.
58e0 00 00 2f 20 20 70 2d 3e 68 20 3d 20 6c 69 6e 65 73 20 2a 20 28 63 65 6c 6c 5f 68 20 2b 20 36 29 ../..p->h.=.lines.*.(cell_h.+.6)
5900 20 2b 20 50 41 44 2a 34 20 2b 20 63 65 6c 6c 5f 68 3b 00 00 00 1d 20 20 69 66 20 28 70 2d 3e 77 .+.PAD*4.+.cell_h;......if.(p->w
5920 20 3c 20 33 36 30 29 20 70 2d 3e 77 20 3d 20 33 36 30 3b 00 00 00 1d 20 20 69 66 20 28 70 2d 3e .<.360).p->w.=.360;......if.(p->
5940 68 20 3c 20 31 34 30 29 20 70 2d 3e 68 20 3d 20 31 34 30 3b 00 00 00 11 20 20 70 2d 3e 6f 70 65 h.<.140).p->h.=.140;......p->ope
5960 6e 20 3d 20 74 72 75 65 3b 00 00 00 30 20 20 70 2d 3e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 n.=.true;...0..p->ws.=.wl_compos
5980 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2d 3e 63 6f 6d 70 29 3b 00 00 00 itor_create_surface(a->comp);...
59a0 34 20 20 70 2d 3e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 4..p->xs.=.xdg_wm_base_get_xdg_s
59c0 75 72 66 61 63 65 28 61 2d 3e 77 6d 2c 20 70 2d 3e 77 73 29 3b 00 00 00 32 20 20 78 64 67 5f 73 urface(a->wm,.p->ws);...2..xdg_s
59e0 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 73 2c 20 26 61 62 6f 75 urface_add_listener(p->xs,.&abou
5a00 74 5f 78 73 5f 6c 2c 20 61 29 3b 00 00 00 2a 20 20 70 2d 3e 78 74 20 3d 20 78 64 67 5f 73 75 72 t_xs_l,.a);...*..p->xt.=.xdg_sur
5a20 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 70 2d 3e 78 73 29 3b 00 00 00 33 20 20 78 face_get_toplevel(p->xs);...3..x
5a40 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 74 2c 20 dg_toplevel_add_listener(p->xt,.
5a60 26 61 62 6f 75 74 5f 78 74 5f 6c 2c 20 61 29 3b 00 00 00 2e 20 20 78 64 67 5f 74 6f 70 6c 65 76 &about_xt_l,.a);......xdg_toplev
5a80 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 70 2d 3e 78 74 2c 20 22 41 62 6f 75 74 20 77 6c 65 64 22 el_set_title(p->xt,."About.wled"
5aa0 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a );.../..xdg_toplevel_set_min_siz
5ac0 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 e(p->xt,.p->w,.p->h);.../..xdg_t
5ae0 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 oplevel_set_max_size(p->xt,.p->w
5b00 2c 20 70 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 ,.p->h);......wl_surface_commit(
5b20 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 69 6e 74 20 73 p->ws);....}.......Nstatic.int.s
5b40 65 6c 5f 73 74 61 72 74 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 el_start(void).{.return.sel_anch
5b60 6f 72 3c 63 75 72 73 6f 72 20 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b or<cursor.?.sel_anchor.:.cursor;
5b80 20 7d 00 00 00 60 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 76 6f 69 64 29 20 20 .}...`static.int.sel_len(void)..
5ba0 20 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 63 75 .{.return.sel_anchor<cursor.?.cu
5bc0 72 73 6f 72 2d 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 2d 63 75 72 rsor-sel_anchor.:.sel_anchor-cur
5be0 73 6f 72 3b 20 7d 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 6c 65 74 65 sor;.}........static.void.delete
5c00 5f 73 65 6c 28 76 6f 69 64 29 20 7b 00 00 00 1b 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 _sel(void).{......if.(sel_anchor
5c20 3c 30 29 20 72 65 74 75 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 61 72 <0).return;...$..int.lo=sel_star
5c40 74 28 29 2c 20 6c 65 6e 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 2d 20 20 6d 65 6d 6d 6f 76 65 t(),.len=sel_len();...-..memmove
5c60 28 74 65 78 74 2b 6c 6f 2c 20 74 65 78 74 2b 6c 6f 2b 6c 65 6e 2c 20 74 6c 65 6e 2d 6c 6f 2d 6c (text+lo,.text+lo+len,.tlen-lo-l
5c80 65 6e 29 3b 00 00 00 37 20 20 74 6c 65 6e 2d 3d 6c 65 6e 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d en);...7..tlen-=len;.text[tlen]=
5ca0 27 5c 30 27 3b 20 63 75 72 73 6f 72 3d 6c 6f 3b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 '\0';.cursor=lo;.sel_anchor=-1;.
5cc0 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 73 28 63 6f 6e 73 ...}.......)static.void.ins(cons
5ce0 74 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 74 t.char.*s,.int.len).{......if.(t
5d00 6c 65 6e 2b 6c 65 6e 3e 3d 4d 41 58 5f 54 45 58 54 29 20 6c 65 6e 3d 4d 41 58 5f 54 45 58 54 2d len+len>=MAX_TEXT).len=MAX_TEXT-
5d20 74 6c 65 6e 2d 31 3b 00 00 00 35 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 6f 72 tlen-1;...5..memmove(text+cursor
5d40 2b 6c 65 6e 2c 20 74 65 78 74 2b 63 75 72 73 6f 72 2c 20 74 6c 65 6e 2d 63 75 72 73 6f 72 29 3b +len,.text+cursor,.tlen-cursor);
5d60 00 00 00 1e 20 20 6d 65 6d 63 70 79 28 74 65 78 74 2b 63 75 72 73 6f 72 2c 20 73 2c 20 6c 65 6e ......memcpy(text+cursor,.s,.len
5d80 29 3b 00 00 00 36 20 20 74 6c 65 6e 2b 3d 6c 65 6e 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c );...6..tlen+=len;.text[tlen]='\
5da0 30 27 3b 20 63 75 72 73 6f 72 2b 3d 6c 65 6e 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 00 00 00 01 0';.cursor+=len;.dirty=true;....
5dc0 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 63 6f 70 79 5f 73 65 6c 28 73 74 }.......%static.void.copy_sel(st
5de0 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1b 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 ruct.app.*a).{......if.(sel_anch
5e00 6f 72 3c 30 29 20 72 65 74 75 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 or<0).return;...$..int.lo=sel_st
5e20 61 72 74 28 29 2c 20 6c 65 6e 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 42 20 20 69 66 20 28 6c art(),.len=sel_len();...B..if.(l
5e40 65 6e 3e 28 69 6e 74 29 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 29 20 en>(int)sizeof(a->clipboard)-1).
5e60 6c 65 6e 3d 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 3b 00 00 00 25 20 len=sizeof(a->clipboard)-1;...%.
5e80 20 6d 65 6d 63 70 79 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 74 65 78 74 2b 6c 6f 2c 20 6c .memcpy(a->clipboard,.text+lo,.l
5ea0 65 6e 29 3b 00 00 00 2f 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5b 6c 65 6e 5d 3d 27 5c 30 27 en);.../..a->clipboard[len]='\0'
5ec0 3b 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3d 6c 65 6e 3b 00 00 00 3b 20 20 69 66 20 ;.a->clipboard_len=len;...;..if.
5ee0 28 61 2d 3e 64 73 29 20 7b 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 (a->ds).{.wl_data_source_destroy
5f00 28 61 2d 3e 64 73 29 3b 20 61 2d 3e 64 73 3d 4e 55 4c 4c 3b 20 7d 00 00 00 1e 20 20 69 66 20 28 (a->ds);.a->ds=NULL;.}......if.(
5f20 21 61 2d 3e 64 64 6d 7c 7c 21 61 2d 3e 64 64 29 20 72 65 74 75 72 6e 3b 00 00 00 3c 20 20 61 2d !a->ddm||!a->dd).return;...<..a-
5f40 3e 64 73 20 3d 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 63 72 65 >ds.=.wl_data_device_manager_cre
5f60 61 74 65 5f 64 61 74 61 5f 73 6f 75 72 63 65 28 61 2d 3e 64 64 6d 29 3b 00 00 00 3a 20 20 77 6c ate_data_source(a->ddm);...:..wl
5f80 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f _data_source_offer(a->ds,."text/
5fa0 70 6c 61 69 6e 3b 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 3b 00 00 00 2c 20 20 77 6c 5f 64 plain;charset=utf-8");...,..wl_d
5fc0 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c ata_source_offer(a->ds,."text/pl
5fe0 61 69 6e 22 29 3b 00 00 00 2d 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 ain");...-..wl_data_source_offer
6000 28 61 2d 3e 64 73 2c 20 22 55 54 46 38 5f 53 54 52 49 4e 47 22 29 3b 00 00 00 28 20 20 77 6c 5f (a->ds,."UTF8_STRING");...(..wl_
6020 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 53 54 52 49 4e 47 data_source_offer(a->ds,."STRING
6040 22 29 3b 00 00 00 3d 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 73 65 74 5f 73 65 6c 65 ");...=..wl_data_device_set_sele
6060 63 74 69 6f 6e 28 61 2d 3e 64 64 2c 20 61 2d 3e 64 73 2c 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 ction(a->dd,.a->ds,.a->last_seri
6080 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f al);....}.......6static.void.pro
60a0 63 65 73 73 5f 6b 65 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 75 69 6e 74 33 32 5f 74 cess_key(struct.app.*a,.uint32_t
60c0 20 6b 65 79 29 20 7b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 .key).{......if.(!a->xkb_state).
60e0 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 78 6b 62 5f 6b 65 79 63 6f 64 65 5f 74 20 6b 63 20 20 3d return;......xkb_keycode_t.kc..=
6100 20 6b 65 79 2b 38 3b 00 00 00 42 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 20 73 79 6d 20 3d .key+8;...B..xkb_keysym_t..sym.=
6120 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e 65 5f 73 79 6d 28 61 2d 3e 78 6b .xkb_state_key_get_one_sym(a->xk
6140 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 67 20 20 69 6e 74 20 63 74 72 6c 20 20 3d 20 78 b_state,.kc);...g..int.ctrl..=.x
6160 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 kb_state_mod_name_is_active(a->x
6180 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 43 54 52 4c 2c 20 20 58 4b kb_state,.XKB_MOD_NAME_CTRL,..XK
61a0 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 67 20 20 69 6e B_STATE_MODS_EFFECTIVE);...g..in
61c0 74 20 73 68 69 66 74 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f t.shift.=.xkb_state_mod_name_is_
61e0 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d active(a->xkb_state,.XKB_MOD_NAM
6200 45 5f 53 48 49 46 54 2c 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 E_SHIFT,.XKB_STATE_MODS_EFFECTIV
6220 45 29 3b 00 00 00 49 20 20 78 6b 62 5f 6c 61 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 6c 61 79 6f E);...I..xkb_layout_index_t.layo
6240 75 74 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 74 28 61 2d ut.=.xkb_state_key_get_layout(a-
6260 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 60 20 20 63 6f 6e 73 74 20 78 6b 62 5f >xkb_state,.kc);...`..const.xkb_
6280 6b 65 79 73 79 6d 5f 74 20 2a 62 73 3b 20 69 6e 74 20 6e 3d 78 6b 62 5f 6b 65 79 6d 61 70 5f 6b keysym_t.*bs;.int.n=xkb_keymap_k
62a0 65 79 5f 67 65 74 5f 73 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d ey_get_syms_by_level(a->xkb_keym
62c0 61 70 2c 6b 63 2c 6c 61 79 6f 75 74 2c 30 2c 26 62 73 29 3b 00 00 00 29 20 20 78 6b 62 5f 6b 65 ap,kc,layout,0,&bs);...)..xkb_ke
62e0 79 73 79 6d 5f 74 20 70 6c 61 69 6e 20 3d 20 6e 3e 30 20 3f 20 62 73 5b 30 5d 20 3a 20 73 79 6d ysym_t.plain.=.n>0.?.bs[0].:.sym
6300 3b 00 00 00 00 00 00 00 1c 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 73 63 61 ;..........if.(sym==XKB_KEY_Esca
6320 70 65 29 20 7b 00 00 00 5b 20 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d pe).{...[....if.(a->open_menu!=M
6340 45 4e 55 5f 4e 4f 4e 45 29 20 7b 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f ENU_NONE).{.a->open_menu=MENU_NO
6360 4e 45 3b 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 20 72 65 64 72 61 77 28 61 NE;.a->hovered_item=-1;.redraw(a
6380 29 3b 20 7d 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 );.}........return;......}......
63a0 69 66 20 28 63 74 72 6c 29 20 7b 00 00 00 6b 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b if.(ctrl).{...k....if.(plain==XK
63c0 42 5f 4b 45 59 5f 65 71 75 61 6c 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 70 6c 75 73 B_KEY_equal||plain==XKB_KEY_plus
63e0 29 20 7b 20 66 6f 6e 74 5f 70 74 2b 2b 3b 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 ).{.font_pt++;.update_font_metri
6400 63 73 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 66 20 20 cs();.redraw(a);.return;.}...f..
6420 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 6d 69 6e 75 73 29 20 7b 20 69 66 ..if.(plain==XKB_KEY_minus).{.if
6440 20 28 66 6f 6e 74 5f 70 74 3e 34 29 7b 66 6f 6e 74 5f 70 74 2d 2d 3b 20 75 70 64 61 74 65 5f 66 .(font_pt>4){font_pt--;.update_f
6460 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 7d 20 72 65 74 75 72 ont_metrics();.redraw(a);}.retur
6480 6e 3b 20 7d 00 00 00 5a 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 30 n;.}...Z....if.(plain==XKB_KEY_0
64a0 29 20 7b 20 66 6f 6e 74 5f 70 74 3d 46 4f 4e 54 5f 53 49 5a 45 3b 20 75 70 64 61 74 65 5f 66 6f ).{.font_pt=FONT_SIZE;.update_fo
64c0 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b nt_metrics();.redraw(a);.return;
64e0 20 7d 00 00 00 4e 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 73 7c 7c .}...N....if.(plain==XKB_KEY_s||
6500 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 53 29 20 7b 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 plain==XKB_KEY_S).{.do_save(a);.
6520 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 5d 20 20 20 20 69 66 20 28 redraw(a);.return;.}...]....if.(
6540 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 61 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 plain==XKB_KEY_a||plain==XKB_KEY
6560 5f 41 29 20 7b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 30 3b 20 63 75 72 73 6f 72 3d 74 6c 65 6e 3b _A).{.sel_anchor=0;.cursor=tlen;
6580 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 44 20 20 20 20 69 66 20 .redraw(a);.return;.}...D....if.
65a0 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 63 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 (plain==XKB_KEY_c||plain==XKB_KE
65c0 59 5f 43 29 20 7b 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 Y_C).{.copy_sel(a);.return;.}...
65e0 5d 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 78 7c 7c 70 6c 61 69 6e ]....if.(plain==XKB_KEY_x||plain
6600 3d 3d 58 4b 42 5f 4b 45 59 5f 58 29 20 7b 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 20 64 65 6c 65 ==XKB_KEY_X).{.copy_sel(a);.dele
6620 74 65 5f 73 65 6c 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 te_sel();.redraw(a);.return;.}..
6640 00 85 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 76 7c 7c 70 6c 61 69 ......if.(plain==XKB_KEY_v||plai
6660 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 56 29 20 7b 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 n==XKB_KEY_V).{.if(sel_anchor>=0
6680 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 20 69 6e 73 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c )delete_sel();.ins(a->clipboard,
66a0 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 a->clipboard_len);.redraw(a);.re
66c0 74 75 72 6e 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 53 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 turn;.}......}...S..if.(sym==XKB
66e0 5f 4b 45 59 5f 4c 65 66 74 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 7c 7c 73 _KEY_Left||sym==XKB_KEY_Right||s
6700 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 ym==XKB_KEY_Home||sym==XKB_KEY_E
6720 6e 64 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 73 68 69 66 74 26 26 73 65 6c 5f 61 6e 63 68 nd).{.../....if.(shift&&sel_anch
6740 6f 72 3c 30 29 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 63 75 72 73 6f 72 3b 00 00 00 23 20 20 20 20 or<0).sel_anchor=cursor;...#....
6760 65 6c 73 65 20 69 66 20 28 21 73 68 69 66 74 29 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 else.if.(!shift).sel_anchor=-1;.
6780 00 00 33 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 20 26 26 ..3....if.(sym==XKB_KEY_Left..&&
67a0 63 75 72 73 6f 72 3e 30 29 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 33 20 20 20 20 69 66 cursor>0)....cursor--;...3....if
67c0 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 26 26 63 75 72 73 6f 72 3c 74 6c .(sym==XKB_KEY_Right.&&cursor<tl
67e0 65 6e 29 20 63 75 72 73 6f 72 2b 2b 3b 00 00 00 52 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b en).cursor++;...R....if.(sym==XK
6800 42 5f 4b 45 59 5f 48 6f 6d 65 29 20 7b 20 77 68 69 6c 65 28 63 75 72 73 6f 72 3e 30 20 20 20 20 B_KEY_Home).{.while(cursor>0....
6820 26 26 74 65 78 74 5b 63 75 72 73 6f 72 2d 31 5d 21 3d 27 5c 6e 27 29 20 63 75 72 73 6f 72 2d 2d &&text[cursor-1]!='\n').cursor--
6840 3b 20 7d 00 00 00 52 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 ;.}...R....if.(sym==XKB_KEY_End)
6860 20 20 7b 20 77 68 69 6c 65 28 63 75 72 73 6f 72 3c 74 6c 65 6e 20 26 26 74 65 78 74 5b 63 75 72 ..{.while(cursor<tlen.&&text[cur
6880 73 6f 72 5d 20 20 21 3d 27 5c 6e 27 29 20 63 75 72 73 6f 72 2b 2b 3b 20 7d 00 00 00 31 20 20 20 sor]..!='\n').cursor++;.}...1...
68a0 20 69 66 20 28 73 68 69 66 74 26 26 73 65 6c 5f 61 6e 63 68 6f 72 3d 3d 63 75 72 73 6f 72 29 20 .if.(shift&&sel_anchor==cursor).
68c0 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 16 20 20 20 20 72 65 64 72 61 77 28 61 29 3b sel_anchor=-1;........redraw(a);
68e0 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 1f 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b .return;......}......if.(sym==XK
6900 42 5f 4b 45 59 5f 42 61 63 6b 53 70 61 63 65 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 73 65 B_KEY_BackSpace).{...$....if.(se
6920 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 79 20 20 l_anchor>=0).delete_sel();...y..
6940 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 3e 30 29 20 7b 20 6d 65 6d 6d 6f 76 65 28 74 ..else.if.(cursor>0).{.memmove(t
6960 65 78 74 2b 63 75 72 73 6f 72 2d 31 2c 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 6c 65 6e 2d 63 75 ext+cursor-1,text+cursor,tlen-cu
6980 72 73 6f 72 29 3b 20 74 6c 65 6e 2d 2d 3b 20 63 75 72 73 6f 72 2d 2d 3b 20 74 65 78 74 5b 74 6c rsor);.tlen--;.cursor--;.text[tl
69a0 65 6e 5d 3d 27 5c 30 27 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 20 7d 00 00 00 16 20 20 20 20 72 en]='\0';.dirty=true;.}........r
69c0 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 1c 20 20 69 66 edraw(a);.return;......}......if
69e0 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 20 7b 00 00 00 24 20 20 20 20 .(sym==XKB_KEY_Delete).{...$....
6a00 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b if.(sel_anchor>=0).delete_sel();
6a20 00 00 00 74 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 3c 74 6c 65 6e 29 20 7b 20 ...t....else.if.(cursor<tlen).{.
6a40 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 65 78 74 2b 63 75 72 73 6f 72 2b memmove(text+cursor,text+cursor+
6a60 31 2c 74 6c 65 6e 2d 63 75 72 73 6f 72 2d 31 29 3b 20 74 6c 65 6e 2d 2d 3b 20 74 65 78 74 5b 74 1,tlen-cursor-1);.tlen--;.text[t
6a80 6c 65 6e 5d 3d 27 5c 30 27 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 20 7d 00 00 00 16 20 20 20 20 len]='\0';.dirty=true;.}........
6aa0 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 33 20 20 69 redraw(a);.return;......}...3..i
6ac0 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 65 74 75 72 6e 7c 7c 73 79 6d 3d 3d 58 4b 42 f.(sym==XKB_KEY_Return||sym==XKB
6ae0 5f 4b 45 59 5f 4b 50 5f 45 6e 74 65 72 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 28 73 65 6c 5f _KEY_KP_Enter).{...D....if.(sel_
6b00 61 6e 63 68 6f 72 3e 3d 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 20 69 6e 73 28 22 5c 6e anchor>=0).delete_sel();.ins("\n
6b20 22 2c 31 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 ",1);.redraw(a);.return;......}.
6b40 00 00 4e 20 20 63 68 61 72 20 62 75 66 5b 38 5d 3b 20 69 6e 74 20 6c 65 6e 3d 78 6b 62 5f 73 74 ..N..char.buf[8];.int.len=xkb_st
6b60 61 74 65 5f 6b 65 79 5f 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 ate_key_get_utf8(a->xkb_state,kc
6b80 2c 62 75 66 2c 73 69 7a 65 6f 66 20 62 75 66 29 3b 00 00 00 63 20 20 69 66 20 28 6c 65 6e 3e 30 ,buf,sizeof.buf);...c..if.(len>0
6ba0 26 26 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b 30 5d 3e 3d 33 32 29 20 7b 20 69 &&(unsigned.char)buf[0]>=32).{.i
6bc0 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 20 69 6e f(sel_anchor>=0)delete_sel();.in
6be0 73 28 62 75 66 2c 6c 65 6e 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 7d 00 00 00 01 7d 00 00 00 s(buf,len);.redraw(a);.}....}...
6c00 00 00 00 00 66 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 ....fstatic.void.wm_ping(void.*d
6c20 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 ,.struct.xdg_wm_base.*wm,.uint32
6c40 5f 74 20 73 65 72 69 61 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d _t.serial).{.xdg_wm_base_pong(wm
6c60 2c 73 65 72 69 61 6c 29 3b 20 7d 00 00 00 47 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 ,serial);.}...Gstatic.const.stru
6c80 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 ct.xdg_wm_base_listener.wm_liste
6ca0 6e 65 72 20 3d 20 7b 2e 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 26 73 74 ner.=.{.ping=wm_ping};.......&st
6cc0 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a atic.void.alloc_buf(struct.app.*
6ce0 61 29 20 7b 00 00 00 3c 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 20 20 20 7b 20 77 6c 5f 62 75 a).{...<..if.(a->buf)....{.wl_bu
6d00 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 20 61 2d 3e 62 75 66 3d 4e 55 4c ffer_destroy(a->buf);.a->buf=NUL
6d20 4c 3b 20 7d 00 00 00 46 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 29 20 7b 20 6d 75 6e 6d 61 L;.}...F..if.(a->pixels).{.munma
6d40 70 28 61 2d 3e 70 69 78 65 6c 73 2c 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 20 61 2d 3e p(a->pixels,a->pixels_size);.a->
6d60 70 69 78 65 6c 73 3d 4e 55 4c 4c 3b 20 7d 00 00 00 40 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 pixels=NULL;.}...@..a->pixels.=.
6d80 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 26 61 2d 3e 62 75 66 2c make_shm(a,.a->w,.a->h,.&a->buf,
6da0 20 26 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 .&a->pixels_size);....}.......Fs
6dc0 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tatic.void.xs_cfg(void.*d,.struc
6de0 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 t.xdg_surface.*xs,.uint32_t.seri
6e00 61 6c 29 20 7b 00 00 00 38 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 78 64 67 5f al).{...8..struct.app.*a=d;.xdg_
6e20 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c 29 surface_ack_configure(xs,serial)
6e40 3b 00 00 00 6f 20 20 69 66 20 28 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3e 30 26 26 61 2d 3e 70 65 ;...o..if.(a->pending_w>0&&a->pe
6e60 6e 64 69 6e 67 5f 68 3e 30 29 20 7b 20 61 2d 3e 77 3d 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3b 20 nding_h>0).{.a->w=a->pending_w;.
6e80 61 2d 3e 68 3d 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3b 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3d a->h=a->pending_h;.a->pending_w=
6ea0 30 3b 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3d 30 3b 20 7d 00 00 00 29 20 20 69 66 20 28 21 61 0;.a->pending_h=0;.}...)..if.(!a
6ec0 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 ->configured).a->configured=true
6ee0 3b 00 00 00 1a 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 20 72 65 64 72 61 77 28 61 29 3b 00 ;......alloc_buf(a);.redraw(a);.
6f00 00 00 01 7d 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f ...}...Kstatic.const.struct.xdg_
6f20 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b surface_listener.xs_listener.=.{
6f40 2e 63 6f 6e 66 69 67 75 72 65 3d 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 60 73 74 61 74 69 .configure=xs_cfg};.......`stati
6f60 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xt_cfg(void.*d,.struct.xd
6f80 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 g_toplevel.*xt,.int32_t.w,.int32
6fa0 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 3f 20 _t.h,.struct.wl_array.*s).{...?.
6fc0 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 77 3e 30 26 26 68 3e 30 29 7b 61 .struct.app.*a=d;.if(w>0&&h>0){a
6fe0 2d 3e 70 65 6e 64 69 6e 67 5f 77 3d 77 3b 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3d 68 3b 7d 00 00 ->pending_w=w;a->pending_h=h;}..
7000 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 ..}...Cstatic.void.xt_close(void
7020 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 .*d,.struct.xdg_toplevel.*xt).{.
7040 65 78 69 74 28 30 29 3b 20 7d 00 00 00 5c 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 exit(0);.}...\static.const.struc
7060 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 65 t.xdg_toplevel_listener.xt_liste
7080 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d ner.=.{.configure=xt_cfg,.close=
70a0 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 xt_close};.......Jstatic.void.ds
70c0 5f 74 61 72 67 65 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f _target(void.*d,.struct.wl_data_
70e0 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 29 20 7b 7d 00 00 00 53 source.*s,.const.char.*m).{}...S
7100 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 73 65 6e 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 static.void.ds_send(void.*d,.str
7120 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 uct.wl_data_source.*s,.const.cha
7140 72 20 2a 6d 2c 20 69 6e 74 33 32 5f 74 20 66 64 29 20 7b 00 00 00 46 20 20 73 74 72 75 63 74 20 r.*m,.int32_t.fd).{...F..struct.
7160 61 70 70 20 2a 61 3d 64 3b 20 77 72 69 74 65 28 66 64 2c 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c app.*a=d;.write(fd,a->clipboard,
7180 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 a->clipboard_len);.close(fd);...
71a0 01 7d 00 00 00 3d 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 28 76 .}...=static.void.ds_cancelled(v
71c0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 oid.*d,.struct.wl_data_source.*s
71e0 29 20 7b 00 00 00 47 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 61 2d 3e ).{...G..struct.app.*a=d;.if(a->
7200 64 73 29 7b 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 ds){wl_data_source_destroy(a->ds
7220 29 3b 61 2d 3e 64 73 3d 4e 55 4c 4c 3b 7d 00 00 00 01 7d 00 00 00 74 73 74 61 74 69 63 20 63 6f );a->ds=NULL;}....}...tstatic.co
7240 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6c 69 73 74 65 6e nst.struct.wl_data_source_listen
7260 65 72 20 64 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 74 61 72 67 65 74 3d 64 73 5f 74 61 72 er.ds_listener.=.{.target=ds_tar
7280 67 65 74 2c 2e 73 65 6e 64 3d 64 73 5f 73 65 6e 64 2c 2e 63 61 6e 63 65 6c 6c 65 64 3d 64 73 5f get,.send=ds_send,.cancelled=ds_
72a0 63 61 6e 63 65 6c 6c 65 64 7d 3b 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 64 cancelled};.......Tstatic.void.d
72c0 64 5f 6f 66 66 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f d_offer(void.*d,.struct.wl_data_
72e0 64 65 76 69 63 65 20 2a 64 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 device.*dd,.struct.wl_data_offer
7300 20 2a 6f 29 20 7b 7d 00 00 00 93 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 65 6e 74 65 72 28 .*o).{}....static.void.dd_enter(
7320 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a void.*d,.struct.wl_data_device.*
7340 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 dd,.uint32_t.s,.struct.wl_surfac
7360 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 e.*su,.wl_fixed_t.x,.wl_fixed_t.
7380 79 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 y,.struct.wl_data_offer.*o).{}..
73a0 00 3b 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 .;static.void.dd_leave(void.*d,.
73c0 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 struct.wl_data_device.*dd).{}...
73e0 64 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 dstatic.void.dd_motion(void.*d,.
7400 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 struct.wl_data_device.*dd,.uint3
7420 32 5f 74 20 74 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 2_t.t,.wl_fixed_t.x,.wl_fixed_t.
7440 79 29 20 7b 7d 00 00 00 3a 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 64 72 6f 70 28 76 6f 69 y).{}...:static.void.dd_drop(voi
7460 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 d.*d,.struct.wl_data_device.*dd)
7480 20 7b 7d 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 28 .{}...Xstatic.void.dd_selection(
74a0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a void.*d,.struct.wl_data_device.*
74c0 64 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 dd,.struct.wl_data_offer.*o).{}.
74e0 00 00 3b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 ..;static.const.struct.wl_data_d
7500 65 76 69 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 evice_listener.dd_listener.=.{..
7520 00 6e 20 20 2e 64 61 74 61 5f 6f 66 66 65 72 3d 64 64 5f 6f 66 66 65 72 2c 2e 65 6e 74 65 72 3d .n...data_offer=dd_offer,.enter=
7540 64 64 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 64 64 5f 6c 65 61 76 65 2c 2e 6d 6f 74 69 6f 6e dd_enter,.leave=dd_leave,.motion
7560 3d 64 64 5f 6d 6f 74 69 6f 6e 2c 2e 64 72 6f 70 3d 64 64 5f 64 72 6f 70 2c 2e 73 65 6c 65 63 74 =dd_motion,.drop=dd_drop,.select
7580 69 6f 6e 3d 64 64 5f 73 65 6c 65 63 74 69 6f 6e 00 00 00 02 7d 3b 00 00 00 00 00 00 00 76 73 74 ion=dd_selection....};.......vst
75a0 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 atic.void.ptr_enter(void.*d,.str
75c0 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 uct.wl_pointer.*p,.uint32_t.s,.s
75e0 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 truct.wl_surface.*su,.wl_fixed_t
7600 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 5a 73 74 61 74 69 63 20 76 .x,.wl_fixed_t.y).{}...Zstatic.v
7620 6f 69 64 20 70 74 72 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c oid.ptr_leave(void.*d,.struct.wl
7640 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 _pointer.*p,.uint32_t.s,.struct.
7660 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 7d 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 wl_surface.*su).{}..._static.voi
7680 64 20 70 74 72 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f d.ptr_motion(void.*d,.struct.wl_
76a0 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 77 6c 5f 66 69 78 65 64 pointer.*p,.uint32_t.t,.wl_fixed
76c0 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 _t.x,.wl_fixed_t.y).{......struc
76e0 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 3f 20 20 61 2d 3e 6d 6f 75 73 65 5f 78 3d 77 6c 5f 66 t.app.*a=d;...?..a->mouse_x=wl_f
7700 69 78 65 64 5f 74 6f 5f 69 6e 74 28 78 29 3b 20 61 2d 3e 6d 6f 75 73 65 5f 79 3d 77 6c 5f 66 69 ixed_to_int(x);.a->mouse_y=wl_fi
7720 78 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f xed_to_int(y);......if.(a->open_
7740 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 2e 20 20 20 20 69 6e 74 20 69 74 menu!=MENU_NONE).{........int.it
7760 3d 69 74 65 6d 5f 61 74 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 61 2d 3e 6d 6f 75 73 65 =item_at(a,a->open_menu,a->mouse
7780 5f 79 29 3b 00 00 00 47 20 20 20 20 69 66 20 28 69 74 21 3d 61 2d 3e 68 6f 76 65 72 65 64 5f 69 _y);...G....if.(it!=a->hovered_i
77a0 74 65 6d 29 20 7b 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 69 74 3b 20 72 65 64 72 61 tem).{.a->hovered_item=it;.redra
77c0 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 28 20 20 69 66 20 28 w(a);.return;.}......}...(..if.(
77e0 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 61 72 5f 79 28 61 29 29 20 72 65 64 72 61 77 28 61 a->mouse_y.>=.bar_y(a)).redraw(a
7800 29 3b 00 00 00 01 7d 00 00 00 72 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 62 75 74 74 6f );....}...rstatic.void.ptr_butto
7820 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c n(void.*d,.struct.wl_pointer.*p,
7840 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 .uint32_t.serial,.uint32_t.t,.ui
7860 6e 74 33 32 5f 74 20 62 74 6e 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 nt32_t.btn,.uint32_t.state).{...
7880 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 35 20 20 69 66 20 28 73 74 61 ...struct.app.*a=d;...5..if.(sta
78a0 74 65 21 3d 57 4c 5f 50 4f 49 4e 54 45 52 5f 42 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 52 45 53 te!=WL_POINTER_BUTTON_STATE_PRES
78c0 53 45 44 29 20 72 65 74 75 72 6e 3b 00 00 00 18 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c SED).return;......a->last_serial
78e0 3d 73 65 72 69 61 6c 3b 00 00 00 12 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 3b 00 00 =serial;......int.by=bar_y(a);..
7900 00 00 00 00 00 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e ........if.(a->open_menu!=MENU_N
7920 4f 4e 45 29 20 7b 00 00 00 2e 20 20 20 20 69 6e 74 20 69 74 3d 69 74 65 6d 5f 61 74 28 61 2c 61 ONE).{........int.it=item_at(a,a
7940 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 38 20 20 20 20 ->open_menu,a->mouse_y);...8....
7960 69 66 20 28 69 74 3e 3d 30 29 20 7b 20 66 69 72 65 5f 69 74 65 6d 28 61 2c 61 2d 3e 6f 70 65 6e if.(it>=0).{.fire_item(a,a->open
7980 5f 6d 65 6e 75 2c 69 74 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 19 20 20 20 20 69 66 20 28 _menu,it);.return;.}........if.(
79a0 61 2d 3e 6d 6f 75 73 65 5f 79 3e 3d 62 79 29 20 7b 00 00 00 9e 20 20 20 20 20 20 66 6f 72 20 28 a->mouse_y>=by).{..........for.(
79c0 69 6e 74 20 69 3d 30 3b 69 3c 32 3b 69 2b 2b 29 20 7b 20 69 6e 74 20 62 78 3d 62 74 6e 5f 78 28 int.i=0;i<2;i++).{.int.bx=btn_x(
79e0 69 29 2c 62 77 3d 62 74 6e 5f 77 28 69 29 3b 20 69 66 28 61 2d 3e 6d 6f 75 73 65 5f 78 3e 3d 62 i),bw=btn_w(i);.if(a->mouse_x>=b
7a00 78 26 26 61 2d 3e 6d 6f 75 73 65 5f 78 3c 62 78 2b 62 77 29 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e x&&a->mouse_x<bx+bw){a->open_men
7a20 75 3d 28 4d 65 6e 75 49 64 29 69 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 u=(MenuId)i;a->hovered_item=-1;r
7a40 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 42 edraw(a);return;}.}........}...B
7a60 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2d 3e 68 ....a->open_menu=MENU_NONE;.a->h
7a80 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 overed_item=-1;.redraw(a);.retur
7aa0 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 17 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f n;......}..........if.(a->mouse_
7ac0 79 3e 3d 62 79 29 20 7b 00 00 00 9c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 69 3c 32 y>=by).{........for.(int.i=0;i<2
7ae0 3b 69 2b 2b 29 20 7b 20 69 6e 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 62 77 3d 62 74 6e 5f 77 ;i++).{.int.bx=btn_x(i),bw=btn_w
7b00 28 69 29 3b 20 69 66 28 61 2d 3e 6d 6f 75 73 65 5f 78 3e 3d 62 78 26 26 61 2d 3e 6d 6f 75 73 65 (i);.if(a->mouse_x>=bx&&a->mouse
7b20 5f 78 3c 62 78 2b 62 77 29 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 28 4d 65 6e 75 49 64 29 69 _x<bx+bw){a->open_menu=(MenuId)i
7b40 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 72 65 ;a->hovered_item=-1;redraw(a);re
7b60 74 75 72 6e 3b 7d 20 7d 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 turn;}.}........return;......}..
7b80 00 00 00 00 00 3d 20 20 69 6e 74 20 63 78 3d 28 61 2d 3e 6d 6f 75 73 65 5f 78 2d 50 41 44 29 2f .....=..int.cx=(a->mouse_x-PAD)/
7ba0 63 65 6c 6c 5f 77 2c 20 63 79 3d 28 61 2d 3e 6d 6f 75 73 65 5f 79 2d 50 41 44 29 2f 63 65 6c 6c cell_w,.cy=(a->mouse_y-PAD)/cell
7bc0 5f 68 3b 00 00 00 18 20 20 69 6e 74 20 70 6f 73 3d 30 2c 63 6f 6c 3d 30 2c 72 6f 77 3d 30 3b 00 _h;......int.pos=0,col=0,row=0;.
7be0 00 00 1c 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 69 3c 74 6c 65 6e 3b 69 2b 2b 29 20 7b 00 .....for.(int.i=0;i<tlen;i++).{.
7c00 00 00 2c 20 20 20 20 69 66 20 28 72 6f 77 3d 3d 63 79 26 26 63 6f 6c 3d 3d 63 78 29 7b 70 6f 73 ..,....if.(row==cy&&col==cx){pos
7c20 3d 69 3b 67 6f 74 6f 20 66 6f 75 6e 64 3b 7d 00 00 00 42 20 20 20 20 69 66 20 28 74 65 78 74 5b =i;goto.found;}...B....if.(text[
7c40 69 5d 3d 3d 27 5c 6e 27 29 7b 69 66 28 72 6f 77 3d 3d 63 79 29 7b 70 6f 73 3d 69 3b 67 6f 74 6f i]=='\n'){if(row==cy){pos=i;goto
7c60 20 66 6f 75 6e 64 3b 7d 63 6f 6c 3d 30 3b 72 6f 77 2b 2b 3b 7d 00 00 00 0f 20 20 20 20 65 6c 73 .found;}col=0;row++;}........els
7c80 65 20 63 6f 6c 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 70 6f 73 3d 74 6c 65 6e 3b 00 00 e.col++;......}......pos=tlen;..
7ca0 00 06 66 6f 75 6e 64 3a 00 00 00 27 20 20 63 75 72 73 6f 72 3d 70 6f 73 3b 20 73 65 6c 5f 61 6e ..found:...'..cursor=pos;.sel_an
7cc0 63 68 6f 72 3d 2d 31 3b 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 5f 73 74 61 74 chor=-1;.redraw(a);....}..._stat
7ce0 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 ic.void.ptr_axis(void.*d,.struct
7d00 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 .wl_pointer.*p,.uint32_t.t,.uint
7d20 33 32 5f 74 20 61 78 69 73 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 76 29 20 7b 7d 00 00 00 38 73 32_t.axis,.wl_fixed_t.v).{}...8s
7d40 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 6c 69 tatic.const.struct.wl_pointer_li
7d60 73 74 65 6e 65 72 20 70 74 72 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 58 20 20 2e 65 6e stener.ptr_listener.=.{...X...en
7d80 74 65 72 3d 70 74 72 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 70 74 72 5f 6c 65 61 76 65 2c 2e ter=ptr_enter,.leave=ptr_leave,.
7da0 6d 6f 74 69 6f 6e 3d 70 74 72 5f 6d 6f 74 69 6f 6e 2c 2e 62 75 74 74 6f 6e 3d 70 74 72 5f 62 75 motion=ptr_motion,.button=ptr_bu
7dc0 74 74 6f 6e 2c 2e 61 78 69 73 3d 70 74 72 5f 61 78 69 73 00 00 00 02 7d 3b 00 00 00 00 00 00 00 tton,.axis=ptr_axis....};.......
7de0 61 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 6d 61 70 28 76 6f 69 64 20 2a 64 2c 20 astatic.void.kb_keymap(void.*d,.
7e00 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 struct.wl_keyboard.*kb,.uint32_t
7e20 20 66 6d 74 2c 20 69 6e 74 33 32 5f 74 20 66 64 2c 20 75 69 6e 74 33 32 5f 74 20 73 69 7a 65 29 .fmt,.int32_t.fd,.uint32_t.size)
7e40 20 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 3f 20 20 69 66 .{......struct.app.*a=d;...?..if
7e60 20 28 66 6d 74 21 3d 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 .(fmt!=WL_KEYBOARD_KEYMAP_FORMAT
7e80 5f 58 4b 42 5f 56 31 29 7b 63 6c 6f 73 65 28 66 64 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 40 20 _XKB_V1){close(fd);return;}...@.
7ea0 20 63 68 61 72 20 2a 73 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 .char.*s=mmap(NULL,size,PROT_REA
7ec0 44 2c 4d 41 50 5f 50 52 49 56 41 54 45 2c 66 64 2c 30 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 D,MAP_PRIVATE,fd,0);.close(fd);.
7ee0 00 00 1c 20 20 69 66 20 28 73 3d 3d 4d 41 50 5f 46 41 49 4c 45 44 29 20 72 65 74 75 72 6e 3b 00 .....if.(s==MAP_FAILED).return;.
7f00 00 00 46 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 7b 78 6b 62 5f 73 74 61 74 ..F..if.(a->xkb_state).{xkb_stat
7f20 65 5f 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 3b 61 2d 3e 78 6b 62 5f 73 74 61 e_unref(a->xkb_state);a->xkb_sta
7f40 74 65 3d 4e 55 4c 4c 3b 7d 00 00 00 49 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 te=NULL;}...I..if.(a->xkb_keymap
7f60 29 7b 78 6b 62 5f 6b 65 79 6d 61 70 5f 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 ){xkb_keymap_unref(a->xkb_keymap
7f80 29 3b 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 3d 4e 55 4c 4c 3b 7d 00 00 00 6f 20 20 61 2d 3e 78 );a->xkb_keymap=NULL;}...o..a->x
7fa0 6b 62 5f 6b 65 79 6d 61 70 3d 78 6b 62 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 72 6f 6d 5f 73 74 kb_keymap=xkb_keymap_new_from_st
7fc0 72 69 6e 67 28 61 2d 3e 78 6b 62 5f 63 74 78 2c 73 2c 58 4b 42 5f 4b 45 59 4d 41 50 5f 46 4f 52 ring(a->xkb_ctx,s,XKB_KEYMAP_FOR
7fe0 4d 41 54 5f 54 45 58 54 5f 56 31 2c 58 4b 42 5f 4b 45 59 4d 41 50 5f 43 4f 4d 50 49 4c 45 5f 4e MAT_TEXT_V1,XKB_KEYMAP_COMPILE_N
8000 4f 5f 46 4c 41 47 53 29 3b 00 00 00 11 20 20 6d 75 6e 6d 61 70 28 73 2c 73 69 7a 65 29 3b 00 00 O_FLAGS);......munmap(s,size);..
8020 00 3f 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 20 61 2d 3e 78 6b 62 5f 73 74 .?..if.(a->xkb_keymap).a->xkb_st
8040 61 74 65 3d 78 6b 62 5f 73 74 61 74 65 5f 6e 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 ate=xkb_state_new(a->xkb_keymap)
8060 3b 00 00 00 01 7d 00 00 00 6f 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 72 28 76 ;....}...ostatic.void.kb_enter(v
8080 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 oid.*d,.struct.wl_keyboard.*kb,.
80a0 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 uint32_t.s,.struct.wl_surface.*s
80c0 75 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 6b 29 20 7b 7d 00 00 00 5a 73 74 61 u,.struct.wl_array.*k).{}...Zsta
80e0 74 69 63 20 76 6f 69 64 20 6b 62 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tic.void.kb_leave(void.*d,.struc
8100 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 t.wl_keyboard.*kb,.uint32_t.s,.s
8120 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 00 00 00 56 20 20 73 74 72 truct.wl_surface.*su).{...V..str
8140 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 uct.app.*a=d;.struct.itimerspec.
8160 74 73 3d 7b 30 7d 3b 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 ts={0};.timerfd_settime(a->repea
8180 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 00 00 00 01 7d 00 00 00 70 73 74 61 74 69 63 t_fd,0,&ts,NULL);....}...pstatic
81a0 20 76 6f 69 64 20 6b 62 5f 6b 65 79 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f .void.kb_key(void.*d,.struct.wl_
81c0 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 keyboard.*kb,.uint32_t.serial,.u
81e0 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 6b 65 79 2c 20 75 69 6e 74 33 32 5f int32_t.t,.uint32_t.key,.uint32_
8200 74 20 73 74 61 74 65 29 20 7b 00 00 00 29 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b t.state).{...)..struct.app.*a=d;
8220 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 3d 73 65 72 69 61 6c 3b 00 00 00 2d 20 20 69 66 20 .a->last_serial=serial;...-..if.
8240 28 73 74 61 74 65 3d 3d 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 5f 53 54 41 54 45 5f 50 52 (state==WL_KEYBOARD_KEY_STATE_PR
8260 45 53 53 45 44 29 20 7b 00 00 00 2a 20 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 61 2c 6b 65 ESSED).{...*....process_key(a,ke
8280 79 29 3b 20 61 2d 3e 72 65 70 65 61 74 5f 6b 65 79 3d 6b 65 79 3b 00 00 00 1b 20 20 20 20 69 66 y);.a->repeat_key=key;........if
82a0 20 28 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 3e 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 73 .(a->repeat_rate>0).{..........s
82c0 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 00 00 00 5d 20 20 20 20 20 20 20 truct.itimerspec.ts={...].......
82e0 20 2e 69 74 5f 76 61 6c 75 65 20 20 20 3d 7b 2e 74 76 5f 73 65 63 3d 61 2d 3e 72 65 70 65 61 74 ..it_value...={.tv_sec=a->repeat
8300 5f 64 65 6c 61 79 2f 31 30 30 30 2c 2e 74 76 5f 6e 73 65 63 3d 28 61 2d 3e 72 65 70 65 61 74 5f _delay/1000,.tv_nsec=(a->repeat_
8320 64 65 6c 61 79 25 31 30 30 30 29 2a 31 30 30 30 30 30 30 4c 7d 2c 00 00 00 45 20 20 20 20 20 20 delay%1000)*1000000L},...E......
8340 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 6c 3d 7b 2e 74 76 5f 73 65 63 3d 30 2c 2e 74 76 5f 6e 73 ...it_interval={.tv_sec=0,.tv_ns
8360 65 63 3d 31 30 30 30 30 30 30 30 30 30 4c 2f 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 7d 2c 00 ec=1000000000L/a->repeat_rate},.
8380 00 00 08 20 20 20 20 20 20 7d 3b 00 00 00 2f 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 .........};.../......timerfd_set
83a0 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 00 00 time(a->repeat_fd,0,&ts,NULL);..
83c0 00 05 20 20 20 20 7d 00 00 00 50 20 20 7d 20 65 6c 73 65 20 7b 20 73 74 72 75 63 74 20 69 74 69 ......}...P..}.else.{.struct.iti
83e0 6d 65 72 73 70 65 63 20 74 73 3d 7b 30 7d 3b 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 merspec.ts={0};.timerfd_settime(
8400 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 20 7d 00 00 00 01 7d a->repeat_fd,0,&ts,NULL);.}....}
8420 00 00 00 82 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 ....static.void.kb_modifiers(voi
8440 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 d.*d,.struct.wl_keyboard.*kb,.ui
8460 6e 74 33 32 5f 74 20 73 2c 20 75 69 6e 74 33 32 5f 74 20 64 65 70 2c 20 75 69 6e 74 33 32 5f 74 nt32_t.s,.uint32_t.dep,.uint32_t
8480 20 6c 61 74 2c 20 75 69 6e 74 33 32 5f 74 20 6c 6f 63 6b 65 64 2c 20 75 69 6e 74 33 32 5f 74 20 .lat,.uint32_t.locked,.uint32_t.
84a0 67 72 70 29 20 7b 00 00 00 5f 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 grp).{..._..struct.app.*a=d;.if(
84c0 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d a->xkb_state).xkb_state_update_m
84e0 61 73 6b 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 64 65 70 2c 6c 61 74 2c 6c 6f 63 6b 65 64 2c ask(a->xkb_state,dep,lat,locked,
8500 30 2c 30 2c 67 72 70 29 3b 00 00 00 01 7d 00 00 00 55 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 0,0,grp);....}...Ustatic.void.kb
8520 5f 72 65 70 65 61 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f _repeat(void.*d,.struct.wl_keybo
8540 61 72 64 20 2a 6b 62 2c 20 69 6e 74 33 32 5f 74 20 72 61 74 65 2c 20 69 6e 74 33 32 5f 74 20 64 ard.*kb,.int32_t.rate,.int32_t.d
8560 65 6c 61 79 29 20 7b 00 00 00 3e 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 61 2d elay).{...>..struct.app.*a=d;.a-
8580 3e 72 65 70 65 61 74 5f 72 61 74 65 3d 72 61 74 65 3b 20 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c >repeat_rate=rate;.a->repeat_del
85a0 61 79 3d 64 65 6c 61 79 3b 00 00 00 01 7d 00 00 00 3e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 ay=delay;....}...>static.const.s
85c0 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 6b 65 79 62 6f truct.wl_keyboard_listener.keybo
85e0 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 6e 20 20 2e 6b 65 79 6d 61 70 3d 6b 62 ard_listener.=.{...n...keymap=kb
8600 5f 6b 65 79 6d 61 70 2c 2e 65 6e 74 65 72 3d 6b 62 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 6b _keymap,.enter=kb_enter,.leave=k
8620 62 5f 6c 65 61 76 65 2c 2e 6b 65 79 3d 6b 62 5f 6b 65 79 2c 2e 6d 6f 64 69 66 69 65 72 73 3d 6b b_leave,.key=kb_key,.modifiers=k
8640 62 5f 6d 6f 64 69 66 69 65 72 73 2c 2e 72 65 70 65 61 74 5f 69 6e 66 6f 3d 6b 62 5f 72 65 70 65 b_modifiers,.repeat_info=kb_repe
8660 61 74 00 00 00 02 7d 3b 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 at....};.......Estatic.void.seat
8680 5f 63 61 70 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 _caps(void.*d,.struct.wl_seat.*s
86a0 65 61 74 2c 20 75 69 6e 74 33 32 5f 74 20 63 61 70 73 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 eat,.uint32_t.caps).{......struc
86c0 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 39 20 20 69 66 20 28 28 63 61 70 73 26 57 4c 5f 53 45 t.app.*a=d;...9..if.((caps&WL_SE
86e0 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 26 26 21 61 2d 3e 6b 65 79 AT_CAPABILITY_KEYBOARD)&&!a->key
8700 62 6f 61 72 64 29 20 7b 00 00 00 67 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 3d 77 6c 5f 73 board).{...g....a->keyboard=wl_s
8720 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f 61 72 64 28 73 65 61 74 29 3b 20 77 6c 5f 6b 65 79 62 6f eat_get_keyboard(seat);.wl_keybo
8740 61 72 64 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 6b 65 79 62 6f 61 72 64 2c 26 6b 65 ard_add_listener(a->keyboard,&ke
8760 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 00 00 00 40 20 20 7d 20 65 6c 73 65 20 yboard_listener,a);...@..}.else.
8780 69 66 20 28 21 28 63 61 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 if.(!(caps&WL_SEAT_CAPABILITY_KE
87a0 59 42 4f 41 52 44 29 26 26 61 2d 3e 6b 65 79 62 6f 61 72 64 29 20 7b 00 00 00 37 20 20 20 20 77 YBOARD)&&a->keyboard).{...7....w
87c0 6c 5f 6b 65 79 62 6f 61 72 64 5f 72 65 6c 65 61 73 65 28 61 2d 3e 6b 65 79 62 6f 61 72 64 29 3b l_keyboard_release(a->keyboard);
87e0 20 61 2d 3e 6b 65 79 62 6f 61 72 64 3d 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 69 .a->keyboard=NULL;......}...7..i
8800 66 20 28 28 63 61 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e f.((caps&WL_SEAT_CAPABILITY_POIN
8820 54 45 52 29 26 26 21 61 2d 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 5e 20 20 20 20 61 2d 3e 70 TER)&&!a->pointer).{...^....a->p
8840 6f 69 6e 74 65 72 3d 77 6c 5f 73 65 61 74 5f 67 65 74 5f 70 6f 69 6e 74 65 72 28 73 65 61 74 29 ointer=wl_seat_get_pointer(seat)
8860 3b 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 70 6f 69 ;.wl_pointer_add_listener(a->poi
8880 6e 74 65 72 2c 26 70 74 72 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 00 00 00 3e 20 20 7d 20 65 6c nter,&ptr_listener,a);...>..}.el
88a0 73 65 20 69 66 20 28 21 28 63 61 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 se.if.(!(caps&WL_SEAT_CAPABILITY
88c0 5f 50 4f 49 4e 54 45 52 29 26 26 61 2d 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 34 20 20 20 20 _POINTER)&&a->pointer).{...4....
88e0 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 65 6c 65 61 73 65 28 61 2d 3e 70 6f 69 6e 74 65 72 29 3b 20 wl_pointer_release(a->pointer);.
8900 61 2d 3e 70 6f 69 6e 74 65 72 3d 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 49 a->pointer=NULL;......}....}...I
8920 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 static.void.seat_name(void.*d,.s
8940 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 truct.wl_seat.*seat,.const.char.
8960 2a 6e 61 6d 65 29 20 7b 7d 00 00 00 5f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 *name).{}..._static.const.struct
8980 20 77 6c 5f 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 .wl_seat_listener.seat_listener.
89a0 3d 20 7b 2e 63 61 70 61 62 69 6c 69 74 69 65 73 3d 73 65 61 74 5f 63 61 70 73 2c 2e 6e 61 6d 65 =.{.capabilities=seat_caps,.name
89c0 3d 73 65 61 74 5f 6e 61 6d 65 7d 3b 00 00 00 00 00 00 00 64 73 74 61 74 69 63 20 76 6f 69 64 20 =seat_name};.......dstatic.void.
89e0 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 reg_global(void.*d,.struct.wl_re
8a00 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 gistry.*r,.uint32_t.id,.const.ch
8a20 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 12 20 20 73 74 ar.*iface,.uint32_t.v).{......st
8a40 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 6e 20 20 69 66 20 20 20 20 20 20 28 21 73 74 ruct.app.*a=d;...n..if......(!st
8a60 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 20 20 20 rcmp(iface,"wl_compositor"))....
8a80 20 20 20 20 20 20 61 2d 3e 63 6f 6d 70 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ......a->comp=wl_registry_bind(r
8aa0 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b ,id,&wl_compositor_interface,4);
8ac0 00 00 00 67 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c ...g..else.if.(!strcmp(iface,"wl
8ae0 5f 73 68 6d 22 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 2d 3e 73 68 6d 20 3d _shm")).................a->shm.=
8b00 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e wl_registry_bind(r,id,&wl_shm_in
8b20 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 9e 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d terface,1);......else.if.(!strcm
8b40 70 28 69 66 61 63 65 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 20 20 20 20 20 20 20 20 p(iface,"xdg_wm_base")).........
8b60 20 7b 20 61 2d 3e 77 6d 20 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 .{.a->wm..=wl_registry_bind(r,id
8b80 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 20 78 64 67 5f ,&xdg_wm_base_interface,1);.xdg_
8ba0 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 26 77 6d 5f 6c wm_base_add_listener(a->wm,&wm_l
8bc0 69 73 74 65 6e 65 72 2c 61 29 3b 20 7d 00 00 00 9f 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 istener,a);.}......else.if.(!str
8be0 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 73 65 61 74 22 29 29 20 20 20 20 20 20 20 20 20 20 20 cmp(iface,"wl_seat"))...........
8c00 20 20 20 7b 20 61 2d 3e 73 65 61 74 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ...{.a->seat=wl_registry_bind(r,
8c20 69 64 2c 26 77 6c 5f 73 65 61 74 5f 69 6e 74 65 72 66 61 63 65 2c 35 29 3b 20 20 20 20 20 20 77 id,&wl_seat_interface,5);......w
8c40 6c 5f 73 65 61 74 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 26 73 65 61 l_seat_add_listener(a->seat,&sea
8c60 74 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 20 7d 00 00 00 77 20 20 65 6c 73 65 20 69 66 20 28 21 t_listener,a);.}...w..else.if.(!
8c80 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e strcmp(iface,"wl_data_device_man
8ca0 61 67 65 72 22 29 29 20 61 2d 3e 64 64 6d 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ager")).a->ddm.=wl_registry_bind
8cc0 28 72 2c 69 64 2c 26 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 69 6e (r,id,&wl_data_device_manager_in
8ce0 74 65 72 66 61 63 65 2c 33 29 3b 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 terface,3);....}...Fstatic.void.
8d00 72 65 67 5f 72 65 6d 6f 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 reg_remove(void.*d,.struct.wl_re
8d20 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 29 20 7b 7d 00 00 00 67 73 74 gistry.*r,.uint32_t.id).{}...gst
8d40 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 atic.const.struct.wl_registry_li
8d60 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 67 6c 6f 62 61 6c 3d 72 stener.reg_listener.=.{.global=r
8d80 65 67 5f 67 6c 6f 62 61 6c 2c 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 3d 72 65 67 5f 72 65 6d eg_global,.global_remove=reg_rem
8da0 6f 76 65 7d 3b 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 ove};........int.main(void).{...
8dc0 58 20 20 69 66 20 28 21 6c 6f 61 64 5f 66 6f 6e 74 28 29 29 20 7b 20 66 70 72 69 6e 74 66 28 73 X..if.(!load_font()).{.fprintf(s
8de0 74 64 65 72 72 2c 22 66 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e tderr,"failed.to.load.font:.%s\n
8e00 22 2c 46 4f 4e 54 5f 4e 41 4d 45 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 ",FONT_NAME);.return.1;.}.......
8e20 13 20 20 73 74 72 75 63 74 20 61 70 70 20 61 3d 7b 30 7d 3b 00 00 00 13 20 20 61 2e 77 3d 36 34 ...struct.app.a={0};......a.w=64
8e40 30 3b 20 61 2e 68 3d 34 38 30 3b 00 00 00 27 20 20 61 2e 72 65 70 65 61 74 5f 72 61 74 65 3d 32 0;.a.h=480;...'..a.repeat_rate=2
8e60 35 3b 20 61 2e 72 65 70 65 61 74 5f 64 65 6c 61 79 3d 34 30 30 3b 00 00 00 2b 20 20 61 2e 6f 70 5;.a.repeat_delay=400;...+..a.op
8e80 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 en_menu=MENU_NONE;.a.hovered_ite
8ea0 6d 3d 2d 31 3b 00 00 00 00 00 00 00 32 20 20 61 2e 78 6b 62 5f 63 74 78 3d 78 6b 62 5f 63 6f 6e m=-1;.......2..a.xkb_ctx=xkb_con
8ec0 74 65 78 74 5f 6e 65 77 28 58 4b 42 5f 43 4f 4e 54 45 58 54 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 text_new(XKB_CONTEXT_NO_FLAGS);.
8ee0 00 00 45 20 20 69 66 20 28 21 61 2e 78 6b 62 5f 63 74 78 29 7b 66 70 75 74 73 28 22 78 6b 62 5f ..E..if.(!a.xkb_ctx){fputs("xkb_
8f00 63 6f 6e 74 65 78 74 5f 6e 65 77 20 66 61 69 6c 65 64 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 context_new.failed\n",stderr);re
8f20 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 47 20 20 61 2e 72 65 70 65 61 74 5f 66 64 3d 74 69 turn.1;}.......G..a.repeat_fd=ti
8f40 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 merfd_create(CLOCK_MONOTONIC,TFD
8f60 5f 43 4c 4f 45 58 45 43 7c 54 46 44 5f 4e 4f 4e 42 4c 4f 43 4b 29 3b 00 00 00 38 20 20 69 66 20 _CLOEXEC|TFD_NONBLOCK);...8..if.
8f80 28 61 2e 72 65 70 65 61 74 5f 66 64 3c 30 29 7b 70 65 72 72 6f 72 28 22 74 69 6d 65 72 66 64 5f (a.repeat_fd<0){perror("timerfd_
8fa0 63 72 65 61 74 65 22 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 1f 20 20 61 2e 64 create");return.1;}..........a.d
8fc0 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 4a 20 20 =wl_display_connect(NULL);...J..
8fe0 69 66 20 28 21 61 2e 64 29 7b 66 70 75 74 73 28 22 63 61 6e 6e 6f 74 20 63 6f 6e 6e 65 63 74 20 if.(!a.d){fputs("cannot.connect.
9000 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 to.Wayland.display\n",stderr);re
9020 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 25 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c turn.1;}.......%..a.reg=wl_displ
9040 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 33 20 20 77 6c 5f 72 65 ay_get_registry(a.d);...3..wl_re
9060 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 65 67 5f 6c gistry_add_listener(a.reg,&reg_l
9080 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 istener,&a);......wl_display_rou
90a0 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 64 20 20 69 66 20 28 21 61 2e 63 6f 6d ndtrip(a.d);.......d..if.(!a.com
90c0 70 7c 7c 21 61 2e 73 68 6d 7c 7c 21 61 2e 77 6d 7c 7c 21 61 2e 73 65 61 74 29 7b 66 70 75 74 73 p||!a.shm||!a.wm||!a.seat){fputs
90e0 28 22 6d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 ("missing.required.Wayland.globa
9100 6c 73 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 1c 20 20 77 6c ls\n",stderr);return.1;}......wl
9120 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 15 _display_roundtrip(a.d);........
9140 20 20 69 66 20 28 61 2e 64 64 6d 26 26 61 2e 73 65 61 74 29 7b 00 00 00 3e 20 20 20 20 61 2e 64 ..if.(a.ddm&&a.seat){...>....a.d
9160 64 3d 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 67 65 74 5f 64 61 74 d=wl_data_device_manager_get_dat
9180 61 5f 64 65 76 69 63 65 28 61 2e 64 64 6d 2c 61 2e 73 65 61 74 29 3b 00 00 00 36 20 20 20 20 77 a_device(a.ddm,a.seat);...6....w
91a0 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 64 64 2c l_data_device_add_listener(a.dd,
91c0 26 64 64 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2c &dd_listener,&a);......}.......,
91e0 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 ..a.ws=wl_compositor_create_surf
9200 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 2e 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 ace(a.comp);......a.xs=xdg_wm_ba
9220 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 se_get_xdg_surface(a.wm,a.ws);..
9240 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 .1..xdg_surface_add_listener(a.x
9260 73 2c 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 26 20 20 61 2e 78 74 3d 78 64 s,&xs_listener,&a);...&..a.xt=xd
9280 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 g_surface_get_toplevel(a.xs);...
92a0 32 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 2..xdg_toplevel_add_listener(a.x
92c0 74 2c 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 26 20 20 78 64 67 5f 74 6f 70 t,&xt_listener,&a);...&..xdg_top
92e0 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 22 77 6c 65 64 22 29 3b 00 00 00 level_set_title(a.xt,"wled");...
9300 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 ...wl_surface_commit(a.ws);.....
9320 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 2c 20 20 .....while.(!a.configured)...,..
9340 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3d 3d ..if.(wl_display_dispatch(a.d)==
9360 2d 31 29 20 62 72 65 61 6b 3b 00 00 00 00 00 00 00 23 20 20 69 6e 74 20 77 6c 5f 66 64 3d 77 6c -1).break;.......#..int.wl_fd=wl
9380 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 3b 00 00 00 0d 20 20 77 68 69 6c 65 _display_get_fd(a.d);......while
93a0 20 28 31 29 20 7b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 .(1).{........wl_display_flush(a
93c0 2e 64 29 3b 00 00 00 57 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d .d);...W....struct.pollfd.fds[2]
93e0 3d 7b 7b 2e 66 64 3d 77 6c 5f 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 7b 2e 66 ={{.fd=wl_fd,.events=POLLIN},{.f
9400 64 3d 61 2e 72 65 70 65 61 74 5f 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 7d 3b 00 d=a.repeat_fd,.events=POLLIN}};.
9420 00 00 1b 20 20 20 20 69 6e 74 20 72 65 74 3d 70 6f 6c 6c 28 66 64 73 2c 32 2c 2d 31 29 3b 00 00 .......int.ret=poll(fds,2,-1);..
9440 00 2f 20 20 20 20 69 66 20 28 72 65 74 3c 30 29 7b 69 66 28 65 72 72 6e 6f 3d 3d 45 49 4e 54 52 ./....if.(ret<0){if(errno==EINTR
9460 29 63 6f 6e 74 69 6e 75 65 3b 62 72 65 61 6b 3b 7d 00 00 00 6c 20 20 20 20 69 66 20 28 66 64 73 )continue;break;}...l....if.(fds
9480 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 7b 75 69 6e 74 36 34 5f 74 20 65 78 70 [1].revents&POLLIN){uint64_t.exp
94a0 3b 72 65 61 64 28 61 2e 72 65 70 65 61 74 5f 66 64 2c 26 65 78 70 2c 73 69 7a 65 6f 66 20 65 78 ;read(a.repeat_fd,&exp,sizeof.ex
94c0 70 29 3b 70 72 6f 63 65 73 73 5f 6b 65 79 28 26 61 2c 61 2e 72 65 70 65 61 74 5f 6b 65 79 29 3b p);process_key(&a,a.repeat_key);
94e0 7d 00 00 00 46 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c }...F....if.(fds[0].revents&POLL
9500 49 4e 29 20 69 66 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3d IN).if(wl_display_dispatch(a.d)=
9520 3d 2d 31 29 20 62 72 65 61 6b 3b 35 81 f5 18 00 00 00 00 02 00 00 00 0a 00 00 00 d5 02 00 00 3f =-1).break;5...................?
9540 00 00 00 56 04 00 00 07 00 00 00 4f 00 00 00 00 00 00 00 c0 6f 00 00 00 00 00 00 1d 7d 00 00 00 ...V.......O........o.......}...
9560 00 00 00 35 81 5f d0 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 ...5._..........................
9580 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96e0 00 00 00 00 00 00 00 00 00 69 9f c7 09 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 .........i......................
9700 00 00 00 00 04 5c 00 00 00 24 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 .....\...$#include.<wayland-clie
9720 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 3e 00 00 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 nt-protocol.h>....#define._POSIX
9740 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 13 23 69 6e 63 6c 75 64 65 20 22 63 _C_SOURCE.200809L....#include."c
9760 6f 6e 66 69 67 2e 68 22 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d onfig.h"...&#include."xdg-shell-
9780 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c client-protocol.h"....#include.<
97a0 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 errno.h>....#include.<fcntl.h>..
97c0 00 22 23 69 6e 63 6c 75 64 65 20 3c 66 6f 6e 74 63 6f 6e 66 69 67 2f 66 6f 6e 74 63 6f 6e 66 69 ."#include.<fontconfig/fontconfi
97e0 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 66 74 32 62 75 69 6c 64 2e 68 3e 00 00 00 g.h>....#include.<ft2build.h>...
9800 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c .#include.<poll.h>....#include.<
9820 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 stdbool.h>....#include.<stdint.h
9840 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c >....#include.<stdio.h>....#incl
9860 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 ude.<stdlib.h>....#include.<stri
9880 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 ng.h>....#include.<sys/mman.h>..
98a0 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 13 23 69 ..#include.<sys/timerfd.h>....#i
98c0 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 nclude.<unistd.h>....#include.<w
98e0 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b ayland-client.h>....#include.<xk
9900 62 63 6f 6d 6d 6f 6e 2f 78 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 bcommon/xkbcommon.h>....#include
9920 20 46 54 5f 46 52 45 45 54 59 50 45 5f 48 00 00 00 00 00 00 00 16 23 64 65 66 69 6e 65 20 4d 41 .FT_FREETYPE_H........#define.MA
9940 58 5f 54 45 58 54 20 36 35 35 33 36 00 00 00 10 23 64 65 66 69 6e 65 20 42 41 52 5f 48 20 32 38 X_TEXT.65536....#define.BAR_H.28
9960 00 00 00 12 23 64 65 66 69 6e 65 20 42 54 4e 5f 50 41 44 20 31 30 00 00 00 0d 23 64 65 66 69 6e ....#define.BTN_PAD.10....#defin
9980 65 20 50 41 44 20 38 00 00 00 00 00 00 00 17 23 64 65 66 69 6e 65 20 42 47 5f 43 4f 4c 4f 52 20 e.PAD.8........#define.BG_COLOR.
99a0 43 46 47 5f 42 47 00 00 00 17 23 64 65 66 69 6e 65 20 46 47 5f 43 4f 4c 4f 52 20 43 46 47 5f 46 CFG_BG....#define.FG_COLOR.CFG_F
99c0 47 00 00 00 1c 23 64 65 66 69 6e 65 20 43 55 52 5f 43 4f 4c 4f 52 20 43 46 47 5f 43 55 52 53 4f G....#define.CUR_COLOR.CFG_CURSO
99e0 52 00 00 00 1c 23 64 65 66 69 6e 65 20 53 45 4c 5f 43 4f 4c 4f 52 20 43 46 47 5f 53 45 4c 5f 42 R....#define.SEL_COLOR.CFG_SEL_B
9a00 47 00 00 00 19 23 64 65 66 69 6e 65 20 53 45 4c 5f 46 47 20 43 46 47 5f 53 45 4c 5f 46 47 00 00 G....#define.SEL_FG.CFG_SEL_FG..
9a20 00 19 23 64 65 66 69 6e 65 20 42 41 52 5f 42 47 20 43 46 47 5f 42 41 52 5f 42 47 00 00 00 19 23 ..#define.BAR_BG.CFG_BAR_BG....#
9a40 64 65 66 69 6e 65 20 42 41 52 5f 46 47 20 43 46 47 5f 42 41 52 5f 46 47 00 00 00 1b 23 64 65 66 define.BAR_FG.CFG_BAR_FG....#def
9a60 69 6e 65 20 42 54 4e 5f 48 4f 56 20 43 46 47 5f 42 54 4e 5f 48 4f 56 00 00 00 1b 23 64 65 66 69 ine.BTN_HOV.CFG_BTN_HOV....#defi
9a80 6e 65 20 44 52 4f 50 5f 42 47 20 43 46 47 5f 44 52 4f 50 5f 42 47 00 00 00 1b 23 64 65 66 69 6e ne.DROP_BG.CFG_DROP_BG....#defin
9aa0 65 20 44 52 4f 50 5f 46 47 20 43 46 47 5f 44 52 4f 50 5f 46 47 00 00 00 1d 23 64 65 66 69 6e 65 e.DROP_FG.CFG_DROP_FG....#define
9ac0 20 44 52 4f 50 5f 48 4f 56 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 00 00 00 23 23 64 65 66 69 6e .DROP_HOV.CFG_DROP_HOV...##defin
9ae0 65 20 44 52 4f 50 5f 48 4f 56 5f 46 47 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 5f 46 47 00 00 00 e.DROP_HOV_FG.CFG_DROP_HOV_FG...
9b00 19 23 64 65 66 69 6e 65 20 53 45 50 5f 43 4f 4c 4f 52 20 43 46 47 5f 53 45 50 00 00 00 00 00 00 .#define.SEP_COLOR.CFG_SEP......
9b20 00 21 73 74 61 74 69 63 20 63 68 61 72 20 74 65 78 74 5b 4d 41 58 5f 54 45 58 54 5d 20 3d 20 7b .!static.char.text[MAX_TEXT].=.{
9b40 30 7d 3b 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 74 6c 65 6e 20 3d 20 30 3b 00 00 00 16 73 0};....static.int.tlen.=.0;....s
9b60 74 61 74 69 63 20 69 6e 74 20 63 75 72 73 6f 72 20 3d 20 30 3b 00 00 00 1b 73 74 61 74 69 63 20 tatic.int.cursor.=.0;....static.
9b80 69 6e 74 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 21 73 74 61 74 69 63 20 63 int.sel_anchor.=.-1;...!static.c
9ba0 68 61 72 20 66 69 6c 65 70 61 74 68 5b 34 30 39 36 5d 20 3d 20 7b 30 7d 3b 00 00 00 1a 73 74 61 har.filepath[4096].=.{0};....sta
9bc0 74 69 63 20 62 6f 6f 6c 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 00 00 00 00 19 73 tic.bool.dirty.=.false;........s
9be0 74 61 74 69 63 20 46 54 5f 4c 69 62 72 61 72 79 20 66 74 5f 6c 69 62 3b 00 00 00 17 73 74 61 74 tatic.FT_Library.ft_lib;....stat
9c00 69 63 20 46 54 5f 46 61 63 65 20 66 74 5f 66 61 63 65 3b 00 00 00 12 73 74 61 74 69 63 20 69 6e ic.FT_Face.ft_face;....static.in
9c20 74 20 63 65 6c 6c 5f 77 3b 00 00 00 12 73 74 61 74 69 63 20 69 6e 74 20 63 65 6c 6c 5f 68 3b 00 t.cell_w;....static.int.cell_h;.
9c40 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 61 73 63 65 6e 64 65 72 3b 00 00 00 1f 73 74 61 74 69 ...static.int.ascender;....stati
9c60 63 20 69 6e 74 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 00 00 00 c.int.font_pt.=.FONT_SIZE;......
9c80 00 45 74 79 70 65 64 65 66 20 65 6e 75 6d 20 7b 20 4d 45 4e 55 5f 4e 4f 4e 45 20 3d 20 2d 31 2c .Etypedef.enum.{.MENU_NONE.=.-1,
9ca0 20 4d 45 4e 55 5f 46 49 4c 45 20 3d 20 30 2c 20 4d 45 4e 55 5f 49 4e 46 4f 20 3d 20 31 20 7d 20 .MENU_FILE.=.0,.MENU_INFO.=.1.}.
9cc0 4d 65 6e 75 49 64 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 MenuId;........typedef.struct.{.
9ce0 00 00 14 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61 62 65 6c 3b 00 00 00 11 20 20 62 6f 6f .....const.char.*label;......boo
9d00 6c 20 73 65 70 5f 61 66 74 65 72 3b 00 00 00 0b 7d 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 00 l.sep_after;....}.MenuItem;.....
9d20 00 00 26 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 74 ..&static.const.MenuItem.file_it
9d40 65 6d 73 5b 5d 20 3d 20 7b 00 00 00 41 20 20 20 20 7b 22 4e 65 77 22 2c 20 66 61 6c 73 65 7d 2c ems[].=.{...A....{"New",.false},
9d60 20 20 20 20 7b 22 4f 70 65 6e 22 2c 20 66 61 6c 73 65 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 22 ....{"Open",.false},..........{"
9d80 53 61 76 65 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 41 20 20 20 20 7b 22 53 61 76 65 20 41 73 22 Save",.false},...A....{"Save.As"
9da0 2c 20 74 72 75 65 7d 2c 20 7b 22 53 61 76 65 20 61 6e 64 20 51 75 69 74 22 2c 20 66 61 6c 73 65 ,.true},.{"Save.and.Quit",.false
9dc0 7d 2c 20 7b 22 51 75 69 74 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 02 7d 3b 00 00 00 26 73 74 61 },.{"Quit",.false},....};...&sta
9de0 74 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 tic.const.MenuItem.info_items[].
9e00 3d 20 7b 00 00 00 15 20 20 20 20 7b 22 41 62 6f 75 74 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 02 =.{........{"About",.false},....
9e20 7d 3b 00 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 46 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 };...>#define.N_FILE.((int)(size
9e40 6f 66 20 66 69 6c 65 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 66 69 6c 65 5f 69 74 65 of.file_items./.sizeof.*file_ite
9e60 6d 73 29 29 00 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 ms))...>#define.N_INFO.((int)(si
9e80 7a 65 6f 66 20 69 6e 66 6f 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 69 6e 66 6f 5f 69 zeof.info_items./.sizeof.*info_i
9ea0 74 65 6d 73 29 29 00 00 00 00 00 00 00 0e 73 74 72 75 63 74 20 70 6f 70 75 70 20 7b 00 00 00 18 tems))........struct.popup.{....
9ec0 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 ..struct.wl_surface.*ws;......st
9ee0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 ruct.xdg_surface.*xs;......struc
9f00 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 t.xdg_toplevel.*xt;......void.*p
9f20 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 ixels;......size_t.pixels_size;.
9f40 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 .....struct.wl_buffer.*buf;.....
9f60 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b .int.w,.h;......bool.configured;
9f80 00 00 00 0c 20 20 62 6f 6f 6c 20 6f 70 65 6e 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 73 74 ......bool.open;....};........st
9fa0 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 ruct.app.{......struct.wl_displa
9fc0 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 y.*d;......struct.wl_registry.*r
9fe0 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 eg;......struct.wl_compositor.*c
a000 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 omp;......struct.wl_shm.*shm;...
a020 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 ...struct.xdg_wm_base.*wm;......
a040 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 struct.wl_surface.*ws;......stru
a060 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ct.xdg_surface.*xs;......struct.
a080 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c xdg_toplevel.*xt;......struct.wl
a0a0 5f 73 65 61 74 20 2a 73 65 61 74 3b 00 00 00 1f 20 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 _seat.*seat;......struct.wl_keyb
a0c0 6f 61 72 64 20 2a 6b 65 79 62 6f 61 72 64 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 70 oard.*keyboard;......struct.wl_p
a0e0 6f 69 6e 74 65 72 20 2a 70 6f 69 6e 74 65 72 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f ointer.*pointer;...%..struct.wl_
a100 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 20 2a 64 64 6d 3b 00 00 00 1c 20 20 73 data_device_manager.*ddm;......s
a120 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 3b 00 00 00 1c 20 20 73 truct.wl_data_device.*dd;......s
a140 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 64 73 3b 00 00 00 0f 20 20 76 truct.wl_data_source.*ds;......v
a160 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f oid.*pixels;......size_t.pixels_
a180 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 size;......struct.wl_buffer.*buf
a1a0 3b 00 00 00 21 20 20 69 6e 74 20 77 2c 20 68 2c 20 70 65 6e 64 69 6e 67 5f 77 2c 20 70 65 6e 64 ;...!..int.w,.h,.pending_w,.pend
a1c0 69 6e 67 5f 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 1e ing_h;......bool.configured;....
a1e0 20 20 73 74 72 75 63 74 20 78 6b 62 5f 63 6f 6e 74 65 78 74 20 2a 78 6b 62 5f 63 74 78 3b 00 00 ..struct.xkb_context.*xkb_ctx;..
a200 00 20 20 20 73 74 72 75 63 74 20 78 6b 62 5f 6b 65 79 6d 61 70 20 2a 78 6b 62 5f 6b 65 79 6d 61 ....struct.xkb_keymap.*xkb_keyma
a220 70 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 78 6b 62 5f 73 74 61 74 65 20 2a 78 6b 62 5f 73 74 p;......struct.xkb_state.*xkb_st
a240 61 74 65 3b 00 00 00 10 20 20 69 6e 74 20 72 65 70 65 61 74 5f 66 64 3b 00 00 00 16 20 20 75 69 ate;......int.repeat_fd;......ui
a260 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 6b 65 79 3b 00 00 00 16 20 20 69 6e 74 33 32 5f 74 20 nt32_t.repeat_key;......int32_t.
a280 72 65 70 65 61 74 5f 72 61 74 65 3b 00 00 00 17 20 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 repeat_rate;......int32_t.repeat
a2a0 5f 64 65 6c 61 79 3b 00 00 00 1b 20 20 63 68 61 72 20 63 6c 69 70 62 6f 61 72 64 5b 4d 41 58 5f _delay;......char.clipboard[MAX_
a2c0 54 45 58 54 5d 3b 00 00 00 14 20 20 69 6e 74 20 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3b 00 00 TEXT];......int.clipboard_len;..
a2e0 00 17 20 20 75 69 6e 74 33 32 5f 74 20 6c 61 73 74 5f 73 65 72 69 61 6c 3b 00 00 00 17 20 20 69 ....uint32_t.last_serial;......i
a300 6e 74 20 6d 6f 75 73 65 5f 78 2c 20 6d 6f 75 73 65 5f 79 3b 00 00 00 13 20 20 4d 65 6e 75 49 64 nt.mouse_x,.mouse_y;......MenuId
a320 20 6f 70 65 6e 5f 6d 65 6e 75 3b 00 00 00 13 20 20 69 6e 74 20 68 6f 76 65 72 65 64 5f 69 74 65 .open_menu;......int.hovered_ite
a340 6d 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 61 62 6f 75 74 3b 00 00 00 02 7d m;......struct.popup.about;....}
a360 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 75 70 64 61 74 65 5f 66 6f 6e 74 ;.......'static.void.update_font
a380 5f 6d 65 74 72 69 63 73 28 76 6f 69 64 29 20 7b 00 00 00 35 20 20 46 54 5f 53 65 74 5f 43 68 61 _metrics(void).{...5..FT_Set_Cha
a3a0 72 5f 53 69 7a 65 28 66 74 5f 66 61 63 65 2c 20 30 2c 20 66 6f 6e 74 5f 70 74 20 2a 20 36 34 2c r_Size(ft_face,.0,.font_pt.*.64,
a3c0 20 39 36 2c 20 39 36 29 3b 00 00 00 33 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 .96,.96);...3..FT_Load_Char(ft_f
a3e0 61 63 65 2c 20 27 30 27 2c 20 46 54 5f 4c 4f 41 44 5f 41 44 56 41 4e 43 45 5f 4f 4e 4c 59 29 3b ace,.'0',.FT_LOAD_ADVANCE_ONLY);
a400 00 00 00 38 20 20 63 65 6c 6c 5f 77 20 3d 20 28 69 6e 74 29 28 28 66 74 5f 66 61 63 65 2d 3e 67 ...8..cell_w.=.(int)((ft_face->g
a420 6c 79 70 68 2d 3e 61 64 76 61 6e 63 65 2e 78 20 2b 20 33 32 29 20 3e 3e 20 36 29 3b 00 00 00 39 lyph->advance.x.+.32).>>.6);...9
a440 20 20 61 73 63 65 6e 64 65 72 20 3d 20 28 69 6e 74 29 28 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 ..ascender.=.(int)(ft_face->size
a460 2d 3e 6d 65 74 72 69 63 73 2e 61 73 63 65 6e 64 65 72 20 3e 3e 20 36 29 3b 00 00 00 42 20 20 69 ->metrics.ascender.>>.6);...B..i
a480 6e 74 20 64 65 73 63 20 3d 20 28 69 6e 74 29 28 28 2d 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 2d nt.desc.=.(int)((-ft_face->size-
a4a0 3e 6d 65 74 72 69 63 73 2e 64 65 73 63 65 6e 64 65 72 20 2b 20 36 33 29 20 3e 3e 20 36 29 3b 00 >metrics.descender.+.63).>>.6);.
a4c0 00 00 1b 20 20 63 65 6c 6c 5f 68 20 3d 20 61 73 63 65 6e 64 65 72 20 2b 20 64 65 73 63 3b 00 00 .....cell_h.=.ascender.+.desc;..
a4e0 00 11 20 20 69 66 20 28 63 65 6c 6c 5f 77 20 3c 20 31 29 00 00 00 0f 20 20 20 20 63 65 6c 6c 5f ....if.(cell_w.<.1)........cell_
a500 77 20 3d 20 31 3b 00 00 00 11 20 20 69 66 20 28 63 65 6c 6c 5f 68 20 3c 20 31 29 00 00 00 0f 20 w.=.1;......if.(cell_h.<.1).....
a520 20 20 20 63 65 6c 6c 5f 68 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 ...cell_h.=.1;....}........stati
a540 63 20 62 6f 6f 6c 20 6c 6f 61 64 5f 66 6f 6e 74 28 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 c.bool.load_font(void).{......Fc
a560 49 6e 69 74 28 29 3b 00 00 00 35 20 20 46 63 50 61 74 74 65 72 6e 20 2a 70 61 74 20 3d 20 46 63 Init();...5..FcPattern.*pat.=.Fc
a580 4e 61 6d 65 50 61 72 73 65 28 28 46 63 43 68 61 72 38 20 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b NameParse((FcChar8.*)FONT_NAME);
a5a0 00 00 00 30 20 20 46 63 43 6f 6e 66 69 67 53 75 62 73 74 69 74 75 74 65 28 4e 55 4c 4c 2c 20 70 ...0..FcConfigSubstitute(NULL,.p
a5c0 61 74 2c 20 46 63 4d 61 74 63 68 50 61 74 74 65 72 6e 29 3b 00 00 00 1b 20 20 46 63 44 65 66 61 at,.FcMatchPattern);......FcDefa
a5e0 75 6c 74 53 75 62 73 74 69 74 75 74 65 28 70 61 74 29 3b 00 00 00 0f 20 20 46 63 52 65 73 75 6c ultSubstitute(pat);......FcResul
a600 74 20 72 65 73 3b 00 00 00 32 20 20 46 63 50 61 74 74 65 72 6e 20 2a 6d 61 74 63 68 20 3d 20 46 t.res;...2..FcPattern.*match.=.F
a620 63 46 6f 6e 74 4d 61 74 63 68 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 26 72 65 73 29 3b 00 00 00 18 cFontMatch(NULL,.pat,.&res);....
a640 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 70 61 74 29 3b 00 00 00 0d 20 20 69 66 ..FcPatternDestroy(pat);......if
a660 20 28 21 6d 61 74 63 68 29 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 .(!match)........return.false;..
a680 00 17 20 20 46 63 43 68 61 72 38 20 2a 70 61 74 68 20 3d 20 4e 55 4c 4c 3b 00 00 00 46 20 20 69 ....FcChar8.*path.=.NULL;...F..i
a6a0 66 20 28 46 63 50 61 74 74 65 72 6e 47 65 74 53 74 72 69 6e 67 28 6d 61 74 63 68 2c 20 46 43 5f f.(FcPatternGetString(match,.FC_
a6c0 46 49 4c 45 2c 20 30 2c 20 26 70 61 74 68 29 20 21 3d 20 46 63 52 65 73 75 6c 74 4d 61 74 63 68 FILE,.0,.&path).!=.FcResultMatch
a6e0 29 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 ).{........FcPatternDestroy(matc
a700 68 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 h);........return.false;......}.
a720 00 00 22 20 20 69 66 20 28 46 54 5f 49 6e 69 74 5f 46 72 65 65 54 79 70 65 28 26 66 74 5f 6c 69 .."..if.(FT_Init_FreeType(&ft_li
a740 62 29 29 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 b)).{........FcPatternDestroy(ma
a760 74 63 68 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 tch);........return.false;......
a780 7d 00 00 00 3d 20 20 69 66 20 28 46 54 5f 4e 65 77 5f 46 61 63 65 28 66 74 5f 6c 69 62 2c 20 28 }...=..if.(FT_New_Face(ft_lib,.(
a7a0 63 6f 6e 73 74 20 63 68 61 72 20 2a 29 70 61 74 68 2c 20 30 2c 20 26 66 74 5f 66 61 63 65 29 29 const.char.*)path,.0,.&ft_face))
a7c0 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 .{........FcPatternDestroy(match
a7e0 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 );........return.false;......}..
a800 00 1a 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 ....FcPatternDestroy(match);....
a820 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 ..update_font_metrics();......re
a840 74 75 72 6e 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f turn.true;....}.......Fstatic.vo
a860 69 64 20 70 73 65 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 id.pset(void.*px,.int.pw,.int.ph
a880 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 ,.int.x,.int.y,.uint32_t.c).{...
a8a0 2b 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 70 +..if.(x.>=.0.&&.y.>=.0.&&.x.<.p
a8c0 77 20 26 26 20 79 20 3c 20 70 68 29 00 00 00 25 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a w.&&.y.<.ph)...%....((uint32_t.*
a8e0 29 70 78 29 5b 79 20 2a 20 70 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 )px)[y.*.pw.+.x].=.c;....}......
a900 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 66 72 65 63 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e .Gstatic.void.frect(void.*px,.in
a920 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 t.pw,.int.ph,.int.x,.int.y,.int.
a940 77 2c 20 69 6e 74 20 68 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 w,.int.h,......................u
a960 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 64 79 20 3d 20 int32_t.c).{......for.(int.dy.=.
a980 30 3b 20 64 79 20 3c 20 68 3b 20 64 79 2b 2b 29 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 0;.dy.<.h;.dy++)..."....for.(int
a9a0 20 64 78 20 3d 20 30 3b 20 64 78 20 3c 20 77 3b 20 64 78 2b 2b 29 00 00 00 2a 20 20 20 20 20 20 .dx.=.0;.dx.<.w;.dx++)...*......
a9c0 70 73 65 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 20 2b 20 64 78 2c 20 79 20 2b 20 64 79 2c pset(px,.pw,.ph,.x.+.dx,.y.+.dy,
a9e0 20 63 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 62 70 69 .c);....}.......Estatic.void.bpi
aa00 78 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 x(void.*px,.int.pw,.int.ph,.int.
aa20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 66 67 2c 00 00 00 1d 20 20 20 20 20 20 x,.int.y,.uint32_t.fg,..........
aa40 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 29 20 7b 00 00 00 2b 20 20 69 66 20 ...........uint8_t.a).{...+..if.
aa60 28 78 20 3c 20 30 20 7c 7c 20 79 20 3c 20 30 20 7c 7c 20 78 20 3e 3d 20 70 77 20 7c 7c 20 79 20 (x.<.0.||.y.<.0.||.x.>=.pw.||.y.
aa80 3e 3d 20 70 68 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 30 20 20 75 69 6e 74 33 >=.ph)........return;...0..uint3
aaa0 32 5f 74 20 2a 64 73 74 20 3d 20 26 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 2a 2_t.*dst.=.&((uint32_t.*)px)[y.*
aac0 20 70 77 20 2b 20 78 5d 3b 00 00 00 15 20 20 75 69 6e 74 33 32 5f 74 20 62 67 20 3d 20 2a 64 73 .pw.+.x];......uint32_t.bg.=.*ds
aae0 74 3b 00 00 00 4d 20 20 75 69 6e 74 33 32 5f 74 20 72 20 3d 20 28 28 66 67 20 3e 3e 20 31 36 20 t;...M..uint32_t.r.=.((fg.>>.16.
ab00 26 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 67 20 3e 3e 20 31 36 20 26 20 30 78 46 46 29 20 &.0xFF).*.a.+.(bg.>>.16.&.0xFF).
ab20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 35 3b 00 00 00 4b 20 20 75 69 6e 74 33 32 5f *.(255.-.a))./.255;...K..uint32_
ab40 74 20 67 20 3d 20 28 28 66 67 20 3e 3e 20 38 20 26 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 t.g.=.((fg.>>.8.&.0xFF).*.a.+.(b
ab60 67 20 3e 3e 20 38 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 g.>>.8.&.0xFF).*.(255.-.a))./.25
ab80 35 3b 00 00 00 41 20 20 75 69 6e 74 33 32 5f 74 20 62 20 3d 20 28 28 66 67 20 26 20 30 78 46 46 5;...A..uint32_t.b.=.((fg.&.0xFF
aba0 29 20 2a 20 61 20 2b 20 28 62 67 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 ).*.a.+.(bg.&.0xFF).*.(255.-.a))
abc0 20 2f 20 32 35 35 3b 00 00 00 2f 20 20 2a 64 73 74 20 3d 20 30 78 46 46 30 30 30 30 30 30 20 7c ./.255;.../..*dst.=.0xFF000000.|
abe0 20 28 72 20 3c 3c 20 31 36 29 20 7c 20 28 67 20 3c 3c 20 38 29 20 7c 20 62 3b 00 00 00 01 7d 00 .(r.<<.16).|.(g.<<.8).|.b;....}.
ac00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 67 6c 79 70 68 28 76 6f 69 64 20 2a ......Istatic.void.dglyph(void.*
ac20 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 px,.int.pw,.int.ph,.int.cx,.int.
ac40 63 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 70 2c 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 cy,.uint32_t.cp,...$............
ac60 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2c 20 20 46 54 .......uint32_t.color).{...,..FT
ac80 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 20 63 70 2c 20 46 54 5f 4c 4f 41 44 5f _Load_Char(ft_face,.cp,.FT_LOAD_
aca0 52 45 4e 44 45 52 29 3b 00 00 00 25 20 20 46 54 5f 47 6c 79 70 68 53 6c 6f 74 20 73 6c 6f 74 20 RENDER);...%..FT_GlyphSlot.slot.
acc0 3d 20 66 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 3b 00 00 00 20 20 20 46 54 5f 42 69 74 6d 61 70 =.ft_face->glyph;......FT_Bitmap
ace0 20 2a 62 6d 20 3d 20 26 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 3b 00 00 00 1d 20 20 69 6e 74 20 6f .*bm.=.&slot->bitmap;......int.o
ad00 78 20 3d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 6c 65 66 74 3b 00 00 00 2c 20 20 69 6e 74 20 x.=.slot->bitmap_left;...,..int.
ad20 6f 79 20 3d 20 63 79 20 2b 20 61 73 63 65 6e 64 65 72 20 2d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 oy.=.cy.+.ascender.-.slot->bitma
ad40 70 5f 74 6f 70 3b 00 00 00 2f 20 20 66 6f 72 20 28 69 6e 74 20 72 6f 77 20 3d 20 30 3b 20 72 6f p_top;.../..for.(int.row.=.0;.ro
ad60 77 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 72 6f 77 73 3b 20 72 6f 77 2b 2b 29 00 00 00 34 20 20 20 w.<.(int)bm->rows;.row++)...4...
ad80 20 66 6f 72 20 28 69 6e 74 20 63 6f 6c 20 3d 20 30 3b 20 63 6f 6c 20 3c 20 28 69 6e 74 29 62 6d .for.(int.col.=.0;.col.<.(int)bm
ada0 2d 3e 77 69 64 74 68 3b 20 63 6f 6c 2b 2b 29 20 7b 00 00 00 35 20 20 20 20 20 20 75 69 6e 74 38 ->width;.col++).{...5......uint8
adc0 5f 74 20 61 76 20 3d 20 62 6d 2d 3e 62 75 66 66 65 72 5b 72 6f 77 20 2a 20 62 6d 2d 3e 70 69 74 _t.av.=.bm->buffer[row.*.bm->pit
ade0 63 68 20 2b 20 63 6f 6c 5d 3b 00 00 00 0d 20 20 20 20 20 20 69 66 20 28 61 76 29 00 00 00 3d 20 ch.+.col];..........if.(av)...=.
ae00 20 20 20 20 20 20 20 62 70 69 78 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 63 78 20 2b 20 6f 78 20 .......bpix(px,.pw,.ph,.cx.+.ox.
ae20 2b 20 63 6f 6c 2c 20 6f 79 20 2b 20 72 6f 77 2c 20 63 6f 6c 6f 72 2c 20 61 76 29 3b 00 00 00 05 +.col,.oy.+.row,.color,.av);....
ae40 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 ....}....}.......Gstatic.void.ds
ae60 74 72 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 tr(void.*px,.int.pw,.int.ph,.int
ae80 20 78 2c 20 69 6e 74 20 79 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 00 00 00 22 20 20 20 .x,.int.y,.const.char.*s,..."...
aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 ..............uint32_t.color).{.
aec0 00 00 2f 20 20 66 6f 72 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 20 3d 20 73 3b 20 2a 70 3b ../..for.(const.char.*p.=.s;.*p;
aee0 20 70 2b 2b 2c 20 78 20 2b 3d 20 63 65 6c 6c 5f 77 29 00 00 00 37 20 20 20 20 64 67 6c 79 70 68 .p++,.x.+=.cell_w)...7....dglyph
af00 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 (px,.pw,.ph,.x,.y,.(unsigned.cha
af20 72 29 2a 70 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 r)*p,.color);....}.......Astatic
af40 20 69 6e 74 20 73 70 77 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29 20 7b 20 72 65 74 75 72 6e .int.spw(const.char.*s).{.return
af60 20 28 69 6e 74 29 73 74 72 6c 65 6e 28 73 29 20 2a 20 63 65 6c 6c 5f 77 3b 20 7d 00 00 00 00 00 .(int)strlen(s).*.cell_w;.}.....
af80 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 6b 65 5f 73 68 6d 28 73 74 72 75 63 74 20 ..Kstatic.void.*make_shm(struct.
afa0 61 70 70 20 2a 61 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f app.*a,.int.w,.int.h,.struct.wl_
afc0 62 75 66 66 65 72 20 2a 2a 6f 62 75 66 2c 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 buffer.**obuf,...$..............
afe0 20 20 20 20 20 20 20 20 73 69 7a 65 5f 74 20 2a 6f 73 7a 29 20 7b 00 00 00 20 20 20 73 69 7a 65 ........size_t.*osz).{......size
b000 5f 74 20 73 7a 20 3d 20 28 73 69 7a 65 5f 74 29 77 20 2a 20 68 20 2a 20 34 3b 00 00 00 23 20 20 _t.sz.=.(size_t)w.*.h.*.4;...#..
b020 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 58 58 58 58 58 58 22 char.t[].=."/tmp/wayland-XXXXXX"
b040 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0c 20 ;......int.fd.=.mkstemp(t);.....
b060 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 28 20 20 69 66 20 28 66 64 20 3c 20 30 20 7c 7c 20 66 .unlink(t);...(..if.(fd.<.0.||.f
b080 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 7a 29 20 3c 20 30 29 20 7b 00 00 00 12 20 20 20 20 70 truncate(fd,.sz).<.0).{........p
b0a0 65 72 72 6f 72 28 22 73 68 6d 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 error("shm");........exit(1);...
b0c0 03 20 20 7d 00 00 00 47 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 ...}...G..void.*px.=.mmap(NULL,.
b0e0 73 7a 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f sz,.PROT_READ.|.PROT_WRITE,.MAP_
b100 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 19 20 20 69 66 20 28 70 78 20 3d 3d 20 4d SHARED,.fd,.0);......if.(px.==.M
b120 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 AP_FAILED).{........perror("mmap
b140 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 40 20 20 ");........exit(1);......}...@..
b160 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 struct.wl_shm_pool.*pool.=.wl_sh
b180 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 7a 29 3b 00 00 m_create_pool(a->shm,.fd,.sz);..
b1a0 00 09 20 20 2a 6f 62 75 66 20 3d 00 00 00 4e 20 20 20 20 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c ....*obuf.=...N......wl_shm_pool
b1c0 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 2c 20 68 2c 20 77 20 _create_buffer(pool,.0,.w,.h,.w.
b1e0 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 *.4,.WL_SHM_FORMAT_ARGB8888);...
b200 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 ...wl_shm_pool_destroy(pool);...
b220 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0a 20 20 69 66 20 28 6f 73 7a 29 00 00 00 0e 20 ...close(fd);......if.(osz).....
b240 20 20 20 2a 6f 73 7a 20 3d 20 73 7a 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 70 78 3b 00 00 00 ...*osz.=.sz;......return.px;...
b260 01 7d 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 69 6e 74 20 62 61 72 5f 79 28 73 74 72 75 63 .}.......8static.int.bar_y(struc
b280 74 20 61 70 70 20 2a 61 29 20 7b 20 72 65 74 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b t.app.*a).{.return.a->h.-.BAR_H;
b2a0 20 7d 00 00 00 39 73 74 61 74 69 63 20 69 6e 74 20 74 65 78 74 5f 68 28 73 74 72 75 63 74 20 61 .}...9static.int.text_h(struct.a
b2c0 70 70 20 2a 61 29 20 7b 20 72 65 74 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 pp.*a).{.return.a->h.-.BAR_H;.}.
b2e0 00 00 00 00 00 00 19 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 78 28 69 6e 74 20 69 29 20 7b .......static.int.btn_x(int.i).{
b300 00 00 00 0e 20 20 69 6e 74 20 78 20 3d 20 50 41 44 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 ......int.x.=.PAD;...(..const.ch
b320 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 ar.*lbls[].=.{"File",."Info"};..
b340 00 1d 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 69 3b 20 6a 2b 2b 29 00 ....for.(int.j.=.0;.j.<.i;.j++).
b360 00 00 24 20 20 20 20 78 20 2b 3d 20 73 70 77 28 6c 62 6c 73 5b 6a 5d 29 20 2b 20 42 54 4e 5f 50 ..$....x.+=.spw(lbls[j]).+.BTN_P
b380 41 44 20 2a 20 32 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 78 3b 00 00 00 01 7d 00 00 00 4f 73 AD.*.2;......return.x;....}...Os
b3a0 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 77 28 69 6e 74 20 69 29 20 7b 20 72 65 74 75 72 6e 20 tatic.int.btn_w(int.i).{.return.
b3c0 73 70 77 28 69 20 3d 3d 20 30 20 3f 20 22 46 69 6c 65 22 20 3a 20 22 49 6e 66 6f 22 29 20 2b 20 spw(i.==.0.?."File".:."Info").+.
b3e0 42 54 4e 5f 50 41 44 20 2a 20 32 3b 20 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 69 6e 74 BTN_PAD.*.2;.}.......+static.int
b400 20 64 69 68 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 63 65 6c 6c 5f 68 20 2b 20 38 3b 20 .dih(void).{.return.cell_h.+.8;.
b420 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 }.......#static.int.drop_total_h
b440 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 (MenuId.m).{...-..int.n.=.(m.==.
b460 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 MENU_FILE).?.N_FILE.:.N_INFO;...
b480 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d E..const.MenuItem.*items.=.(m.==
b4a0 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f .MENU_FILE).?.file_items.:.info_
b4c0 69 74 65 6d 73 3b 00 00 00 18 20 20 69 6e 74 20 68 20 3d 20 6e 20 2a 20 64 69 68 28 29 20 2b 20 items;......int.h.=.n.*.dih().+.
b4e0 34 3b 00 00 00 1d 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 4;......for.(int.i.=.0;.i.<.n;.i
b500 2b 2b 29 00 00 00 1b 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 ++)........if.(items[i].sep_afte
b520 72 29 00 00 00 0d 20 20 20 20 20 20 68 20 2b 3d 20 34 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 r)..........h.+=.4;......return.
b540 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 77 h;....}........static.int.drop_w
b560 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 10 20 20 69 6e 74 20 6d 61 78 77 20 3d 20 38 30 3b (MenuId.m).{......int.maxw.=.80;
b580 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f ...-..int.n.=.(m.==.MENU_FILE).?
b5a0 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e .N_FILE.:.N_INFO;...E..const.Men
b5c0 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 uItem.*items.=.(m.==.MENU_FILE).
b5e0 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 1f 20 20 ?.file_items.:.info_items;......
b600 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 for.(int.i.=.0;.i.<.n;.i++).{...
b620 2e 20 20 20 20 69 6e 74 20 77 20 3d 20 73 70 77 28 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 29 .....int.w.=.spw(items[i].label)
b640 20 2b 20 42 54 4e 5f 50 41 44 20 2a 20 32 3b 00 00 00 11 20 20 20 20 69 66 20 28 77 20 3e 20 6d .+.BTN_PAD.*.2;........if.(w.>.m
b660 61 78 77 29 00 00 00 0f 20 20 20 20 20 20 6d 61 78 77 20 3d 20 77 3b 00 00 00 03 20 20 7d 00 00 axw)..........maxw.=.w;......}..
b680 00 0e 20 20 72 65 74 75 72 6e 20 6d 61 78 77 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 ....return.maxw;....}.......5sta
b6a0 74 69 63 20 69 6e 74 20 69 74 65 6d 5f 61 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d tic.int.item_at(struct.app.*a,.M
b6c0 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 6d 79 29 20 7b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d enuId.m,.int.my).{......int.by.=
b6e0 20 62 61 72 5f 79 28 61 29 3b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 .bar_y(a);...-..int.n.=.(m.==.ME
b700 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 NU_FILE).?.N_FILE.:.N_INFO;...E.
b720 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d .const.MenuItem.*items.=.(m.==.M
b740 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 ENU_FILE).?.file_items.:.info_it
b760 65 6d 73 3b 00 00 00 24 20 20 69 6e 74 20 69 79 20 3d 20 62 79 20 2d 20 64 72 6f 70 5f 74 6f 74 ems;...$..int.iy.=.by.-.drop_tot
b780 61 6c 5f 68 28 6d 29 20 2b 20 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 al_h(m).+.4;......for.(int.i.=.0
b7a0 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 6d 79 20 3e 3d ;.i.<.n;.i++).{...$....if.(my.>=
b7c0 20 69 79 20 26 26 20 6d 79 20 3c 20 69 79 20 2b 20 64 69 68 28 29 29 00 00 00 0f 20 20 20 20 20 .iy.&&.my.<.iy.+.dih()).........
b7e0 20 72 65 74 75 72 6e 20 69 3b 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 .return.i;........iy.+=.dih();..
b800 00 1b 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 00 00 00 ......if.(items[i].sep_after)...
b820 0e 20 20 20 20 20 20 69 79 20 2b 3d 20 34 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 .......iy.+=.4;......}......retu
b840 72 6e 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 rn.-1;....}.......#static.void.d
b860 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 o_save(struct.app.*a);..."static
b880 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 23 .void.do_new(struct.app.*a);...#
b8a0 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a static.void.do_open(struct.app.*
b8c0 61 29 3b 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 a);...&static.void.open_about(st
b8e0 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 ruct.app.*a);..."static.void.red
b900 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 00 00 00 00 23 73 74 61 74 69 raw(struct.app.*a);.......#stati
b920 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 c.void.do_new(struct.app.*a).{..
b940 00 1f 20 20 6d 65 6d 73 65 74 28 74 65 78 74 2c 20 30 2c 20 73 69 7a 65 6f 66 20 74 65 78 74 29 ....memset(text,.0,.sizeof.text)
b960 3b 00 00 00 0b 20 20 74 6c 65 6e 20 3d 20 30 3b 00 00 00 0d 20 20 63 75 72 73 6f 72 20 3d 20 30 ;......tlen.=.0;......cursor.=.0
b980 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 15 20 20 66 69 6c ;......sel_anchor.=.-1;......fil
b9a0 65 70 61 74 68 5b 30 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 epath[0].=.'\0';......dirty.=.fa
b9c0 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f lse;....}.......$static.void.do_
b9e0 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 save(struct.app.*a).{......if.(!
ba00 66 69 6c 65 70 61 74 68 5b 30 5d 29 20 7b 00 00 00 23 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 filepath[0]).{...#....const.char
ba20 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 4b 20 20 20 20 73 6e 70 .*h.=.getenv("HOME");...K....snp
ba40 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c rintf(filepath,.sizeof.filepath,
ba60 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d ."%s/untitled.txt",.h.?.h.:."/tm
ba80 70 22 29 3b 00 00 00 03 20 20 7d 00 00 00 3e 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 66 p");......}...>..int.fd.=.open(f
baa0 69 6c 65 70 61 74 68 2c 20 4f 5f 57 52 4f 4e 4c 59 20 7c 20 4f 5f 43 52 45 41 54 20 7c 20 4f 5f ilepath,.O_WRONLY.|.O_CREAT.|.O_
bac0 54 52 55 4e 43 2c 20 30 36 34 34 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b TRUNC,.0644);......if.(fd.<.0).{
bae0 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 73 61 76 65 22 29 3b 00 00 00 0b 20 20 20 20 72 ........perror("save");........r
bb00 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 77 72 69 74 65 28 66 64 2c 20 74 65 78 eturn;......}......write(fd,.tex
bb20 74 2c 20 74 6c 65 6e 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 10 20 20 64 t,.tlen);......close(fd);......d
bb40 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 irty.=.false;....}.......$static
bb60 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 .void.do_open(struct.app.*a).{..
bb80 00 21 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 .!..const.char.*h.=.getenv("HOME
bba0 22 29 3b 00 00 00 12 20 20 63 68 61 72 20 70 61 74 68 5b 34 30 39 36 5d 3b 00 00 00 41 20 20 73 ");......char.path[4096];...A..s
bbc0 6e 70 72 69 6e 74 66 28 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 70 61 74 68 2c 20 22 25 73 2f 75 nprintf(path,.sizeof.path,."%s/u
bbe0 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 ntitled.txt",.h.?.h.:."/tmp");..
bc00 00 20 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 70 61 74 68 2c 20 4f 5f 52 44 4f 4e 4c 59 ....int.fd.=.open(path,.O_RDONLY
bc20 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 );......if.(fd.<.0)........retur
bc40 6e 3b 00 00 00 2b 20 20 73 73 69 7a 65 5f 74 20 6e 20 3d 20 72 65 61 64 28 66 64 2c 20 74 65 78 n;...+..ssize_t.n.=.read(fd,.tex
bc60 74 2c 20 4d 41 58 5f 54 45 58 54 20 2d 20 31 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 t,.MAX_TEXT.-.1);......close(fd)
bc80 3b 00 00 00 0c 20 20 69 66 20 28 6e 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b ;......if.(n.<.0)........return;
bca0 00 00 00 10 20 20 74 6c 65 6e 20 3d 20 28 69 6e 74 29 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 ......tlen.=.(int)n;......text[t
bcc0 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 63 75 72 73 6f 72 20 3d 20 74 6c 65 6e 3b len].=.'\0';......cursor.=.tlen;
bce0 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 32 20 20 73 6e 70 72 ......sel_anchor.=.-1;...2..snpr
bd00 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 intf(filepath,.sizeof.filepath,.
bd20 22 25 73 22 2c 20 70 61 74 68 29 3b 00 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b "%s",.path);......dirty.=.false;
bd40 00 00 00 01 7d 00 00 00 00 00 00 00 39 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 ....}.......9static.void.fire_it
bd60 65 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 em(struct.app.*a,.MenuId.m,.int.
bd80 69 64 78 29 20 7b 00 00 00 1b 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f idx).{......a->open_menu.=.MENU_
bda0 4e 4f 4e 45 3b 00 00 00 17 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b NONE;......a->hovered_item.=.-1;
bdc0 00 00 00 17 20 20 69 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 7b 00 00 00 12 20 ......if.(m.==.MENU_FILE).{.....
bde0 20 20 20 73 77 69 74 63 68 20 28 69 64 78 29 20 7b 00 00 00 0b 20 20 20 20 63 61 73 65 20 30 3a ...switch.(idx).{........case.0:
be00 00 00 00 10 20 20 20 20 20 20 64 6f 5f 6e 65 77 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 ..........do_new(a);..........br
be20 65 61 6b 3b 00 00 00 0b 20 20 20 20 63 61 73 65 20 31 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f eak;........case.1:..........do_
be40 6f 70 65 6e 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0b 20 20 20 20 open(a);..........break;........
be60 63 61 73 65 20 32 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0c case.2:..........do_save(a);....
be80 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 20 33 3a 20 7b 00 00 00 ......break;........case.3:.{...
bea0 25 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 %......const.char.*h.=.getenv("H
bec0 4f 4d 45 22 29 3b 00 00 00 4d 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 OME");...M......snprintf(filepat
bee0 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 h,.sizeof.filepath,."%s/untitled
bf00 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 00 11 20 20 20 20 20 .txt",.h.?.h.:."/tmp");.........
bf20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 .do_save(a);..........break;....
bf40 20 20 20 20 7d 00 00 00 0b 20 20 20 20 63 61 73 65 20 34 3a 00 00 00 11 20 20 20 20 20 20 64 6f ....}........case.4:..........do
bf60 5f 73 61 76 65 28 61 29 3b 00 00 00 0e 20 20 20 20 20 20 65 78 69 74 28 30 29 3b 00 00 00 0b 20 _save(a);..........exit(0);.....
bf80 20 20 20 63 61 73 65 20 35 3a 00 00 00 0e 20 20 20 20 20 20 65 78 69 74 28 30 29 3b 00 00 00 05 ...case.5:..........exit(0);....
bfa0 20 20 20 20 7d 00 00 00 1e 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f ....}......}.else.if.(m.==.MENU_
bfc0 49 4e 46 4f 29 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 69 64 78 20 3d 3d 20 30 29 00 00 00 14 INFO).{........if.(idx.==.0)....
bfe0 20 20 20 20 20 20 6f 70 65 6e 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 ......open_about(a);......}.....
c000 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 .redraw(a);....}.......%static.v
c020 6f 69 64 20 64 72 61 77 5f 62 61 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 oid.draw_bar(struct.app.*a).{...
c040 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e ...void.*px.=.a->pixels;......in
c060 74 20 70 77 20 3d 20 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 t.pw.=.a->w,.ph.=.a->h;......int
c080 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 .by.=.bar_y(a);......frect(px,.p
c0a0 77 2c 20 70 68 2c 20 30 2c 20 62 79 2c 20 70 77 2c 20 42 41 52 5f 48 2c 20 42 41 52 5f 42 47 29 w,.ph,.0,.by,.pw,.BAR_H,.BAR_BG)
c0c0 3b 00 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 62 79 2c 20 ;...-..frect(px,.pw,.ph,.0,.by,.
c0e0 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 pw,.1,.SEP_COLOR);...(..const.ch
c100 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 ar.*lbls[].=.{"File",."Info"};..
c120 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 ....for.(int.i.=.0;.i.<.2;.i++).
c140 7b 00 00 00 25 20 20 20 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d {...%....int.bx.=.btn_x(i),.bw.=
c160 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 4c 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 61 2d 3e .btn_w(i);...L....bool.hov.=.a->
c180 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 mouse_y.>=.by.&&.a->mouse_x.>=.b
c1a0 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 3b 00 00 00 29 20 20 x.&&.a->mouse_x.<.bx.+.bw;...)..
c1c0 20 20 69 66 20 28 68 6f 76 20 7c 7c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 3d 20 28 4d 65 ..if.(hov.||.a->open_menu.==.(Me
c1e0 6e 75 49 64 29 69 29 00 00 00 3c 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 nuId)i)...<......frect(px,.pw,.p
c200 68 2c 20 62 78 2c 20 62 79 20 2b 20 31 2c 20 62 77 2c 20 42 41 52 5f 48 20 2d 20 31 2c 20 42 54 h,.bx,.by.+.1,.bw,.BAR_H.-.1,.BT
c220 4e 5f 48 4f 56 29 3b 00 00 00 4f 20 20 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 N_HOV);...O....dstr(px,.pw,.ph,.
c240 62 78 20 2b 20 42 54 4e 5f 50 41 44 2c 20 62 79 20 2b 20 28 42 41 52 5f 48 20 2d 20 63 65 6c 6c bx.+.BTN_PAD,.by.+.(BAR_H.-.cell
c260 5f 68 29 20 2f 20 32 2c 20 6c 62 6c 73 5b 69 5d 2c 20 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 _h)./.2,.lbls[i],.BAR_FG);......
c280 7d 00 00 00 01 7d 00 00 00 00 00 00 00 30 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 }....}.......0static.void.draw_d
c2a0 72 6f 70 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 rop(struct.app.*a,.MenuId.m).{..
c2c0 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 ....void.*px.=.a->pixels;......i
c2e0 6e 74 20 70 77 20 3d 20 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 3a 20 20 69 6e nt.pw.=.a->w,.ph.=.a->h;...:..in
c300 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 2c 20 64 77 20 3d 20 64 72 6f 70 5f 77 28 6d 29 2c t.by.=.bar_y(a),.dw.=.drop_w(m),
c320 20 64 68 20 3d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 3b 00 00 00 27 20 20 69 6e 74 20 .dh.=.drop_total_h(m);...'..int.
c340 64 78 20 3d 20 62 74 6e 5f 78 28 28 69 6e 74 29 6d 29 2c 20 64 79 20 3d 20 62 79 20 2d 20 64 68 dx.=.btn_x((int)m),.dy.=.by.-.dh
c360 3b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 ;...-..int.n.=.(m.==.MENU_FILE).
c380 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 ?.N_FILE.:.N_INFO;...E..const.Me
c3a0 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 nuItem.*items.=.(m.==.MENU_FILE)
c3c0 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 00 00 .?.file_items.:.info_items;.....
c3e0 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 64 ..-..frect(px,.pw,.ph,.dx,.dy,.d
c400 77 2c 20 64 68 2c 20 44 52 4f 50 5f 42 47 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 w,.dh,.DROP_BG);......frect(px,.
c420 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 64 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 pw,.ph,.dx,.dy,.dw,.1,.SEP_COLOR
c440 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 );......frect(px,.pw,.ph,.dx,.dy
c460 2c 20 31 2c 20 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 37 20 20 66 72 65 63 74 28 ,.1,.dh,.SEP_COLOR);...7..frect(
c480 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 64 77 20 2d 20 31 2c 20 64 79 2c 20 31 2c 20 px,.pw,.ph,.dx.+.dw.-.1,.dy,.1,.
c4a0 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 37 20 20 66 72 65 63 74 28 70 78 2c 20 70 dh,.SEP_COLOR);...7..frect(px,.p
c4c0 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 20 2b 20 64 68 20 2d 20 31 2c 20 64 77 2c 20 31 2c 20 53 w,.ph,.dx,.dy.+.dh.-.1,.dw,.1,.S
c4e0 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 12 20 20 69 6e 74 20 69 79 20 3d 20 64 79 20 EP_COLOR);..........int.iy.=.dy.
c500 2b 20 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b +.4;......for.(int.i.=.0;.i.<.n;
c520 20 69 2b 2b 29 20 7b 00 00 00 26 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 28 61 2d 3e 68 6f .i++).{...&....bool.hov.=.(a->ho
c540 76 65 72 65 64 5f 69 74 65 6d 20 3d 3d 20 69 29 3b 00 00 00 0c 20 20 20 20 69 66 20 28 68 6f 76 vered_item.==.i);........if.(hov
c560 29 00 00 00 3d 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 )...=......frect(px,.pw,.ph,.dx.
c580 2b 20 31 2c 20 69 79 2c 20 64 77 20 2d 20 32 2c 20 64 69 68 28 29 2c 20 44 52 4f 50 5f 48 4f 56 +.1,.iy,.dw.-.2,.dih(),.DROP_HOV
c5a0 29 3b 00 00 00 4d 20 20 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 );...M....dstr(px,.pw,.ph,.dx.+.
c5c0 42 54 4e 5f 50 41 44 2c 20 69 79 20 2b 20 28 64 69 68 28 29 20 2d 20 63 65 6c 6c 5f 68 29 20 2f BTN_PAD,.iy.+.(dih().-.cell_h)./
c5e0 20 32 2c 20 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 .2,.items[i].label,...:.........
c600 68 6f 76 20 3f 20 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 48 4f 56 5f 46 47 20 3a 20 28 75 hov.?.(uint32_t)DROP_HOV_FG.:.(u
c620 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 46 47 29 3b 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 int32_t)DROP_FG);........iy.+=.d
c640 69 68 28 29 3b 00 00 00 1d 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 ih();........if.(items[i].sep_af
c660 74 65 72 29 20 7b 00 00 00 3a 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 ter).{...:......frect(px,.pw,.ph
c680 2c 20 64 78 20 2b 20 34 2c 20 69 79 2c 20 64 77 20 2d 20 38 2c 20 31 2c 20 53 45 50 5f 43 4f 4c ,.dx.+.4,.iy,.dw.-.8,.1,.SEP_COL
c6a0 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 69 79 20 2b 3d 20 34 3b 00 00 00 05 20 20 20 20 7d 00 OR);..........iy.+=.4;........}.
c6c0 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 .....}....}.......#static.void.r
c6e0 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 17 20 20 76 6f 69 64 edraw(struct.app.*a).{......void
c700 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 .*px.=.a->pixels;......int.pw.=.
c720 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 16 20 20 69 6e 74 20 74 61 68 20 3d 20 a->w,.ph.=.a->h;......int.tah.=.
c740 74 65 78 74 5f 68 28 61 29 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 text_h(a);...#..for.(int.i.=.0;.
c760 69 20 3c 20 70 77 20 2a 20 70 68 3b 20 69 2b 2b 29 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 i.<.pw.*.ph;.i++)...#....((uint3
c780 32 5f 74 20 2a 29 70 78 29 5b 69 5d 20 3d 20 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 00 00 00 00 1f 2_t.*)px)[i].=.BG_COLOR;........
c7a0 20 20 69 6e 74 20 73 65 6c 5f 6c 6f 20 3d 20 2d 31 2c 20 73 65 6c 5f 68 69 20 3d 20 2d 31 3b 00 ..int.sel_lo.=.-1,.sel_hi.=.-1;.
c7c0 00 00 18 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 20 7b 00 00 00 37 20 .....if.(sel_anchor.>=.0).{...7.
c7e0 20 20 20 73 65 6c 5f 6c 6f 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 ...sel_lo.=.sel_anchor.<.cursor.
c800 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b 00 00 00 37 20 20 20 20 73 65 ?.sel_anchor.:.cursor;...7....se
c820 6c 5f 68 69 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 63 75 72 l_hi.=.sel_anchor.<.cursor.?.cur
c840 73 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 3b 00 00 00 03 20 20 7d 00 00 00 17 20 20 69 6e sor.:.sel_anchor;......}......in
c860 74 20 63 6f 6c 20 3d 20 30 2c 20 72 6f 77 20 3d 20 30 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e t.col.=.0,.row.=.0;...#..for.(in
c880 74 20 69 20 3d 20 30 3b 20 69 20 3c 3d 20 74 6c 65 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 t.i.=.0;.i.<=.tlen;.i++).{...7..
c8a0 20 20 69 6e 74 20 78 20 3d 20 50 41 44 20 2b 20 63 6f 6c 20 2a 20 63 65 6c 6c 5f 77 2c 20 79 20 ..int.x.=.PAD.+.col.*.cell_w,.y.
c8c0 3d 20 50 41 44 20 2b 20 72 6f 77 20 2a 20 63 65 6c 6c 5f 68 3b 00 00 00 19 20 20 20 20 69 66 20 =.PAD.+.row.*.cell_h;........if.
c8e0 28 79 20 2b 20 63 65 6c 6c 5f 68 20 3e 20 74 61 68 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 (y.+.cell_h.>.tah)..........brea
c900 6b 3b 00 00 00 3a 20 20 20 20 62 6f 6f 6c 20 69 6e 73 20 3d 20 73 65 6c 5f 6c 6f 20 3e 3d 20 30 k;...:....bool.ins.=.sel_lo.>=.0
c920 20 26 26 20 69 20 3e 3d 20 73 65 6c 5f 6c 6f 20 26 26 20 69 20 3c 20 73 65 6c 5f 68 69 20 26 26 .&&.i.>=.sel_lo.&&.i.<.sel_hi.&&
c940 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 20 3e 3d 20 74 6c 65 6e 20 7c 7c ...................(i.>=.tlen.||
c960 20 74 65 78 74 5b 69 5d 20 21 3d 20 27 5c 6e 27 29 3b 00 00 00 0c 20 20 20 20 69 66 20 28 69 6e .text[i].!=.'\n');........if.(in
c980 73 29 00 00 00 39 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c s)...9......frect(px,.pw,.ph,.x,
c9a0 20 79 2c 20 63 65 6c 6c 5f 77 2c 20 63 65 6c 6c 5f 68 2c 20 53 45 4c 5f 43 4f 4c 4f 52 29 3b 00 .y,.cell_w,.cell_h,.SEL_COLOR);.
c9c0 00 00 14 20 20 20 20 69 66 20 28 69 20 3d 3d 20 63 75 72 73 6f 72 29 00 00 00 34 20 20 20 20 20 .......if.(i.==.cursor)...4.....
c9e0 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 32 2c 20 63 65 6c 6c .frect(px,.pw,.ph,.x,.y,.2,.cell
ca00 5f 68 2c 20 43 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 00 13 20 20 20 20 69 66 20 28 69 20 3c 20 74 _h,.CUR_COLOR);........if.(i.<.t
ca20 6c 65 6e 29 20 7b 00 00 00 1c 20 20 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 20 3d 3d 20 27 len).{..........if.(text[i].==.'
ca40 5c 6e 27 29 20 7b 00 00 00 10 20 20 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 0e 20 20 \n').{............col.=.0;......
ca60 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 0e 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 ......row++;..........}.else.{..
ca80 00 24 20 20 20 20 20 20 20 20 69 66 20 28 78 20 2b 20 63 65 6c 6c 5f 77 20 3e 20 70 77 20 2d 20 .$........if.(x.+.cell_w.>.pw.-.
caa0 50 41 44 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 10 PAD).{..............col.=.0;....
cac0 20 20 20 20 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 78 20 ..........row++;..............x.
cae0 3d 20 50 41 44 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 79 20 3d 20 50 41 44 20 2b 20 72 6f =.PAD;...!..........y.=.PAD.+.ro
cb00 77 20 2a 20 63 65 6c 6c 5f 68 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1e 20 20 20 20 w.*.cell_h;............}........
cb20 20 20 20 20 69 66 20 28 79 20 2b 20 63 65 6c 6c 5f 68 20 3c 3d 20 74 61 68 29 00 00 00 3a 20 20 ....if.(y.+.cell_h.<=.tah)...:..
cb40 20 20 20 20 20 20 20 20 64 67 6c 79 70 68 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c ........dglyph(px,.pw,.ph,.x,.y,
cb60 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 74 65 78 74 5b 69 5d 2c 00 00 00 3e 20 20 20 20 .(unsigned.char)text[i],...>....
cb80 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 20 3f 20 28 75 69 6e 74 33 32 5f 74 29 53 45 4c .............ins.?.(uint32_t)SEL
cba0 5f 46 47 20 3a 20 28 75 69 6e 74 33 32 5f 74 29 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 _FG.:.(uint32_t)FG_COLOR);......
cbc0 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d ......col++;..........}........}
cbe0 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0e 20 20 64 72 61 77 5f 62 61 72 28 61 29 3b 00 00 00 ......}..........draw_bar(a);...
cc00 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 ...if.(a->open_menu.!=.MENU_NONE
cc20 29 00 00 00 1f 20 20 20 20 64 72 61 77 5f 64 72 6f 70 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 )........draw_drop(a,.a->open_me
cc40 6e 75 29 3b 00 00 00 00 00 00 00 30 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f nu);.......0..wl_surface_damage_
cc60 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 70 77 2c 20 70 68 29 3b 00 00 00 29 buffer(a->ws,.0,.0,.pw,.ph);...)
cc80 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 ..wl_surface_attach(a->ws,.a->bu
cca0 66 2c 20 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 f,.0,.0);......wl_surface_commit
ccc0 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 (a->ws);....}.......)static.void
cce0 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 .redraw_about(struct.app.*a).{..
cd00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b ....struct.popup.*p.=.&a->about;
cd20 00 00 00 1d 20 20 69 66 20 28 21 70 2d 3e 6f 70 65 6e 20 7c 7c 20 21 70 2d 3e 70 69 78 65 6c 73 ......if.(!p->open.||.!p->pixels
cd40 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d )........return;......void.*px.=
cd60 20 70 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 70 2d 3e 77 2c 20 .p->pixels;......int.pw.=.p->w,.
cd80 70 68 20 3d 20 70 2d 3e 68 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 ph.=.p->h;...#..for.(int.i.=.0;.
cda0 69 20 3c 20 70 77 20 2a 20 70 68 3b 20 69 2b 2b 29 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 i.<.pw.*.ph;.i++)...#....((uint3
cdc0 32 5f 74 20 2a 29 70 78 29 5b 69 5d 20 3d 20 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 2c 20 20 66 72 2_t.*)px)[i].=.BG_COLOR;...,..fr
cde0 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 30 2c 20 70 77 2c 20 31 2c 20 53 45 50 ect(px,.pw,.ph,.0,.0,.pw,.1,.SEP
ce00 5f 43 4f 4c 4f 52 29 3b 00 00 00 31 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 _COLOR);...1..frect(px,.pw,.ph,.
ce20 30 2c 20 70 68 20 2d 20 31 2c 20 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 0,.ph.-.1,.pw,.1,.SEP_COLOR);...
ce40 2c 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 30 2c 20 31 2c 20 70 68 ,..frect(px,.pw,.ph,.0,.0,.1,.ph
ce60 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 31 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c ,.SEP_COLOR);...1..frect(px,.pw,
ce80 20 70 68 2c 20 70 77 20 2d 20 31 2c 20 30 2c 20 31 2c 20 70 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 .ph,.pw.-.1,.0,.1,.ph,.SEP_COLOR
cea0 29 3b 00 00 00 00 00 00 00 12 20 20 69 6e 74 20 79 20 3d 20 50 41 44 20 2a 20 32 3b 00 00 00 49 );..........int.y.=.PAD.*.2;...I
cec0 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 ..dstr(px,.pw,.ph,.PAD.*.2,.y,."
cee0 77 6c 65 64 20 20 2d 20 20 77 61 79 6c 61 6e 64 20 74 65 78 74 20 65 64 69 74 6f 72 22 2c 20 46 wled..-..wayland.text.editor",.F
cf00 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 14 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 50 41 44 G_COLOR);......y.+=.cell_h.+.PAD
cf20 3b 00 00 00 3c 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 ;...<..frect(px,.pw,.ph,.PAD.*.2
cf40 2c 20 79 2c 20 70 77 20 2d 20 50 41 44 20 2a 20 34 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 ,.y,.pw.-.PAD.*.4,.1,.SEP_COLOR)
cf60 3b 00 00 00 0b 20 20 79 20 2b 3d 20 50 41 44 3b 00 00 00 44 20 20 64 73 74 72 28 70 78 2c 20 70 ;......y.+=.PAD;...D..dstr(px,.p
cf80 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 4c 69 63 65 6e 73 65 64 20 75 6e 64 w,.ph,.PAD.*.2,.y,."Licensed.und
cfa0 65 72 20 47 50 4c 20 76 33 2e 30 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 12 20 20 79 20 er.GPL.v3.0",.FG_COLOR);......y.
cfc0 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 4d 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c +=.cell_h.+.6;...M..dstr(px,.pw,
cfe0 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 43 72 65 61 74 65 64 20 62 79 20 20 67 69 .ph,.PAD.*.2,.y,."Created.by..gi
d000 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 t.sr.ht/~coasteen/",.FG_COLOR);.
d020 00 00 12 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 46 20 20 64 73 74 72 28 .....y.+=.cell_h.+.6;...F..dstr(
d040 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 53 6f 75 72 63 65 3a px,.pw,.ph,.PAD.*.2,.y,."Source:
d060 20 20 20 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 77 6c 65 64 22 2c 00 .....git.sr.ht/~coasteen/wled",.
d080 00 00 11 20 20 20 20 20 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 30 20 20 77 6c ..........FG_COLOR);.......0..wl
d0a0 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 70 2d 3e 77 73 2c 20 30 2c _surface_damage_buffer(p->ws,.0,
d0c0 20 30 2c 20 70 77 2c 20 70 68 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 .0,.pw,.ph);...)..wl_surface_att
d0e0 61 63 68 28 70 2d 3e 77 73 2c 20 70 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 ach(p->ws,.p->buf,.0,.0);......w
d100 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 l_surface_commit(p->ws);....}...
d120 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 28 76 6f ....Lstatic.void.about_xs_cfg(vo
d140 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 id.*d,.struct.xdg_surface.*xs,.u
d160 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 int32_t.serial).{......struct.ap
d180 70 20 2a 61 20 3d 20 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d p.*a.=.d;......struct.popup.*p.=
d1a0 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b .&a->about;...(..xdg_surface_ack
d1c0 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 11 20 20 69 66 20 _configure(xs,.serial);......if.
d1e0 28 21 70 2d 3e 70 69 78 65 6c 73 29 00 00 00 42 20 20 20 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 (!p->pixels)...B....p->pixels.=.
d200 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 2c 20 26 70 2d 3e 62 75 66 2c make_shm(a,.p->w,.p->h,.&p->buf,
d220 20 26 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 17 20 20 70 2d 3e 63 6f 6e 66 69 .&p->pixels_size);......p->confi
d240 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 12 20 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 gured.=.true;......redraw_about(
d260 61 29 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 a);....}...Cstatic.const.struct.
d280 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 73 5f 6c 20 xdg_surface_listener.about_xs_l.
d2a0 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 =.{.configure.=...I.............
d2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 7d 3b 00 00 00 00 ..............about_xs_cfg};....
d300 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 ...Pstatic.void.about_xt_cfg(voi
d320 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 d.*d,.struct.xdg_toplevel.*xt,.i
d340 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 2f 20 20 20 20 20 20 20 20 nt32_t.w,.int32_t.h,.../........
d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 .................struct.wl_array
d380 20 2a 73 29 20 7b 7d 00 00 00 3e 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f .*s).{}...>static.void.about_xt_
d3a0 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 close(void.*d,.struct.xdg_toplev
d3c0 65 6c 20 2a 78 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 el.*xt).{......struct.app.*a.=.d
d3e0 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f ;......struct.popup.*p.=.&a->abo
d400 75 74 3b 00 00 00 0f 20 20 69 66 20 28 70 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c ut;......if.(p->buf).{........wl
d420 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 70 2d 3e 62 75 66 29 3b 00 00 00 12 20 20 20 20 _buffer_destroy(p->buf);........
d440 70 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 69 66 20 28 70 p->buf.=.NULL;......}......if.(p
d460 2d 3e 70 69 78 65 6c 73 29 20 7b 00 00 00 26 20 20 20 20 6d 75 6e 6d 61 70 28 70 2d 3e 70 69 78 ->pixels).{...&....munmap(p->pix
d480 65 6c 73 2c 20 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 15 20 20 20 20 70 2d 3e els,.p->pixels_size);........p->
d4a0 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 pixels.=.NULL;......}......if.(p
d4c0 2d 3e 78 74 29 20 7b 00 00 00 20 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 ->xt).{........xdg_toplevel_dest
d4e0 72 6f 79 28 70 2d 3e 78 74 29 3b 00 00 00 11 20 20 20 20 70 2d 3e 78 74 20 3d 20 4e 55 4c 4c 3b roy(p->xt);........p->xt.=.NULL;
d500 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 78 73 29 20 7b 00 00 00 1f 20 20 20 ......}......if.(p->xs).{.......
d520 20 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 73 29 3b 00 00 00 11 .xdg_surface_destroy(p->xs);....
d540 20 20 20 20 70 2d 3e 78 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 ....p->xs.=.NULL;......}......if
d560 20 28 70 2d 3e 77 73 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 .(p->ws).{........wl_surface_des
d580 74 72 6f 79 28 70 2d 3e 77 73 29 3b 00 00 00 11 20 20 20 20 70 2d 3e 77 73 20 3d 20 4e 55 4c 4c troy(p->ws);........p->ws.=.NULL
d5a0 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 66 61 6c 73 65 3b 00 00 ;......}......p->open.=.false;..
d5c0 00 18 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 ....p->configured.=.false;....}.
d5e0 00 00 38 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 ..8static.const.struct.xdg_tople
d600 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 74 5f 6c 20 3d 20 7b 00 00 00 38 20 vel_listener.about_xt_l.=.{...8.
d620 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 2c 20 2e 63 ....configure.=.about_xt_cfg,..c
d640 6c 6f 73 65 20 3d 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 27 73 lose.=.about_xt_close};.......'s
d660 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 tatic.void.open_about(struct.app
d680 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 .*a).{......struct.popup.*p.=.&a
d6a0 2d 3e 61 62 6f 75 74 3b 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 6f 70 65 6e 29 00 00 00 0b 20 20 ->about;......if.(p->open)......
d6c0 20 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 69 6e 74 20 6c 69 6e 65 73 20 3d 20 35 3b 00 00 00 ..return;......int.lines.=.5;...
d6e0 1f 20 20 70 2d 3e 77 20 3d 20 32 32 20 2a 20 63 65 6c 6c 5f 77 20 2b 20 50 41 44 20 2a 20 34 3b ...p->w.=.22.*.cell_w.+.PAD.*.4;
d700 00 00 00 31 20 20 70 2d 3e 68 20 3d 20 6c 69 6e 65 73 20 2a 20 28 63 65 6c 6c 5f 68 20 2b 20 36 ...1..p->h.=.lines.*.(cell_h.+.6
d720 29 20 2b 20 50 41 44 20 2a 20 34 20 2b 20 63 65 6c 6c 5f 68 3b 00 00 00 11 20 20 69 66 20 28 70 ).+.PAD.*.4.+.cell_h;......if.(p
d740 2d 3e 77 20 3c 20 33 36 30 29 00 00 00 0f 20 20 20 20 70 2d 3e 77 20 3d 20 33 36 30 3b 00 00 00 ->w.<.360)........p->w.=.360;...
d760 11 20 20 69 66 20 28 70 2d 3e 68 20 3c 20 31 34 30 29 00 00 00 0f 20 20 20 20 70 2d 3e 68 20 3d ...if.(p->h.<.140)........p->h.=
d780 20 31 34 30 3b 00 00 00 11 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 74 72 75 65 3b 00 00 00 30 20 20 .140;......p->open.=.true;...0..
d7a0 70 2d 3e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 p->ws.=.wl_compositor_create_sur
d7c0 66 61 63 65 28 61 2d 3e 63 6f 6d 70 29 3b 00 00 00 34 20 20 70 2d 3e 78 73 20 3d 20 78 64 67 5f face(a->comp);...4..p->xs.=.xdg_
d7e0 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2d 3e 77 6d 2c 20 70 wm_base_get_xdg_surface(a->wm,.p
d800 2d 3e 77 73 29 3b 00 00 00 32 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 ->ws);...2..xdg_surface_add_list
d820 65 6e 65 72 28 70 2d 3e 78 73 2c 20 26 61 62 6f 75 74 5f 78 73 5f 6c 2c 20 61 29 3b 00 00 00 2a ener(p->xs,.&about_xs_l,.a);...*
d840 20 20 70 2d 3e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 ..p->xt.=.xdg_surface_get_toplev
d860 65 6c 28 70 2d 3e 78 73 29 3b 00 00 00 33 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 el(p->xs);...3..xdg_toplevel_add
d880 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 74 2c 20 26 61 62 6f 75 74 5f 78 74 5f 6c 2c 20 61 29 _listener(p->xt,.&about_xt_l,.a)
d8a0 3b 00 00 00 2e 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 70 2d ;......xdg_toplevel_set_title(p-
d8c0 3e 78 74 2c 20 22 41 62 6f 75 74 20 77 6c 65 64 22 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 >xt,."About.wled");.../..xdg_top
d8e0 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 level_set_min_size(p->xt,.p->w,.
d900 70 2d 3e 68 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 p->h);.../..xdg_toplevel_set_max
d920 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 00 00 1b 20 20 77 _size(p->xt,.p->w,.p->h);......w
d940 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 l_surface_commit(p->ws);....}...
d960 00 00 00 00 50 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 73 74 61 72 74 28 76 6f 69 64 29 20 ....Pstatic.int.sel_start(void).
d980 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 73 {.return.sel_anchor.<.cursor.?.s
d9a0 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b 20 7d 00 00 00 1a 73 74 61 74 69 63 20 el_anchor.:.cursor;.}....static.
d9c0 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 76 6f 69 64 29 20 7b 00 00 00 49 20 20 72 65 74 75 72 6e 20 int.sel_len(void).{...I..return.
d9e0 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 2d 20 73 sel_anchor.<.cursor.?.cursor.-.s
da00 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 20 2d 20 63 75 72 73 6f 72 3b el_anchor.:.sel_anchor.-.cursor;
da20 00 00 00 01 7d 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 6c 65 74 65 5f ....}........static.void.delete_
da40 73 65 6c 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 sel(void).{......if.(sel_anchor.
da60 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 28 20 20 69 6e 74 20 6c 6f 20 <.0)........return;...(..int.lo.
da80 3d 20 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c 65 6e 20 3d 20 73 65 6c 5f 6c 65 6e 28 29 3b 00 =.sel_start(),.len.=.sel_len();.
daa0 00 00 37 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 6c 6f 2c 20 74 65 78 74 20 2b 20 6c ..7..memmove(text.+.lo,.text.+.l
dac0 6f 20 2b 20 6c 65 6e 2c 20 74 6c 65 6e 20 2d 20 6c 6f 20 2d 20 6c 65 6e 29 3b 00 00 00 0e 20 20 o.+.len,.tlen.-.lo.-.len);......
dae0 74 6c 65 6e 20 2d 3d 20 6c 65 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 tlen.-=.len;......text[tlen].=.'
db00 5c 30 27 3b 00 00 00 0e 20 20 63 75 72 73 6f 72 20 3d 20 6c 6f 3b 00 00 00 12 20 20 73 65 6c 5f \0';......cursor.=.lo;......sel_
db20 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 anchor.=.-1;....}.......)static.
db40 76 6f 69 64 20 69 6e 73 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 void.ins(const.char.*s,.int.len)
db60 20 7b 00 00 00 1d 20 20 69 66 20 28 74 6c 65 6e 20 2b 20 6c 65 6e 20 3e 3d 20 4d 41 58 5f 54 45 .{......if.(tlen.+.len.>=.MAX_TE
db80 58 54 29 00 00 00 1e 20 20 20 20 6c 65 6e 20 3d 20 4d 41 58 5f 54 45 58 54 20 2d 20 74 6c 65 6e XT)........len.=.MAX_TEXT.-.tlen
dba0 20 2d 20 31 3b 00 00 00 3d 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 .-.1;...=..memmove(text.+.cursor
dbc0 20 2b 20 6c 65 6e 2c 20 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 6c 65 6e 20 2d 20 63 75 .+.len,.text.+.cursor,.tlen.-.cu
dbe0 72 73 6f 72 29 3b 00 00 00 20 20 20 6d 65 6d 63 70 79 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 rsor);......memcpy(text.+.cursor
dc00 2c 20 73 2c 20 6c 65 6e 29 3b 00 00 00 0e 20 20 74 6c 65 6e 20 2b 3d 20 6c 65 6e 3b 00 00 00 14 ,.s,.len);......tlen.+=.len;....
dc20 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 63 75 72 73 6f 72 ..text[tlen].=.'\0';......cursor
dc40 20 2b 3d 20 6c 65 6e 3b 00 00 00 0f 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 00 01 7d .+=.len;......dirty.=.true;....}
dc60 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 63 6f 70 79 5f 73 65 6c 28 73 74 72 .......%static.void.copy_sel(str
dc80 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f uct.app.*a).{......if.(sel_ancho
dca0 72 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 28 20 20 69 6e 74 20 6c r.<.0)........return;...(..int.l
dcc0 6f 20 3d 20 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c 65 6e 20 3d 20 73 65 6c 5f 6c 65 6e 28 29 o.=.sel_start(),.len.=.sel_len()
dce0 3b 00 00 00 2a 20 20 69 66 20 28 6c 65 6e 20 3e 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 61 2d 3e ;...*..if.(len.>.(int)sizeof(a->
dd00 63 6c 69 70 62 6f 61 72 64 29 20 2d 20 31 29 00 00 00 23 20 20 20 20 6c 65 6e 20 3d 20 73 69 7a clipboard).-.1)...#....len.=.siz
dd20 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 20 2d 20 31 3b 00 00 00 27 20 20 6d 65 6d 63 eof(a->clipboard).-.1;...'..memc
dd40 70 79 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 74 65 78 74 20 2b 20 6c 6f 2c 20 6c 65 6e 29 py(a->clipboard,.text.+.lo,.len)
dd60 3b 00 00 00 1b 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5b 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b ;......a->clipboard[len].=.'\0';
dd80 00 00 00 19 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 20 3d 20 6c 65 6e 3b 00 00 00 ......a->clipboard_len.=.len;...
dda0 0e 20 20 69 66 20 28 61 2d 3e 64 73 29 20 7b 00 00 00 22 20 20 20 20 77 6c 5f 64 61 74 61 5f 73 ...if.(a->ds).{..."....wl_data_s
ddc0 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b 00 00 00 11 20 20 20 20 61 2d 3e ource_destroy(a->ds);........a->
dde0 64 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 66 20 28 21 61 2d 3e 64 ds.=.NULL;......}......if.(!a->d
de00 64 6d 20 7c 7c 20 21 61 2d 3e 64 64 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 3c dm.||.!a->dd)........return;...<
de20 20 20 61 2d 3e 64 73 20 3d 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 ..a->ds.=.wl_data_device_manager
de40 5f 63 72 65 61 74 65 5f 64 61 74 61 5f 73 6f 75 72 63 65 28 61 2d 3e 64 64 6d 29 3b 00 00 00 3a _create_data_source(a->ddm);...:
de60 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 ..wl_data_source_offer(a->ds,."t
de80 65 78 74 2f 70 6c 61 69 6e 3b 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 3b 00 00 00 2c 20 20 ext/plain;charset=utf-8");...,..
dea0 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 wl_data_source_offer(a->ds,."tex
dec0 74 2f 70 6c 61 69 6e 22 29 3b 00 00 00 2d 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f t/plain");...-..wl_data_source_o
dee0 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 55 54 46 38 5f 53 54 52 49 4e 47 22 29 3b 00 00 00 28 20 ffer(a->ds,."UTF8_STRING");...(.
df00 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 53 54 .wl_data_source_offer(a->ds,."ST
df20 52 49 4e 47 22 29 3b 00 00 00 3d 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 73 65 74 5f RING");...=..wl_data_device_set_
df40 73 65 6c 65 63 74 69 6f 6e 28 61 2d 3e 64 64 2c 20 61 2d 3e 64 73 2c 20 61 2d 3e 6c 61 73 74 5f selection(a->dd,.a->ds,.a->last_
df60 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 serial);....}.......6static.void
df80 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 75 69 6e 74 .process_key(struct.app.*a,.uint
dfa0 33 32 5f 74 20 6b 65 79 29 20 7b 00 00 00 14 20 20 69 66 20 28 21 61 2d 3e 78 6b 62 5f 73 74 61 32_t.key).{......if.(!a->xkb_sta
dfc0 74 65 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 1d 20 20 78 6b 62 5f 6b 65 79 63 te)........return;......xkb_keyc
dfe0 6f 64 65 5f 74 20 6b 63 20 3d 20 6b 65 79 20 2b 20 38 3b 00 00 00 41 20 20 78 6b 62 5f 6b 65 79 ode_t.kc.=.key.+.8;...A..xkb_key
e000 73 79 6d 5f 74 20 73 79 6d 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e sym_t.sym.=.xkb_state_key_get_on
e020 65 5f 73 79 6d 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 4a 20 20 69 6e e_sym(a->xkb_state,.kc);...J..in
e040 74 20 63 74 72 6c 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 t.ctrl.=.xkb_state_mod_name_is_a
e060 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 ctive(a->xkb_state,.XKB_MOD_NAME
e080 5f 43 54 52 4c 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _CTRL,...D......................
e0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f ....................XKB_STATE_MO
e0c0 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 4c 20 20 69 6e 74 20 73 68 69 66 74 20 3d 20 DS_EFFECTIVE);...L..int.shift.=.
e0e0 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e xkb_state_mod_name_is_active(a->
e100 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 53 48 49 46 54 2c 00 00 xkb_state,.XKB_MOD_NAME_SHIFT,..
e120 00 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .E..............................
e140 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 .............XKB_STATE_MODS_EFFE
e160 43 54 49 56 45 29 3b 00 00 00 49 20 20 78 6b 62 5f 6c 61 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 CTIVE);...I..xkb_layout_index_t.
e180 6c 61 79 6f 75 74 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 layout.=.xkb_state_key_get_layou
e1a0 74 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 19 20 20 63 6f 6e 73 74 20 t(a->xkb_state,.kc);......const.
e1c0 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 2a 62 73 3b 00 00 00 4e 20 20 69 6e 74 20 6e 20 3d 20 78 xkb_keysym_t.*bs;...N..int.n.=.x
e1e0 6b 62 5f 6b 65 79 6d 61 70 5f 6b 65 79 5f 67 65 74 5f 73 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 kb_keymap_key_get_syms_by_level(
e200 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 2c 20 6b 63 2c 20 6c 61 79 6f 75 74 2c 20 30 2c 20 26 62 a->xkb_keymap,.kc,.layout,.0,.&b
e220 73 29 3b 00 00 00 2b 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 70 6c 61 69 6e 20 3d 20 6e 20 s);...+..xkb_keysym_t.plain.=.n.
e240 3e 20 30 20 3f 20 62 73 5b 30 5d 20 3a 20 73 79 6d 3b 00 00 00 00 00 00 00 1e 20 20 69 66 20 28 >.0.?.bs[0].:.sym;..........if.(
e260 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 65 29 20 7b 00 00 00 24 20 20 20 20 sym.==.XKB_KEY_Escape).{...$....
e280 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b if.(a->open_menu.!=.MENU_NONE).{
e2a0 00 00 00 1f 20 20 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f ..........a->open_menu.=.MENU_NO
e2c0 4e 45 3b 00 00 00 1b 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d NE;..........a->hovered_item.=.-
e2e0 31 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 05 20 20 20 20 7d 00 1;..........redraw(a);........}.
e300 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 69 66 20 28 63 .......return;......}......if.(c
e320 74 72 6c 29 20 7b 00 00 00 3a 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b trl).{...:....if.(plain.==.XKB_K
e340 45 59 5f 65 71 75 61 6c 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 70 6c 75 EY_equal.||.plain.==.XKB_KEY_plu
e360 73 29 20 7b 00 00 00 10 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 2b 2b 3b 00 00 00 1c 20 20 20 20 s).{..........font_pt++;........
e380 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 10 20 20 20 20 ..update_font_metrics();........
e3a0 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 ..redraw(a);..........return;...
e3c0 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b .....}...!....if.(plain.==.XKB_K
e3e0 45 59 5f 6d 69 6e 75 73 29 20 7b 00 00 00 18 20 20 20 20 20 20 69 66 20 28 66 6f 6e 74 5f 70 74 EY_minus).{..........if.(font_pt
e400 20 3e 20 34 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 2d 2d 3b 00 00 00 .>.4).{............font_pt--;...
e420 1e 20 20 20 20 20 20 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 .........update_font_metrics();.
e440 00 00 12 20 20 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 07 20 20 20 20 20 20 7d ...........redraw(a);..........}
e460 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 ..........return;........}......
e480 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 30 29 20 7b 00 00 00 1a 20 ..if.(plain.==.XKB_KEY_0).{.....
e4a0 20 20 20 20 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 1c 20 20 20 .....font_pt.=.FONT_SIZE;.......
e4c0 20 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 10 20 20 20 ...update_font_metrics();.......
e4e0 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 ...redraw(a);..........return;..
e500 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f ......}...3....if.(plain.==.XKB_
e520 4b 45 59 5f 73 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 53 29 20 7b 00 00 KEY_s.||.plain.==.XKB_KEY_S).{..
e540 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 ........do_save(a);..........red
e560 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 raw(a);..........return;........
e580 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 61 20 }...3....if.(plain.==.XKB_KEY_a.
e5a0 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 41 29 20 7b 00 00 00 15 20 20 20 20 ||.plain.==.XKB_KEY_A).{........
e5c0 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 30 3b 00 00 00 14 20 20 20 20 20 20 63 75 72 73 6f ..sel_anchor.=.0;..........curso
e5e0 72 20 3d 20 74 6c 65 6e 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 r.=.tlen;..........redraw(a);...
e600 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 .......return;........}...3....i
e620 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 63 20 7c 7c 20 70 6c 61 69 6e 20 3d f.(plain.==.XKB_KEY_c.||.plain.=
e640 3d 20 58 4b 42 5f 4b 45 59 5f 43 29 20 7b 00 00 00 12 20 20 20 20 20 20 63 6f 70 79 5f 73 65 6c =.XKB_KEY_C).{..........copy_sel
e660 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 (a);..........return;........}..
e680 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 78 20 7c 7c 20 .3....if.(plain.==.XKB_KEY_x.||.
e6a0 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 58 29 20 7b 00 00 00 12 20 20 20 20 20 20 63 plain.==.XKB_KEY_X).{..........c
e6c0 6f 70 79 5f 73 65 6c 28 61 29 3b 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 opy_sel(a);..........delete_sel(
e6e0 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 );..........redraw(a);..........
e700 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 return;........}...3....if.(plai
e720 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 76 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b n.==.XKB_KEY_v.||.plain.==.XKB_K
e740 45 59 5f 56 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 EY_V).{..........if.(sel_anchor.
e760 3e 3d 20 30 29 00 00 00 15 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 >=.0)............delete_sel();..
e780 00 2a 20 20 20 20 20 20 69 6e 73 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 61 2d 3e 63 6c 69 .*......ins(a->clipboard,.a->cli
e7a0 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b pboard_len);..........redraw(a);
e7c0 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 ..........return;........}......
e7e0 7d 00 00 00 4b 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 7c }...K..if.(sym.==.XKB_KEY_Left.|
e800 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 7c 7c 20 73 79 6d 20 3d 3d |.sym.==.XKB_KEY_Right.||.sym.==
e820 20 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 20 7c 7c 00 00 00 1b 20 20 20 20 20 20 73 79 6d 20 3d 3d .XKB_KEY_Home.||..........sym.==
e840 20 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 73 68 69 66 74 .XKB_KEY_End).{........if.(shift
e860 20 26 26 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 00 00 1a 20 20 20 20 20 20 73 65 6c .&&.sel_anchor.<.0)..........sel
e880 5f 61 6e 63 68 6f 72 20 3d 20 63 75 72 73 6f 72 3b 00 00 00 14 20 20 20 20 65 6c 73 65 20 69 66 _anchor.=.cursor;........else.if
e8a0 20 28 21 73 68 69 66 74 29 00 00 00 16 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 .(!shift)..........sel_anchor.=.
e8c0 2d 31 3b 00 00 00 2a 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4c 65 -1;...*....if.(sym.==.XKB_KEY_Le
e8e0 66 74 20 26 26 20 63 75 72 73 6f 72 20 3e 20 30 29 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f ft.&&.cursor.>.0)..........curso
e900 72 2d 2d 3b 00 00 00 2e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 r--;........if.(sym.==.XKB_KEY_R
e920 69 67 68 74 20 26 26 20 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 29 00 00 00 0f 20 20 20 20 20 20 ight.&&.cursor.<.tlen)..........
e940 63 75 72 73 6f 72 2b 2b 3b 00 00 00 1e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f cursor++;........if.(sym.==.XKB_
e960 4b 45 59 5f 48 6f 6d 65 29 20 7b 00 00 00 34 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 75 72 73 KEY_Home).{...4......while.(curs
e980 6f 72 20 3e 20 30 20 26 26 20 74 65 78 74 5b 63 75 72 73 6f 72 20 2d 20 31 5d 20 21 3d 20 27 5c or.>.0.&&.text[cursor.-.1].!=.'\
e9a0 6e 27 29 00 00 00 11 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 05 20 20 20 20 n')............cursor--;........
e9c0 7d 00 00 00 1d 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 }........if.(sym.==.XKB_KEY_End)
e9e0 20 7b 00 00 00 33 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e .{...3......while.(cursor.<.tlen
ea00 20 26 26 20 74 65 78 74 5b 63 75 72 73 6f 72 5d 20 21 3d 20 27 5c 6e 27 29 00 00 00 11 20 20 20 .&&.text[cursor].!=.'\n').......
ea20 20 20 20 20 20 63 75 72 73 6f 72 2b 2b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 26 20 20 20 20 69 .....cursor++;........}...&....i
ea40 66 20 28 73 68 69 66 74 20 26 26 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 3d 20 63 75 72 73 6f 72 f.(shift.&&.sel_anchor.==.cursor
ea60 29 00 00 00 16 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 0e 20 )..........sel_anchor.=.-1;.....
ea80 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 ...redraw(a);........return;....
eaa0 20 20 7d 00 00 00 21 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 42 61 63 6b ..}...!..if.(sym.==.XKB_KEY_Back
eac0 53 70 61 63 65 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e Space).{........if.(sel_anchor.>
eae0 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 1a 20 =.0)..........delete_sel();.....
eb00 20 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 20 3e 20 30 29 20 7b 00 00 00 3f 20 20 20 ...else.if.(cursor.>.0).{...?...
eb20 20 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 20 2d 20 31 2c 20 74 65 ...memmove(text.+.cursor.-.1,.te
eb40 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 29 3b 00 00 00 0d xt.+.cursor,.tlen.-.cursor);....
eb60 20 20 20 20 20 20 74 6c 65 6e 2d 2d 3b 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b ......tlen--;..........cursor--;
eb80 00 00 00 18 20 20 20 20 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 13 ..........text[tlen].=.'\0';....
eba0 20 20 20 20 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0e ......dirty.=.true;........}....
ebc0 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 ....redraw(a);........return;...
ebe0 03 20 20 7d 00 00 00 1e 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 44 65 6c ...}......if.(sym.==.XKB_KEY_Del
ec00 65 74 65 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 ete).{........if.(sel_anchor.>=.
ec20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 1d 20 20 20 0)..........delete_sel();.......
ec40 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 29 20 7b 00 00 00 43 20 20 .else.if.(cursor.<.tlen).{...C..
ec60 20 20 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 65 78 74 20 ....memmove(text.+.cursor,.text.
ec80 2b 20 63 75 72 73 6f 72 20 2b 20 31 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 20 2d 20 31 29 +.cursor.+.1,.tlen.-.cursor.-.1)
eca0 3b 00 00 00 0d 20 20 20 20 20 20 74 6c 65 6e 2d 2d 3b 00 00 00 18 20 20 20 20 20 20 74 65 78 74 ;..........tlen--;..........text
ecc0 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 13 20 20 20 20 20 20 64 69 72 74 79 20 3d 20 [tlen].=.'\0';..........dirty.=.
ece0 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b true;........}........redraw(a);
ed00 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 39 20 20 69 66 20 28 ........return;......}...9..if.(
ed20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 65 74 75 72 6e 20 7c 7c 20 73 79 6d 20 3d 3d 20 sym.==.XKB_KEY_Return.||.sym.==.
ed40 58 4b 42 5f 4b 45 59 5f 4b 50 5f 45 6e 74 65 72 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 XKB_KEY_KP_Enter).{........if.(s
ed60 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f el_anchor.>=.0)..........delete_
ed80 73 65 6c 28 29 3b 00 00 00 11 20 20 20 20 69 6e 73 28 22 5c 6e 22 2c 20 31 29 3b 00 00 00 0e 20 sel();........ins("\n",.1);.....
eda0 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 ...redraw(a);........return;....
edc0 20 20 7d 00 00 00 0e 20 20 63 68 61 72 20 62 75 66 5b 38 5d 3b 00 00 00 46 20 20 69 6e 74 20 6c ..}......char.buf[8];...F..int.l
ede0 65 6e 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 en.=.xkb_state_key_get_utf8(a->x
ee00 6b 62 5f 73 74 61 74 65 2c 20 6b 63 2c 20 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 29 3b 00 kb_state,.kc,.buf,.sizeof.buf);.
ee20 00 00 2f 20 20 69 66 20 28 6c 65 6e 20 3e 20 30 20 26 26 20 28 75 6e 73 69 67 6e 65 64 20 63 68 ../..if.(len.>.0.&&.(unsigned.ch
ee40 61 72 29 62 75 66 5b 30 5d 20 3e 3d 20 33 32 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 ar)buf[0].>=.32).{........if.(se
ee60 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 l_anchor.>=.0)..........delete_s
ee80 65 6c 28 29 3b 00 00 00 12 20 20 20 20 69 6e 73 28 62 75 66 2c 20 6c 65 6e 29 3b 00 00 00 0e 20 el();........ins(buf,.len);.....
eea0 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 ...redraw(a);......}....}.......
eec0 47 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 Gstatic.void.wm_ping(void.*d,.st
eee0 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 ruct.xdg_wm_base.*wm,.uint32_t.s
ef00 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 erial).{......xdg_wm_base_pong(w
ef20 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 m,.serial);....}...Istatic.const
ef40 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f .struct.xdg_wm_base_listener.wm_
ef60 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 listener.=.{.ping.=.wm_ping};...
ef80 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 ....&static.void.alloc_buf(struc
efa0 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 t.app.*a).{......if.(a->buf).{..
efc0 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b ......wl_buffer_destroy(a->buf);
efe0 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 ........a->buf.=.NULL;......}...
f000 12 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 29 20 7b 00 00 00 26 20 20 20 20 6d 75 6e 6d 61 ...if.(a->pixels).{...&....munma
f020 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 p(a->pixels,.a->pixels_size);...
f040 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 .....a->pixels.=.NULL;......}...
f060 40 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 61 2d 3e 77 2c @..a->pixels.=.make_shm(a,.a->w,
f080 20 61 2d 3e 68 2c 20 26 61 2d 3e 62 75 66 2c 20 26 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 .a->h,.&a->buf,.&a->pixels_size)
f0a0 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 ;....}.......Fstatic.void.xs_cfg
f0c0 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 (void.*d,.struct.xdg_surface.*xs
f0e0 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 ,.uint32_t.serial).{......struct
f100 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 .app.*a.=.d;...(..xdg_surface_ac
f120 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 2d 20 20 69 66 k_configure(xs,.serial);...-..if
f140 20 28 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3e 20 30 20 26 26 20 61 2d 3e 70 65 6e 64 69 6e 67 .(a->pending_w.>.0.&&.a->pending
f160 5f 68 20 3e 20 30 29 20 7b 00 00 00 18 20 20 20 20 61 2d 3e 77 20 3d 20 61 2d 3e 70 65 6e 64 69 _h.>.0).{........a->w.=.a->pendi
f180 6e 67 5f 77 3b 00 00 00 18 20 20 20 20 61 2d 3e 68 20 3d 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 ng_w;........a->h.=.a->pending_h
f1a0 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3d 20 30 3b 00 00 00 15 20 20 ;........a->pending_w.=.0;......
f1c0 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 20 3d 20 30 3b 00 00 00 03 20 20 7d 00 00 00 15 20 20 ..a->pending_h.=.0;......}......
f1e0 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 19 20 20 20 20 61 2d 3e 63 6f if.(!a->configured)........a->co
f200 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 0f 20 20 61 6c 6c 6f 63 5f 62 75 66 28 nfigured.=.true;......alloc_buf(
f220 61 29 3b 00 00 00 0c 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 4d 73 74 61 74 a);......redraw(a);....}...Mstat
f240 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 ic.const.struct.xdg_surface_list
f260 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d ener.xs_listener.=.{.configure.=
f280 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f .xs_cfg};.......Jstatic.void.xt_
f2a0 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c cfg(void.*d,.struct.xdg_toplevel
f2c0 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 .*xt,.int32_t.w,.int32_t.h,...(.
f2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 ..................struct.wl_arra
f300 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 y.*s).{......struct.app.*a.=.d;.
f320 00 00 17 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 29 20 7b 00 00 00 15 20 20 .....if.(w.>.0.&&.h.>.0).{......
f340 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3d 20 77 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 ..a->pending_w.=.w;........a->pe
f360 6e 64 69 6e 67 5f 68 20 3d 20 68 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 43 73 74 61 74 nding_h.=.h;......}....}...Cstat
f380 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 ic.void.xt_close(void.*d,.struct
f3a0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 65 78 69 74 28 30 29 3b 20 7d 00 .xdg_toplevel.*xt).{.exit(0);.}.
f3c0 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 ..Mstatic.const.struct.xdg_tople
f3e0 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e vel_listener.xt_listener.=.{.con
f400 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 20 figure.=.xt_cfg,...L............
f420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
f440 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b ..............close.=.xt_close};
f460 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 74 61 72 67 65 74 28 76 6f .......Jstatic.void.ds_target(vo
f480 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c id.*d,.struct.wl_data_source.*s,
f4a0 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 29 20 7b 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 .const.char.*m).{}...Estatic.voi
f4c0 64 20 64 73 5f 73 65 6e 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 d.ds_send(void.*d,.struct.wl_dat
f4e0 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 2c 00 00 00 21 20 a_source.*s,.const.char.*m,...!.
f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 66 64 29 20 7b ...................int32_t.fd).{
f520 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 2c 20 20 77 72 ......struct.app.*a.=.d;...,..wr
f540 69 74 65 28 66 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 ite(fd,.a->clipboard,.a->clipboa
f560 72 64 5f 6c 65 6e 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 rd_len);......close(fd);....}...
f580 3d 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 28 76 6f 69 64 20 2a =static.void.ds_cancelled(void.*
f5a0 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 29 20 7b 00 00 d,.struct.wl_data_source.*s).{..
f5c0 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0e 20 20 69 66 20 28 ....struct.app.*a.=.d;......if.(
f5e0 61 2d 3e 64 73 29 20 7b 00 00 00 22 20 20 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 a->ds).{..."....wl_data_source_d
f600 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b 00 00 00 11 20 20 20 20 61 2d 3e 64 73 20 3d 20 4e 55 estroy(a->ds);........a->ds.=.NU
f620 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 3b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 LL;......}....}...;static.const.
f640 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 struct.wl_data_source_listener.d
f660 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 45 20 20 20 20 2e 74 61 72 67 65 74 20 3d 20 s_listener.=.{...E.....target.=.
f680 64 73 5f 74 61 72 67 65 74 2c 20 2e 73 65 6e 64 20 3d 20 64 73 5f 73 65 6e 64 2c 20 2e 63 61 6e ds_target,..send.=.ds_send,..can
f6a0 63 65 6c 6c 65 64 20 3d 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 7d 3b 00 00 00 00 00 00 00 38 73 celled.=.ds_cancelled};.......8s
f6c0 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6f 66 66 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 tatic.void.dd_offer(void.*d,.str
f6e0 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 00 00 00 30 20 20 20 20 20 uct.wl_data_device.*dd,...0.....
f700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f ................struct.wl_data_o
f720 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 65 6e ffer.*o).{}...Dstatic.void.dd_en
f740 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 ter(void.*d,.struct.wl_data_devi
f760 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 ce.*dd,.uint32_t.s,...G.........
f780 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 ............struct.wl_surface.*s
f7a0 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 2c 00 00 u,.wl_fixed_t.x,.wl_fixed_t.y,..
f7c0 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c .0.....................struct.wl
f7e0 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 63 20 76 6f 69 _data_offer.*o).{}...;static.voi
f800 64 20 64 64 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 d.dd_leave(void.*d,.struct.wl_da
f820 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 ta_device.*dd).{}...Estatic.void
f840 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 .dd_motion(void.*d,.struct.wl_da
f860 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 34 20 20 ta_device.*dd,.uint32_t.t,...4..
f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 ....................wl_fixed_t.x
f8a0 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 3a 73 74 61 74 69 63 20 76 6f 69 ,.wl_fixed_t.y).{}...:static.voi
f8c0 64 20 64 64 5f 64 72 6f 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 d.dd_drop(void.*d,.struct.wl_dat
f8e0 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 a_device.*dd).{}...<static.void.
f900 64 64 5f 73 65 6c 65 63 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f dd_selection(void.*d,.struct.wl_
f920 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 data_device.*dd,...4............
f940 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 .............struct.wl_data_offe
f960 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 r.*o).{}...;static.const.struct.
f980 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 64 5f 6c 69 73 74 65 wl_data_device_listener.dd_liste
f9a0 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 2e 64 61 74 61 5f 6f 66 66 65 72 20 3d 20 64 64 5f ner.=.{.........data_offer.=.dd_
f9c0 6f 66 66 65 72 2c 00 00 00 16 20 20 20 20 2e 65 6e 74 65 72 20 3d 20 64 64 5f 65 6e 74 65 72 2c offer,.........enter.=.dd_enter,
f9e0 00 00 00 16 20 20 20 20 2e 6c 65 61 76 65 20 3d 20 64 64 5f 6c 65 61 76 65 2c 00 00 00 18 20 20 .........leave.=.dd_leave,......
fa00 20 20 2e 6d 6f 74 69 6f 6e 20 3d 20 64 64 5f 6d 6f 74 69 6f 6e 2c 00 00 00 14 20 20 20 20 2e 64 ...motion.=.dd_motion,.........d
fa20 72 6f 70 20 3d 20 64 64 5f 64 72 6f 70 2c 00 00 00 1f 20 20 20 20 2e 73 65 6c 65 63 74 69 6f 6e rop.=.dd_drop,.........selection
fa40 20 3d 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 7d 3b 00 00 00 00 00 00 00 40 73 74 61 74 69 63 20 .=.dd_selection};.......@static.
fa60 76 6f 69 64 20 70 74 72 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 void.ptr_enter(void.*d,.struct.w
fa80 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 4b 20 20 20 l_pointer.*p,.uint32_t.s,...K...
faa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 ...................struct.wl_sur
fac0 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 face.*su,.wl_fixed_t.x,.wl_fixed
fae0 5f 74 20 79 29 20 7b 7d 00 00 00 40 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6c 65 61 76 _t.y).{}...@static.void.ptr_leav
fb00 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c e(void.*d,.struct.wl_pointer.*p,
fb20 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .uint32_t.s,.../................
fb40 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 7d 00 ......struct.wl_surface.*su).{}.
fb60 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a ..Ostatic.void.ptr_motion(void.*
fb80 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f d,.struct.wl_pointer.*p,.uint32_
fba0 74 20 74 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 00 00 00 26 20 20 20 20 20 20 20 20 20 20 t.t,.wl_fixed_t.x,...&..........
fbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 00 00 00 14 .............wl_fixed_t.y).{....
fbe0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 61 2d 3e 6d 6f 75 ..struct.app.*a.=.d;..."..a->mou
fc00 73 65 5f 78 20 3d 20 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 78 29 3b 00 00 00 22 20 20 se_x.=.wl_fixed_to_int(x);..."..
fc20 61 2d 3e 6d 6f 75 73 65 5f 79 20 3d 20 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b a->mouse_y.=.wl_fixed_to_int(y);
fc40 00 00 00 22 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e ..."..if.(a->open_menu.!=.MENU_N
fc60 4f 4e 45 29 20 7b 00 00 00 32 20 20 20 20 69 6e 74 20 69 74 20 3d 20 69 74 65 6d 5f 61 74 28 61 ONE).{...2....int.it.=.item_at(a
fc80 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 20 ,.a->open_menu,.a->mouse_y);....
fca0 20 20 20 20 69 66 20 28 69 74 20 21 3d 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 29 20 7b ....if.(it.!=.a->hovered_item).{
fcc0 00 00 00 1b 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 69 74 3b 00 ..........a->hovered_item.=.it;.
fce0 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 .........redraw(a);..........ret
fd00 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 1d 20 20 69 66 20 28 61 2d urn;........}......}......if.(a-
fd20 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 61 72 5f 79 28 61 29 29 00 00 00 0e 20 20 20 20 72 65 64 >mouse_y.>=.bar_y(a))........red
fd40 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f raw(a);....}...Fstatic.void.ptr_
fd60 62 75 74 74 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 button(void.*d,.struct.wl_pointe
fd80 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 00 00 00 42 20 20 20 20 20 20 r.*p,.uint32_t.serial,...B......
fda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e .................uint32_t.t,.uin
fdc0 74 33 32 5f 74 20 62 74 6e 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 14 t32_t.btn,.uint32_t.state).{....
fde0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 2f 20 20 69 66 20 28 73 74 ..struct.app.*a.=.d;.../..if.(st
fe00 61 74 65 20 21 3d 20 57 4c 5f 50 4f 49 4e 54 45 52 5f 42 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 ate.!=.WL_POINTER_BUTTON_STATE_P
fe20 52 45 53 53 45 44 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 61 2d 3e 6c RESSED)........return;......a->l
fe40 61 73 74 5f 73 65 72 69 61 6c 20 3d 20 73 65 72 69 61 6c 3b 00 00 00 14 20 20 69 6e 74 20 62 79 ast_serial.=.serial;......int.by
fe60 20 3d 20 62 61 72 5f 79 28 61 29 3b 00 00 00 00 00 00 00 22 20 20 69 66 20 28 61 2d 3e 6f 70 65 .=.bar_y(a);......."..if.(a->ope
fe80 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 32 20 20 20 20 69 6e n_menu.!=.MENU_NONE).{...2....in
fea0 74 20 69 74 20 3d 20 69 74 65 6d 5f 61 74 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 t.it.=.item_at(a,.a->open_menu,.
fec0 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 12 20 20 20 20 69 66 20 28 69 74 20 3e 3d 20 30 29 a->mouse_y);........if.(it.>=.0)
fee0 20 7b 00 00 00 25 20 20 20 20 20 20 66 69 72 65 5f 69 74 65 6d 28 61 2c 20 61 2d 3e 6f 70 65 6e .{...%......fire_item(a,.a->open
ff00 5f 6d 65 6e 75 2c 20 69 74 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 _menu,.it);..........return;....
ff20 20 20 20 20 7d 00 00 00 1b 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 ....}........if.(a->mouse_y.>=.b
ff40 79 29 20 7b 00 00 00 23 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 y).{...#......for.(int.i.=.0;.i.
ff60 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 29 20 20 20 20 20 20 20 20 69 6e 74 20 62 78 20 3d 20 <.2;.i++).{...)........int.bx.=.
ff80 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 37 20 20 20 20 btn_x(i),.bw.=.btn_w(i);...7....
ffa0 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 61 2d 3e 6d ....if.(a->mouse_x.>=.bx.&&.a->m
ffc0 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 20 ouse_x.<.bx.+.bw).{...#.........
ffe0 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 28 4d 65 6e 75 49 64 29 69 3b 00 00 00 1f 20 20 .a->open_menu.=.(MenuId)i;......
10000 20 20 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 ........a->hovered_item.=.-1;...
10020 14 20 20 20 20 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 11 20 20 20 20 20 20 20 ...........redraw(a);...........
10040 20 20 20 72 65 74 75 72 6e 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 07 20 20 20 20 20 ...return;............}.........
10060 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 .}........}........a->open_menu.
10080 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 19 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 =.MENU_NONE;........a->hovered_i
100a0 74 65 6d 20 3d 20 2d 31 3b 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 tem.=.-1;........redraw(a);.....
100c0 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 19 20 20 69 66 20 28 61 ...return;......}..........if.(a
100e0 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 29 20 7b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 ->mouse_y.>=.by).{...!....for.(i
10100 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 27 20 20 20 20 20 nt.i.=.0;.i.<.2;.i++).{...'.....
10120 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 .int.bx.=.btn_x(i),.bw.=.btn_w(i
10140 29 3b 00 00 00 35 20 20 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 );...5......if.(a->mouse_x.>=.bx
10160 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 29 20 7b 00 00 00 21 20 .&&.a->mouse_x.<.bx.+.bw).{...!.
10180 20 20 20 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 28 4d 65 6e 75 49 64 29 69 3b .......a->open_menu.=.(MenuId)i;
101a0 00 00 00 1d 20 20 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 ............a->hovered_item.=.-1
101c0 3b 00 00 00 12 20 20 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0f 20 20 20 20 20 ;............redraw(a);.........
101e0 20 20 20 72 65 74 75 72 6e 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 ...return;..........}........}..
10200 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 49 20 20 69 6e ......return;......}.......I..in
10220 74 20 63 78 20 3d 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 2d 20 50 41 44 29 20 2f 20 63 65 6c 6c t.cx.=.(a->mouse_x.-.PAD)./.cell
10240 5f 77 2c 20 63 79 20 3d 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 2d 20 50 41 44 29 20 2f 20 63 65 _w,.cy.=.(a->mouse_y.-.PAD)./.ce
10260 6c 6c 5f 68 3b 00 00 00 20 20 20 69 6e 74 20 70 6f 73 20 3d 20 30 2c 20 63 6f 6c 20 3d 20 30 2c ll_h;......int.pos.=.0,.col.=.0,
10280 20 72 6f 77 20 3d 20 30 3b 00 00 00 22 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 .row.=.0;..."..for.(int.i.=.0;.i
102a0 20 3c 20 74 6c 65 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 21 20 20 20 20 69 66 20 28 72 6f 77 20 3d .<.tlen;.i++).{...!....if.(row.=
102c0 3d 20 63 79 20 26 26 20 63 6f 6c 20 3d 3d 20 63 78 29 20 7b 00 00 00 0e 20 20 20 20 20 20 70 6f =.cy.&&.col.==.cx).{..........po
102e0 73 20 3d 20 69 3b 00 00 00 11 20 20 20 20 20 20 67 6f 74 6f 20 66 6f 75 6e 64 3b 00 00 00 05 20 s.=.i;..........goto.found;.....
10300 20 20 20 7d 00 00 00 1a 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 20 3d 3d 20 27 5c 6e 27 29 ...}........if.(text[i].==.'\n')
10320 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 72 6f 77 20 3d 3d 20 63 79 29 20 7b 00 00 00 10 .{..........if.(row.==.cy).{....
10340 20 20 20 20 20 20 20 20 70 6f 73 20 3d 20 69 3b 00 00 00 13 20 20 20 20 20 20 20 20 67 6f 74 6f ........pos.=.i;............goto
10360 20 66 6f 75 6e 64 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 63 6f 6c 20 .found;..........}..........col.
10380 3d 20 30 3b 00 00 00 0c 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c =.0;..........row++;........}.el
103a0 73 65 00 00 00 0c 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 70 se..........col++;......}......p
103c0 6f 73 20 3d 20 74 6c 65 6e 3b 00 00 00 06 66 6f 75 6e 64 3a 00 00 00 0f 20 20 63 75 72 73 6f 72 os.=.tlen;....found:......cursor
103e0 20 3d 20 70 6f 73 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 .=.pos;......sel_anchor.=.-1;...
10400 0c 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 ...redraw(a);....}...Nstatic.voi
10420 64 20 70 74 72 5f 61 78 69 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f d.ptr_axis(void.*d,.struct.wl_po
10440 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 61 inter.*p,.uint32_t.t,.uint32_t.a
10460 78 69 73 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f xis,...%.....................wl_
10480 66 69 78 65 64 5f 74 20 76 29 20 7b 7d 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 fixed_t.v).{}...Kstatic.const.st
104a0 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 6c 69 73 74 65 6e 65 72 20 70 74 72 5f 6c 69 73 ruct.wl_pointer_listener.ptr_lis
104c0 74 65 6e 65 72 20 3d 20 7b 2e 65 6e 74 65 72 20 3d 20 70 74 72 5f 65 6e 74 65 72 2c 00 00 00 4b tener.=.{.enter.=.ptr_enter,...K
104e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 6c 65 61 76 65 20 3d .........................leave.=
10520 20 70 74 72 5f 6c 65 61 76 65 2c 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ptr_leave,...M.................
10540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10560 20 20 20 20 20 20 20 2e 6d 6f 74 69 6f 6e 20 3d 20 70 74 72 5f 6d 6f 74 69 6f 6e 2c 00 00 00 4d ........motion.=.ptr_motion,...M
10580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
105a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 62 75 74 74 6f 6e 20 .........................button.
105c0 3d 20 70 74 72 5f 62 75 74 74 6f 6e 2c 00 00 00 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.ptr_button,...J...............
105e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10600 20 20 20 20 20 20 20 20 20 2e 61 78 69 73 20 3d 20 70 74 72 5f 61 78 69 73 7d 3b 00 00 00 00 00 ..........axis.=.ptr_axis};.....
10620 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 6d 61 70 28 76 6f 69 64 20 2a 64 ..Pstatic.void.kb_keymap(void.*d
10640 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 ,.struct.wl_keyboard.*kb,.uint32
10660 5f 74 20 66 6d 74 2c 20 69 6e 74 33 32 5f 74 20 66 64 2c 00 00 00 26 20 20 20 20 20 20 20 20 20 _t.fmt,.int32_t.fd,...&.........
10680 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 .............uint32_t.size).{...
106a0 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 30 20 20 69 66 20 28 66 ...struct.app.*a.=.d;...0..if.(f
106c0 6d 74 20 21 3d 20 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f mt.!=.WL_KEYBOARD_KEYMAP_FORMAT_
106e0 58 4b 42 5f 56 31 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0b 20 XKB_V1).{........close(fd);.....
10700 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 3c 20 20 63 68 61 72 20 2a 73 20 3d ...return;......}...<..char.*s.=
10720 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 2c 20 4d 41 50 .mmap(NULL,.size,.PROT_READ,.MAP
10740 5f 50 52 49 56 41 54 45 2c 20 66 64 2c 20 30 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 _PRIVATE,.fd,.0);......close(fd)
10760 3b 00 00 00 16 20 20 69 66 20 28 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0b 20 ;......if.(s.==.MAP_FAILED).....
10780 20 20 20 72 65 74 75 72 6e 3b 00 00 00 15 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 ...return;......if.(a->xkb_state
107a0 29 20 7b 00 00 00 22 20 20 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 6e 72 65 66 28 61 2d 3e 78 6b ).{..."....xkb_state_unref(a->xk
107c0 62 5f 73 74 61 74 65 29 3b 00 00 00 18 20 20 20 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 20 3d 20 b_state);........a->xkb_state.=.
107e0 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 16 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 NULL;......}......if.(a->xkb_key
10800 6d 61 70 29 20 7b 00 00 00 24 20 20 20 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 75 6e 72 65 66 28 61 map).{...$....xkb_keymap_unref(a
10820 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 19 20 20 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 ->xkb_keymap);........a->xkb_key
10840 6d 61 70 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2d 20 20 61 2d 3e 78 6b 62 5f 6b map.=.NULL;......}...-..a->xkb_k
10860 65 79 6d 61 70 20 3d 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 72 6f 6d 5f 73 74 72 69 eymap.=.xkb_keymap_new_from_stri
10880 6e 67 28 00 00 00 4d 20 20 20 20 20 20 61 2d 3e 78 6b 62 5f 63 74 78 2c 20 73 2c 20 58 4b 42 5f ng(...M......a->xkb_ctx,.s,.XKB_
108a0 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 54 45 58 54 5f 56 31 2c 20 58 4b 42 5f 4b 45 59 4d 41 KEYMAP_FORMAT_TEXT_V1,.XKB_KEYMA
108c0 50 5f 43 4f 4d 50 49 4c 45 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 12 20 20 6d 75 6e 6d 61 70 P_COMPILE_NO_FLAGS);......munmap
108e0 28 73 2c 20 73 69 7a 65 29 3b 00 00 00 14 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 (s,.size);......if.(a->xkb_keyma
10900 70 29 00 00 00 30 20 20 20 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 20 3d 20 78 6b 62 5f 73 74 61 p)...0....a->xkb_state.=.xkb_sta
10920 74 65 5f 6e 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 01 7d 00 00 00 41 73 te_new(a->xkb_keymap);....}...As
10940 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 tatic.void.kb_enter(void.*d,.str
10960 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c uct.wl_keyboard.*kb,.uint32_t.s,
10980 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 ...B.....................struct.
109a0 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 wl_surface.*su,.struct.wl_array.
109c0 2a 6b 29 20 7b 7d 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6c 65 61 76 65 28 76 *k).{}...Astatic.void.kb_leave(v
109e0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 oid.*d,.struct.wl_keyboard.*kb,.
10a00 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uint32_t.s,...-.................
10a20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 00 00 00 14 ....struct.wl_surface.*su).{....
10a40 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1d 20 20 73 74 72 75 63 74 ..struct.app.*a.=.d;......struct
10a60 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 2e 20 20 74 69 6d 65 72 .itimerspec.ts.=.{0};......timer
10a80 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c fd_settime(a->repeat_fd,.0,.&ts,
10aa0 20 4e 55 4c 4c 29 3b 00 00 00 01 7d 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b .NULL);....}...Pstatic.void.kb_k
10ac0 65 79 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a ey(void.*d,.struct.wl_keyboard.*
10ae0 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c kb,.uint32_t.serial,.uint32_t.t,
10b00 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 ...2...................uint32_t.
10b20 6b 65 79 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 14 20 20 73 74 72 75 key,.uint32_t.state).{......stru
10b40 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1a 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 ct.app.*a.=.d;......a->last_seri
10b60 61 6c 20 3d 20 73 65 72 69 61 6c 3b 00 00 00 2f 20 20 69 66 20 28 73 74 61 74 65 20 3d 3d 20 57 al.=.serial;.../..if.(state.==.W
10b80 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 20 7b 00 L_KEYBOARD_KEY_STATE_PRESSED).{.
10ba0 00 00 18 20 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 61 2c 20 6b 65 79 29 3b 00 00 00 18 20 .......process_key(a,.key);.....
10bc0 20 20 20 61 2d 3e 72 65 70 65 61 74 5f 6b 65 79 20 3d 20 6b 65 79 3b 00 00 00 1d 20 20 20 20 69 ...a->repeat_key.=.key;........i
10be0 66 20 28 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 20 3e 20 30 29 20 7b 00 00 00 1e 20 20 20 20 f.(a->repeat_rate.>.0).{........
10c00 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 00 00 00 38 20 20 ..struct.itimerspec.ts.=.{...8..
10c20 20 20 20 20 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 3d 20 7b 2e 74 76 5f 73 65 63 20 3d 20 61 .........it_value.=.{.tv_sec.=.a
10c40 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 20 2f 20 31 30 30 30 2c 00 00 00 47 20 20 20 20 20 20 ->repeat_delay./.1000,...G......
10c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 74 76 5f 6e 73 65 63 20 3d 20 28 61 2d 3e ..................tv_nsec.=.(a->
10c80 72 65 70 65 61 74 5f 64 65 6c 61 79 20 25 20 31 30 30 30 29 20 2a 20 31 30 30 30 30 30 30 4c 7d repeat_delay.%.1000).*.1000000L}
10ca0 2c 00 00 00 50 20 20 20 20 20 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 6c 20 3d 20 7b 2e ,...P...........it_interval.=.{.
10cc0 74 76 5f 73 65 63 20 3d 20 30 2c 20 2e 74 76 5f 6e 73 65 63 20 3d 20 31 30 30 30 30 30 30 30 30 tv_sec.=.0,..tv_nsec.=.100000000
10ce0 30 4c 20 2f 20 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 7d 2c 00 00 00 08 20 20 20 20 20 20 7d 0L./.a->repeat_rate},..........}
10d00 3b 00 00 00 32 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 ;...2......timerfd_settime(a->re
10d20 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d peat_fd,.0,.&ts,.NULL);........}
10d40 00 00 00 0a 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 1f 20 20 20 20 73 74 72 75 63 74 20 69 74 69 ......}.else.{........struct.iti
10d60 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 30 20 20 20 20 74 69 6d 65 72 66 64 merspec.ts.=.{0};...0....timerfd
10d80 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e _settime(a->repeat_fd,.0,.&ts,.N
10da0 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 ULL);......}....}...Estatic.void
10dc0 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c .kb_modifiers(void.*d,.struct.wl
10de0 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 45 20 20 _keyboard.*kb,.uint32_t.s,...E..
10e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 .......................uint32_t.
10e20 64 65 70 2c 20 75 69 6e 74 33 32 5f 74 20 6c 61 74 2c 20 75 69 6e 74 33 32 5f 74 20 6c 6f 63 6b dep,.uint32_t.lat,.uint32_t.lock
10e40 65 64 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ed,...(.........................
10e60 75 69 6e 74 33 32 5f 74 20 67 72 70 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 uint32_t.grp).{......struct.app.
10e80 2a 61 20 3d 20 64 3b 00 00 00 13 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 00 00 *a.=.d;......if.(a->xkb_state)..
10ea0 00 45 20 20 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d 61 73 6b 28 61 2d 3e 78 .E....xkb_state_update_mask(a->x
10ec0 6b 62 5f 73 74 61 74 65 2c 20 64 65 70 2c 20 6c 61 74 2c 20 6c 6f 63 6b 65 64 2c 20 30 2c 20 30 kb_state,.dep,.lat,.locked,.0,.0
10ee0 2c 20 67 72 70 29 3b 00 00 00 01 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 72 ,.grp);....}...Dstatic.void.kb_r
10f00 65 70 65 61 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 epeat(void.*d,.struct.wl_keyboar
10f20 64 20 2a 6b 62 2c 20 69 6e 74 33 32 5f 74 20 72 61 74 65 2c 00 00 00 26 20 20 20 20 20 20 20 20 d.*kb,.int32_t.rate,...&........
10f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 64 65 6c 61 79 29 20 7b 00 00 ..............int32_t.delay).{..
10f60 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 18 20 20 61 2d 3e 72 ....struct.app.*a.=.d;......a->r
10f80 65 70 65 61 74 5f 72 61 74 65 20 3d 20 72 61 74 65 3b 00 00 00 1a 20 20 61 2d 3e 72 65 70 65 61 epeat_rate.=.rate;......a->repea
10fa0 74 5f 64 65 6c 61 79 20 3d 20 64 65 6c 61 79 3b 00 00 00 01 7d 00 00 00 3e 73 74 61 74 69 63 20 t_delay.=.delay;....}...>static.
10fc0 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 const.struct.wl_keyboard_listene
10fe0 72 20 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 18 20 20 20 20 2e r.keyboard_listener.=.{.........
11000 6b 65 79 6d 61 70 20 3d 20 6b 62 5f 6b 65 79 6d 61 70 2c 00 00 00 16 20 20 20 20 2e 65 6e 74 65 keymap.=.kb_keymap,.........ente
11020 72 20 3d 20 6b 62 5f 65 6e 74 65 72 2c 00 00 00 16 20 20 20 20 2e 6c 65 61 76 65 20 3d 20 6b 62 r.=.kb_enter,.........leave.=.kb
11040 5f 6c 65 61 76 65 2c 00 00 00 12 20 20 20 20 2e 6b 65 79 20 3d 20 6b 62 5f 6b 65 79 2c 00 00 00 _leave,.........key.=.kb_key,...
11060 1e 20 20 20 20 2e 6d 6f 64 69 66 69 65 72 73 20 3d 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 2c 00 ......modifiers.=.kb_modifiers,.
11080 00 00 1e 20 20 20 20 2e 72 65 70 65 61 74 5f 69 6e 66 6f 20 3d 20 6b 62 5f 72 65 70 65 61 74 7d ........repeat_info.=.kb_repeat}
110a0 3b 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f 63 61 70 73 28 76 ;.......Estatic.void.seat_caps(v
110c0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 20 75 69 oid.*d,.struct.wl_seat.*seat,.ui
110e0 6e 74 33 32 5f 74 20 63 61 70 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a nt32_t.caps).{......struct.app.*
11100 61 20 3d 20 64 3b 00 00 00 3d 20 20 69 66 20 28 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f a.=.d;...=..if.((caps.&.WL_SEAT_
11120 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 21 61 2d 3e 6b 65 79 62 CAPABILITY_KEYBOARD).&&.!a->keyb
11140 6f 61 72 64 29 20 7b 00 00 00 2d 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 20 3d 20 77 6c 5f oard).{...-....a->keyboard.=.wl_
11160 73 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f 61 72 64 28 73 65 61 74 29 3b 00 00 00 41 20 20 20 20 seat_get_keyboard(seat);...A....
11180 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 6b 65 79 62 wl_keyboard_add_listener(a->keyb
111a0 6f 61 72 64 2c 20 26 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 oard,.&keyboard_listener,.a);...
111c0 44 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 D..}.else.if.(!(caps.&.WL_SEAT_C
111e0 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 61 2d 3e 6b 65 79 62 6f 61 APABILITY_KEYBOARD).&&.a->keyboa
11200 72 64 29 20 7b 00 00 00 25 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 72 65 6c 65 61 73 65 rd).{...%....wl_keyboard_release
11220 28 61 2d 3e 6b 65 79 62 6f 61 72 64 29 3b 00 00 00 17 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 (a->keyboard);........a->keyboar
11240 64 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 3b 20 20 69 66 20 28 28 63 61 70 73 20 d.=.NULL;......}...;..if.((caps.
11260 26 20 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 20 26 26 &.WL_SEAT_CAPABILITY_POINTER).&&
11280 20 21 61 2d 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 2b 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 .!a->pointer).{...+....a->pointe
112a0 72 20 3d 20 77 6c 5f 73 65 61 74 5f 67 65 74 5f 70 6f 69 6e 74 65 72 28 73 65 61 74 29 3b 00 00 r.=.wl_seat_get_pointer(seat);..
112c0 00 3a 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d .:....wl_pointer_add_listener(a-
112e0 3e 70 6f 69 6e 74 65 72 2c 20 26 70 74 72 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 42 >pointer,.&ptr_listener,.a);...B
11300 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 41 ..}.else.if.(!(caps.&.WL_SEAT_CA
11320 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 20 26 26 20 61 2d 3e 70 6f 69 6e 74 65 72 29 PABILITY_POINTER).&&.a->pointer)
11340 20 7b 00 00 00 23 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 65 6c 65 61 73 65 28 61 2d 3e .{...#....wl_pointer_release(a->
11360 70 6f 69 6e 74 65 72 29 3b 00 00 00 16 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 20 3d 20 4e 55 pointer);........a->pointer.=.NU
11380 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 73 LL;......}....}...Istatic.void.s
113a0 65 61 74 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 eat_name(void.*d,.struct.wl_seat
113c0 20 2a 73 65 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29 20 7b 7d 00 00 00 50 .*seat,.const.char.*name).{}...P
113e0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 5f 6c 69 73 74 static.const.struct.wl_seat_list
11400 65 6e 65 72 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 61 70 61 62 69 6c 69 74 ener.seat_listener.=.{.capabilit
11420 69 65 73 20 3d 20 73 65 61 74 5f 63 61 70 73 2c 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 ies.=.seat_caps,...I............
11440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11460 20 20 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d 20 73 65 61 74 5f 6e 61 6d 65 7d 3b 00 00 00 ...........name.=.seat_name};...
11480 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 ....Cstatic.void.reg_global(void
114a0 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 .*d,.struct.wl_registry.*r,.uint
114c0 33 32 5f 74 20 69 64 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.id,...7....................
114e0 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 ...const.char.*iface,.uint32_t.v
11500 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 26 20 ).{......struct.app.*a.=.d;...&.
11520 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 .if.(!strcmp(iface,."wl_composit
11540 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 or"))...C....a->comp.=.wl_regist
11560 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e ry_bind(r,.id,.&wl_compositor_in
11580 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 terface,.4);...$..else.if.(!strc
115a0 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 mp(iface,."wl_shm"))...;....a->s
115c0 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c hm.=.wl_registry_bind(r,.id,.&wl
115e0 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 _shm_interface,.1);...+..else.if
11600 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 .(!strcmp(iface,."xdg_wm_base"))
11620 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 .{...?....a->wm.=.wl_registry_bi
11640 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 nd(r,.id,.&xdg_wm_base_interface
11660 2c 20 31 29 3b 00 00 00 35 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 ,.1);...5....xdg_wm_base_add_lis
11680 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 tener(a->wm,.&wm_listener,.a);..
116a0 00 29 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 .)..}.else.if.(!strcmp(iface,."w
116c0 6c 5f 73 65 61 74 22 29 29 20 7b 00 00 00 3d 20 20 20 20 61 2d 3e 73 65 61 74 20 3d 20 77 6c 5f l_seat")).{...=....a->seat.=.wl_
116e0 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 65 61 74 5f 69 6e registry_bind(r,.id,.&wl_seat_in
11700 74 65 72 66 61 63 65 2c 20 35 29 3b 00 00 00 35 20 20 20 20 77 6c 5f 73 65 61 74 5f 61 64 64 5f terface,.5);...5....wl_seat_add_
11720 6c 69 73 74 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 20 26 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 listener(a->seat,.&seat_listener
11740 2c 20 61 29 3b 00 00 00 36 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 ,.a);...6..}.else.if.(!strcmp(if
11760 61 63 65 2c 20 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 22 29 29 00 ace,."wl_data_device_manager")).
11780 00 00 4b 20 20 20 20 61 2d 3e 64 64 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ..K....a->ddm.=.wl_registry_bind
117a0 28 72 2c 20 69 64 2c 20 26 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f (r,.id,.&wl_data_device_manager_
117c0 69 6e 74 65 72 66 61 63 65 2c 20 33 29 3b 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f interface,.3);....}...Fstatic.vo
117e0 69 64 20 72 65 67 5f 72 65 6d 6f 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c id.reg_remove(void.*d,.struct.wl
11800 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 29 20 7b 7d 00 00 00 _registry.*r,.uint32_t.id).{}...
11820 39 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 9static.const.struct.wl_registry
11840 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 37 20 20 _listener.reg_listener.=.{...7..
11860 20 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 2c 20 2e 67 6c 6f 62 61 6c 5f ...global.=.reg_global,..global_
11880 72 65 6d 6f 76 65 20 3d 20 72 65 67 5f 72 65 6d 6f 76 65 7d 3b 00 00 00 00 00 00 00 10 69 6e 74 remove.=.reg_remove};........int
118a0 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 6c 6f 61 64 5f 66 6f 6e .main(void).{......if.(!load_fon
118c0 74 28 29 29 20 7b 00 00 00 3c 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 66 t()).{...<....fprintf(stderr,."f
118e0 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e 22 2c 20 46 4f 4e 54 5f ailed.to.load.font:.%s\n",.FONT_
11900 4e 41 4d 45 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 NAME);........return.1;......}..
11920 00 00 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 ........struct.app.a.=.{0};.....
11940 20 61 2e 77 20 3d 20 36 34 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 38 30 3b 00 00 00 15 20 .a.w.=.640;......a.h.=.480;.....
11960 20 61 2e 72 65 70 65 61 74 5f 72 61 74 65 20 3d 20 32 35 3b 00 00 00 17 20 20 61 2e 72 65 70 65 .a.repeat_rate.=.25;......a.repe
11980 61 74 5f 64 65 6c 61 79 20 3d 20 34 30 30 3b 00 00 00 1a 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 at_delay.=.400;......a.open_menu
119a0 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 16 20 20 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 .=.MENU_NONE;......a.hovered_ite
119c0 6d 20 3d 20 2d 31 3b 00 00 00 00 00 00 00 34 20 20 61 2e 78 6b 62 5f 63 74 78 20 3d 20 78 6b 62 m.=.-1;.......4..a.xkb_ctx.=.xkb
119e0 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 28 58 4b 42 5f 43 4f 4e 54 45 58 54 5f 4e 4f 5f 46 4c 41 47 _context_new(XKB_CONTEXT_NO_FLAG
11a00 53 29 3b 00 00 00 13 20 20 69 66 20 28 21 61 2e 78 6b 62 5f 63 74 78 29 20 7b 00 00 00 2e 20 20 S);......if.(!a.xkb_ctx).{......
11a20 20 20 66 70 75 74 73 28 22 78 6b 62 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 20 66 61 69 6c 65 64 5c ..fputs("xkb_context_new.failed\
11a40 6e 22 2c 20 73 74 64 65 72 72 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 n",.stderr);........return.1;...
11a60 03 20 20 7d 00 00 00 00 00 00 00 4c 20 20 61 2e 72 65 70 65 61 74 5f 66 64 20 3d 20 74 69 6d 65 ...}.......L..a.repeat_fd.=.time
11a80 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f rfd_create(CLOCK_MONOTONIC,.TFD_
11aa0 43 4c 4f 45 58 45 43 20 7c 20 54 46 44 5f 4e 4f 4e 42 4c 4f 43 4b 29 3b 00 00 00 18 20 20 69 66 CLOEXEC.|.TFD_NONBLOCK);......if
11ac0 20 28 61 2e 72 65 70 65 61 74 5f 66 64 20 3c 20 30 29 20 7b 00 00 00 1d 20 20 20 20 70 65 72 72 .(a.repeat_fd.<.0).{........perr
11ae0 6f 72 28 22 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 or("timerfd_create");........ret
11b00 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f urn.1;......}.......!..a.d.=.wl_
11b20 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0d 20 20 69 66 20 28 display_connect(NULL);......if.(
11b40 21 61 2e 64 29 20 7b 00 00 00 39 20 20 20 20 66 70 75 74 73 28 22 63 61 6e 6e 6f 74 20 63 6f 6e !a.d).{...9....fputs("cannot.con
11b60 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 2c 20 73 74 64 65 nect.to.Wayland.display\n",.stde
11b80 72 72 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 rr);........return.1;......}....
11ba0 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 ...'..a.reg.=.wl_display_get_reg
11bc0 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 35 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 istry(a.d);...5..wl_registry_add
11be0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 20 _listener(a.reg,.&reg_listener,.
11c00 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 &a);......wl_display_roundtrip(a
11c20 2e 64 29 3b 00 00 00 00 00 00 00 2e 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e .d);..........if.(!a.comp.||.!a.
11c40 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 20 7c 7c 20 21 61 2e 73 65 61 74 29 20 7b 00 00 00 38 20 20 shm.||.!a.wm.||.!a.seat).{...8..
11c60 20 20 66 70 75 74 73 28 22 6d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e ..fputs("missing.required.Waylan
11c80 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 2c 20 73 74 64 65 72 72 29 3b 00 00 00 0d 20 20 20 20 72 65 d.globals\n",.stderr);........re
11ca0 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 turn.1;......}......wl_display_r
11cc0 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 18 20 20 69 66 20 28 61 2e 64 64 oundtrip(a.d);..........if.(a.dd
11ce0 6d 20 26 26 20 61 2e 73 65 61 74 29 20 7b 00 00 00 41 20 20 20 20 61 2e 64 64 20 3d 20 77 6c 5f m.&&.a.seat).{...A....a.dd.=.wl_
11d00 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 67 65 74 5f 64 61 74 61 5f 64 65 76 data_device_manager_get_data_dev
11d20 69 63 65 28 61 2e 64 64 6d 2c 20 61 2e 73 65 61 74 29 3b 00 00 00 38 20 20 20 20 77 6c 5f 64 61 ice(a.ddm,.a.seat);...8....wl_da
11d40 74 61 5f 64 65 76 69 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 64 64 2c 20 26 64 64 ta_device_add_listener(a.dd,.&dd
11d60 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 20 _listener,.&a);......}..........
11d80 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 a.ws.=.wl_compositor_create_surf
11da0 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f ace(a.comp);...1..a.xs.=.xdg_wm_
11dc0 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 base_get_xdg_surface(a.wm,.a.ws)
11de0 3b 00 00 00 33 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;...3..xdg_surface_add_listener(
11e00 61 2e 78 73 2c 20 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e a.xs,.&xs_listener,.&a);...(..a.
11e20 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e xt.=.xdg_surface_get_toplevel(a.
11e40 78 73 29 3b 00 00 00 34 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 xs);...4..xdg_toplevel_add_liste
11e60 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 27 ner(a.xt,.&xt_listener,.&a);...'
11e80 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 ..xdg_toplevel_set_title(a.xt,."
11ea0 77 6c 65 64 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 wled");......wl_surface_commit(a
11ec0 2e 77 73 29 3b 00 00 00 00 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 .ws);..........while.(!a.configu
11ee0 72 65 64 29 00 00 00 27 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 red)...'....if.(wl_display_dispa
11f00 74 63 68 28 61 2e 64 29 20 3d 3d 20 2d 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 tch(a.d).==.-1)..........break;.
11f20 00 00 00 00 00 00 25 20 20 69 6e 74 20 77 6c 5f 66 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f ......%..int.wl_fd.=.wl_display_
11f40 67 65 74 5f 66 64 28 61 2e 64 29 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 get_fd(a.d);......while.(1).{...
11f60 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 3c 20 .....wl_display_flush(a.d);...<.
11f80 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 20 ...struct.pollfd.fds[2].=.{{.fd.
11fa0 3d 20 77 6c 5f 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 2c 00 00 00 43 20 =.wl_fd,..events.=.POLLIN},...C.
11fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2e 66 64 20 ...........................{.fd.
11fe0 3d 20 61 2e 72 65 70 65 61 74 5f 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d =.a.repeat_fd,..events.=.POLLIN}
12000 7d 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 72 65 74 20 3d 20 70 6f 6c 6c 28 66 64 73 2c 20 32 2c };........int.ret.=.poll(fds,.2,
12020 20 2d 31 29 3b 00 00 00 12 20 20 20 20 69 66 20 28 72 65 74 20 3c 20 30 29 20 7b 00 00 00 19 20 .-1);........if.(ret.<.0).{.....
12040 20 20 20 20 20 69 66 20 28 65 72 72 6e 6f 20 3d 3d 20 45 49 4e 54 52 29 00 00 00 11 20 20 20 20 .....if.(errno.==.EINTR)........
12060 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 ....continue;..........break;...
12080 05 20 20 20 20 7d 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 .....}..."....if.(fds[1].revents
120a0 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 13 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 65 .&.POLLIN).{..........uint64_t.e
120c0 78 70 3b 00 00 00 2a 20 20 20 20 20 20 72 65 61 64 28 61 2e 72 65 70 65 61 74 5f 66 64 2c 20 26 xp;...*......read(a.repeat_fd,.&
120e0 65 78 70 2c 20 73 69 7a 65 6f 66 20 65 78 70 29 3b 00 00 00 24 20 20 20 20 20 20 70 72 6f 63 65 exp,.sizeof.exp);...$......proce
12100 73 73 5f 6b 65 79 28 26 61 2c 20 61 2e 72 65 70 65 61 74 5f 6b 65 79 29 3b 00 00 00 05 20 20 20 ss_key(&a,.a.repeat_key);.......
12120 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 .}........if.(fds[0].revents.&.P
12140 4f 4c 4c 49 4e 29 00 00 00 29 20 20 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 OLLIN)...)......if.(wl_display_d
12160 69 73 70 61 74 63 68 28 61 2e 64 29 20 3d 3d 20 2d 31 29 00 00 00 0e 20 20 20 20 20 20 20 20 62 ispatch(a.d).==.-1)............b
12180 72 65 61 6b 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d reak;......}......return.0;....}
121a0 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 5c 04 00 00 00 00 00 00 01 00 00 00 00 00 00 00 5...............\...............
121c0 00 00 00 00 00 00 00 00 86 7d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 03 .........}..............5._.....
121e0 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ................................
12200 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f ..............................i.
12360 c7 09 04 01 00 00 00 00 00 f5 18 00 00 02 e6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d ...............................}
12380 f5 18 00 00 02 e7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 df 00 00 00 00 00 00 00 00 ................................
123a0 00 00 00 01 00 00 00 4a 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d .......J....struct.pollfd.fds[2]
123c0 3d 7b 7b 2e 66 64 3d 77 6c 5f 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 7b 2e 66 ={{.fd=wl_fd,.events=POLLIN},{.f
123e0 64 3d 61 2e 72 65 70 65 61 74 5f 66 64 2c 2e 65 76 65 f5 18 00 00 02 e0 00 00 00 00 00 00 00 00 d=a.repeat_fd,.eve..............
12400 00 00 00 00 f5 18 00 00 02 d1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 08 20 20 61 2e 77 73 ............................a.ws
12420 3d 77 f5 18 00 00 02 d2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 ba 00 00 00 00 00 00 =w..............................
12440 00 00 00 00 00 01 00 00 00 29 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e .........)..a.open_menu=MENU_NON
12460 45 3b 20 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d f5 18 00 00 02 bb 00 00 00 00 00 00 00 E;.a.hovered_item=-.............
12480 00 00 00 00 00 f5 18 00 00 02 b2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 4d 73 74 61 74 69 ..........................Mstati
124a0 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 c.const.struct.wl_registry_liste
124c0 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f ner.reg_listener.=.{.global=reg_
124e0 67 6c 6f 62 61 6c 2c 2e f5 18 00 00 02 b3 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 a6 global,.........................
12500 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 ...............Gstatic.void.seat
12520 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 _name(void.*d,.struct.wl_seat.*s
12540 65 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29 20 f5 18 00 00 02 a7 00 00 00 eat,.const.char.*name)..........
12560 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 9c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3d 20 ..............................=.
12580 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 3d 77 6c 5f 73 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f ...a->keyboard=wl_seat_get_keybo
125a0 61 72 64 28 73 65 61 74 29 3b 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c f5 18 00 00 ard(seat);.wl_keyboard_add_l....
125c0 02 9d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 8e 00 00 00 00 00 00 00 00 00 00 00 01 ................................
125e0 00 00 00 00 f5 18 00 00 02 8f 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 88 00 00 00 00 ................................
12600 00 00 00 00 00 00 00 01 00 00 00 34 20 20 20 20 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 20 20 ...........4.........it_value...
12620 3d 7b 2e 74 76 5f 73 65 63 3d 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 2f 31 30 30 30 2c 2e ={.tv_sec=a->repeat_delay/1000,.
12640 f5 18 00 00 02 89 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 7f 00 00 00 00 00 00 00 00 ................................
12660 00 00 00 01 00 00 00 15 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6c 65 61 76 65 28 f5 18 00 ........static.void.kb_leave(...
12680 00 02 80 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 7a 00 00 00 00 00 00 00 00 00 00 00 ....................z...........
126a0 01 00 00 00 49 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 3d 78 6b 62 5f 6b 65 79 6d 61 70 5f ....I..a->xkb_keymap=xkb_keymap_
126c0 6e 65 77 5f 66 72 6f 6d 5f 73 74 72 69 6e 67 28 61 2d 3e 78 6b 62 5f 63 74 78 2c 73 2c 58 4b 42 new_from_string(a->xkb_ctx,s,XKB
126e0 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 f5 18 00 00 02 7b 00 00 00 00 00 00 00 00 00 00 00 00 _KEYMAP_FORMAT.....{............
12700 f5 18 00 00 02 76 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 38 20 20 63 68 61 72 20 2a 73 3d .....v...............8..char.*s=
12720 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 2c 4d 41 50 5f 50 52 49 mmap(NULL,size,PROT_READ,MAP_PRI
12740 56 41 54 45 2c 66 64 2c 30 29 3b 20 63 6c f5 18 00 00 02 77 00 00 00 00 00 00 00 00 00 00 00 00 VATE,fd,0);.cl.....w............
12760 f5 18 00 00 02 68 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 09 20 20 2e 65 6e 74 65 72 20 f5 .....h...................enter..
12780 18 00 00 02 69 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 64 00 00 00 00 00 00 00 00 00 ....i.................d.........
127a0 00 00 01 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 ......Bstatic.void.ptr_axis_sour
127c0 63 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 ce(void.*d,.struct.wl_pointer.*p
127e0 2c 20 75 69 6e 74 33 32 5f f5 18 00 00 02 65 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 ,.uint32_.....e.................
12800 4f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e O....................a->open_men
12820 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 f5 18 00 00 02 50 00 00 00 00 00 00 00 00 00 00 00 00 u=MENU_NONE;.a.....P............
12840 f5 18 00 00 02 4b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 15 20 20 20 20 69 66 20 28 69 74 .....K....................if.(it
12860 3e 3d 30 29 20 7b 20 66 69 72 65 f5 18 00 00 02 4c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 >=0).{.fire.....L...............
12880 00 02 3d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 15 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e ..=..................if.(a->open
128a0 5f 6d 65 6e 75 21 3d 4d f5 18 00 00 02 3e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 35 _menu!=M.....>.................5
128c0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0d 20 20 2e 64 61 74 61 5f 6f 66 66 65 72 f5 18 00 ...................data_offer...
128e0 00 02 36 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 31 00 00 00 00 00 00 00 00 00 00 00 ..6.................1...........
12900 01 00 00 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 ....Bstatic.void.dd_motion(void.
12920 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 *d,.struct.wl_data_device.*dd,.u
12940 69 6e 74 33 32 5f 74 f5 18 00 00 02 32 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 2a 00 int32_t.....2.................*.
12960 00 00 00 00 00 00 00 00 00 00 01 00 00 00 27 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 ..............'..struct.app.*a=d
12980 3b 20 69 66 28 61 2d 3e 64 73 29 7b 77 6c 5f 64 61 74 61 5f 73 6f f5 18 00 00 02 2b 00 00 00 00 ;.if(a->ds){wl_data_so.....+....
129a0 00 00 00 00 00 00 00 00 f5 18 00 00 02 1a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 26 20 20 .............................&..
129c0 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 if.(!a->configured).a->configure
129e0 64 3d 74 72 f5 18 00 00 02 1b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 17 00 00 00 00 d=tr............................
12a00 00 00 00 00 00 00 00 01 00 00 00 16 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 ............static.void.xs_cfg(v
12a20 6f 69 f5 18 00 00 02 18 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 0b 00 00 00 00 00 00 oi..............................
12a40 00 00 00 00 00 01 00 00 00 1c 20 20 69 66 20 28 6c 65 6e 3e 30 26 26 28 75 6e 73 69 67 6e 65 64 ............if.(len>0&&(unsigned
12a60 20 63 68 61 72 29 f5 18 00 00 02 0c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 05 00 00 .char)..........................
12a80 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 20 f5 18 00 00 02 06 00 00 00 00 00 00 00 00 00 ................................
12aa0 00 00 00 f5 18 00 00 01 f5 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 20 20 20 20 65 6c 73 .............................els
12ac0 65 20 69 66 20 28 21 73 68 69 66 74 f5 18 00 00 01 f6 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 e.if.(!shift....................
12ae0 00 00 01 ee 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 22 20 20 20 20 69 66 20 28 70 6c 61 69 ..................."....if.(plai
12b00 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 61 7c 7c 70 6c 61 69 6e 3d 3d 58 f5 18 00 00 01 ef 00 00 00 00 n==XKB_KEY_a||plain==X..........
12b20 00 00 00 00 00 00 00 00 f5 18 00 00 01 e6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 ................................
12b40 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e f5 18 00 00 01 e7 00 00 00 ..if.(a->open_menu!=MEN.........
12b60 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 de 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1f 20 ................................
12b80 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 20 73 79 6d 20 3d 20 78 6b 62 5f 73 74 61 74 65 f5 18 .xkb_keysym_t..sym.=.xkb_state..
12ba0 00 00 01 df 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 cc 00 00 00 00 00 00 00 00 00 00 ................................
12bc0 00 01 00 00 00 02 20 20 f5 18 00 00 01 cd 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 c4 ................................
12be0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 73 28 ................static.void.ins(
12c00 f5 18 00 00 01 c5 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 b5 00 00 00 00 00 00 00 00 ................................
12c20 00 00 00 01 00 00 00 09 20 20 78 64 67 5f 74 6f 70 f5 18 00 00 01 b6 00 00 00 00 00 00 00 00 00 ..........xdg_top...............
12c40 00 00 00 f5 18 00 00 01 a7 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 13 20 20 73 74 72 75 63 ...........................struc
12c60 74 20 70 6f 70 75 70 20 2a 70 20 3d f5 18 00 00 01 a8 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 t.popup.*p.=....................
12c80 00 00 01 93 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 78 64 67 5f 73 75 72 66 61 63 ......................xdg_surfac
12ca0 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 f5 18 00 00 01 94 00 00 00 00 00 00 00 00 00 00 00 00 f5 e_ack_configu...................
12cc0 18 00 00 01 7d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 01 7e 00 00 00 00 00 ....}.....................~.....
12ce0 00 00 00 00 00 00 00 f5 18 00 00 01 73 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 64 ............s..................d
12d00 72 61 77 5f 62 61 72 28 61 f5 18 00 00 01 74 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 raw_bar(a.....t.................
12d20 48 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 14 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 H..................frect(px,pw,p
12d40 68 2c 20 64 78 f5 18 00 00 01 49 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 17 00 00 00 h,.dx.....I.....................
12d60 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 01 18 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12d80 f5 18 00 00 01 07 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 23 20 20 20 20 63 6f 6e 73 74 20 .....................#....const.
12da0 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b f5 18 00 00 01 08 00 char.*h.=.getenv("HOME");.......
12dc0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 fd 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
12de0 0d 73 74 61 74 69 63 20 76 6f 69 64 20 72 f5 18 00 00 00 fe 00 00 00 00 00 00 00 00 00 00 00 00 .static.void.r..................
12e00 f5 18 00 00 00 ec 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 73 74 61 74 69 63 20 69 6e 74 ......................static.int
12e20 20 69 74 65 6d 5f 61 74 28 73 74 72 75 63 f5 18 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 00 .item_at(struc..................
12e40 f5 18 00 00 00 d1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 63 6f 6e 73 74 20 63 68 ........................const.ch
12e60 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 f5 18 00 00 00 d2 00 00 00 00 00 00 00 00 00 00 00 ar.*lbls[].=.{".................
12e80 00 f5 18 00 00 00 be 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 73 74 61 74 69 63 20 76 6f .......................static.vo
12ea0 69 64 20 2a 6d 61 6b 65 5f 73 68 6d 28 73 74 72 f5 18 00 00 00 bf 00 00 00 00 00 00 00 00 00 00 id.*make_shm(str................
12ec0 00 00 f5 18 00 00 00 71 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 75 69 6e 74 f5 18 .......q..................uint..
12ee0 00 00 00 72 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...r............................
12f00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 ........................5.......
12f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 71 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 ................q...............
12f40 00 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 f5 18 00 00 00 00 71 00 00 00 06 00 00 00 00 00 ......................q.........
12f60 00 00 00 00 00 00 4d 00 00 00 19 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b ......M.........................
12f80 00 00 00 00 00 00 f5 18 00 00 00 00 be 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 ................................
12fa0 19 00 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 ................................
12fc0 00 00 d1 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 18 00 00 00 00 1a 00 00 00 00 ................................
12fe0 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 ec 00 00 00 18 00 00 00 ................................
13000 00 00 00 00 00 00 00 00 11 00 00 00 0d 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13020 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 fd 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 0a 00 ................................
13040 00 00 23 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 ..#.............................
13060 00 00 00 00 07 01 00 00 23 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 00 20 00 00 ........#.......................
13080 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 17 01 00 00 01 00 ................................
130a0 00 00 00 00 00 00 00 00 00 00 31 00 00 00 14 00 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 00 ..........1........"............
130c0 00 00 00 06 00 00 00 00 00 00 f5 18 00 00 00 00 48 01 00 00 14 00 00 00 00 00 00 00 00 00 00 00 ................H...............
130e0 2b 00 00 00 0c 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 +........(......................
13100 f5 18 00 00 00 00 73 01 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 2e ......s.........................
13120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 7d 01 00 00 ............................}...
13140 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 19 00 00 00 00 2f 00 00 00 00 00 00 00 00 00 00 ...................../..........
13160 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 93 01 00 00 19 00 00 00 00 00 00 00 00 00 ................................
13180 00 00 14 00 00 00 13 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ...........3....................
131a0 00 00 f5 18 00 00 00 00 a7 01 00 00 13 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 09 00 00 00 ................................
131c0 00 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 b5 01 .7..............................
131e0 00 00 09 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 10 00 00 00 00 39 00 00 00 00 00 00 00 00 .......................9........
13200 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 c4 01 00 00 10 00 00 00 00 00 00 00 ................................
13220 00 00 00 00 08 00 00 00 02 00 00 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .............;..................
13240 00 00 00 00 f5 18 00 00 00 00 cc 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 1f 00 ................................
13260 00 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 ...<............................
13280 de 01 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 19 00 00 00 00 3f 00 00 00 00 00 00 .........................?......
132a0 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 e6 01 00 00 19 00 00 00 00 00 ................................
132c0 00 00 00 00 00 00 08 00 00 00 22 00 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 .........."....A................
132e0 00 00 00 00 00 00 f5 18 00 00 00 00 ee 01 00 00 22 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 ................"...............
13300 13 00 00 00 00 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 .....C..........................
13320 00 00 f5 01 00 00 13 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 03 00 00 00 00 45 00 00 00 00 ...........................E....
13340 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 05 02 00 00 03 00 00 00 ................................
13360 00 00 00 00 00 00 00 00 06 00 00 00 1c 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................H..............
13380 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 0b 02 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 0c 00 ................................
133a0 00 00 16 00 00 00 00 49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 .......I........................
133c0 00 00 00 00 17 02 00 00 16 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 26 00 00 00 00 4b 00 00 ........................&....K..
133e0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 1a 02 00 00 26 00 ..............................&.
13400 00 00 00 00 00 00 00 00 00 00 10 00 00 00 27 00 00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 ..............'....L............
13420 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 2a 02 00 00 27 00 00 00 00 00 00 00 00 00 00 00 ................*...'...........
13440 07 00 00 00 42 00 00 00 00 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ....B....O......................
13460 f5 18 00 00 00 00 31 02 00 00 42 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 0d 00 00 00 00 51 ......1...B....................Q
13480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 35 02 00 00 ............................5...
134a0 0d 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 15 00 00 00 00 52 00 00 00 00 00 00 00 00 00 00 .....................R..........
134c0 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 3d 02 00 00 15 00 00 00 00 00 00 00 00 00 ..................=.............
134e0 00 00 0e 00 00 00 15 00 00 00 00 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ...........T....................
13500 00 00 f5 18 00 00 00 00 4b 02 00 00 15 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 1d 00 00 00 ........K.......................
13520 00 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 4f 02 .V............................O.
13540 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 42 00 00 00 00 57 00 00 00 00 00 00 00 00 ..................B....W........
13560 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 64 02 00 00 42 00 00 00 00 00 00 00 ....................d...B.......
13580 00 00 00 00 04 00 00 00 09 00 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .............Z..................
135a0 00 00 00 00 f5 18 00 00 00 00 68 02 00 00 09 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 38 00 ..........h...................8.
135c0 00 00 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ...[............................
135e0 76 02 00 00 38 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 49 00 00 00 00 5d 00 00 00 00 00 00 v...8...............I....]......
13600 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 7a 02 00 00 49 00 00 00 00 00 ......................z...I.....
13620 00 00 00 00 00 00 05 00 00 00 15 00 00 00 00 5e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ...............^................
13640 00 00 00 00 00 00 f5 18 00 00 00 00 7f 02 00 00 15 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 ................................
13660 34 00 00 00 00 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 4...._..........................
13680 00 00 88 02 00 00 34 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 61 00 00 00 00 ......4....................a....
136a0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 8e 02 00 00 00 00 00 00 ................................
136c0 00 00 00 00 00 00 00 00 0e 00 00 00 3d 00 00 00 00 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............=....b..............
136e0 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 9c 02 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 0a 00 ..................=.............
13700 00 00 47 00 00 00 00 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..G....e........................
13720 00 00 00 00 a6 02 00 00 47 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 4d 00 00 00 00 67 00 00 ........G...............M....g..
13740 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 b2 02 00 00 4d 00 ..............................M.
13760 00 00 00 00 00 00 00 00 00 00 08 00 00 00 29 00 00 00 00 6b 00 00 00 00 00 00 00 00 00 00 00 00 ..............)....k............
13780 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 ba 02 00 00 29 00 00 00 00 00 00 00 00 00 00 00 ....................)...........
137a0 17 00 00 00 08 00 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 .........l......................
137c0 f5 18 00 00 00 00 d1 02 00 00 08 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 4a 00 00 00 00 6f ..........................J....o
137e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 df 02 00 00 ................................
13800 4a 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00 00 71 00 00 00 00 00 00 00 00 00 00 J....................q..........
13820 00 00 00 00 1f 01 00 00 00 00 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 ............5._.................
13840 00 00 00 05 00 00 02 e7 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ................................
13860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
138a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
138c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
138e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
139a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 0a 04 01 00 00 00 04 00 f5 18 00 ..................i.............
139c0 00 00 02 00 00 04 66 00 00 02 e7 00 00 02 e2 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 ......f...........&#include."xdg
139e0 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 13 23 69 6e -shell-client-protocol.h"....#in
13a00 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 clude."config.h"....#include.<er
13a20 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 rno.h>....#include.<fcntl.h>....
13a40 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 #include.<poll.h>....#include.<s
13a60 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e tdbool.h>....#include.<stdint.h>
13a80 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 ....#include.<stdio.h>....#inclu
13aa0 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e de.<stdlib.h>....#include.<strin
13ac0 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 g.h>....#include.<sys/mman.h>...
13ae0 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 13 23 69 6e .#include.<sys/timerfd.h>....#in
13b00 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 clude.<unistd.h>....#include.<wa
13b20 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b 62 yland-client.h>....#include.<xkb
13b40 63 6f 6d 6d 6f 6e 2f 78 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 22 23 69 6e 63 6c 75 64 65 20 common/xkbcommon.h>..."#include.
13b60 3c 66 6f 6e 74 63 6f 6e 66 69 67 2f 66 6f 6e 74 63 6f 6e 66 69 67 2e 68 3e 00 00 00 15 23 69 6e <fontconfig/fontconfig.h>....#in
13b80 63 6c 75 64 65 20 3c 66 74 32 62 75 69 6c 64 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 46 clude.<ft2build.h>....#include.F
13ba0 54 5f 46 52 45 45 54 59 50 45 5f 48 00 00 00 00 00 00 00 17 23 64 65 66 69 6e 65 20 4d 41 58 5f T_FREETYPE_H........#define.MAX_
13bc0 54 45 58 54 20 20 36 35 35 33 36 00 00 00 14 23 64 65 66 69 6e 65 20 42 41 52 5f 48 20 20 20 20 TEXT..65536....#define.BAR_H....
13be0 20 32 38 00 00 00 14 23 64 65 66 69 6e 65 20 42 54 4e 5f 50 41 44 20 20 20 31 30 00 00 00 13 23 .28....#define.BTN_PAD...10....#
13c00 64 65 66 69 6e 65 20 50 41 44 20 20 20 20 20 20 20 38 00 00 00 00 00 00 00 1b 23 64 65 66 69 6e define.PAD.......8........#defin
13c20 65 20 42 47 5f 43 4f 4c 4f 52 20 20 20 20 20 43 46 47 5f 42 47 00 00 00 1b 23 64 65 66 69 6e 65 e.BG_COLOR.....CFG_BG....#define
13c40 20 46 47 5f 43 4f 4c 4f 52 20 20 20 20 20 43 46 47 5f 46 47 00 00 00 1f 23 64 65 66 69 6e 65 20 .FG_COLOR.....CFG_FG....#define.
13c60 43 55 52 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 5f 43 55 52 53 4f 52 00 00 00 1f 23 64 65 66 69 CUR_COLOR....CFG_CURSOR....#defi
13c80 6e 65 20 53 45 4c 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 5f 53 45 4c 5f 42 47 00 00 00 1f 23 64 ne.SEL_COLOR....CFG_SEL_BG....#d
13ca0 65 66 69 6e 65 20 53 45 4c 5f 46 47 20 20 20 20 20 20 20 43 46 47 5f 53 45 4c 5f 46 47 00 00 00 efine.SEL_FG.......CFG_SEL_FG...
13cc0 1f 23 64 65 66 69 6e 65 20 42 41 52 5f 42 47 20 20 20 20 20 20 20 43 46 47 5f 42 41 52 5f 42 47 .#define.BAR_BG.......CFG_BAR_BG
13ce0 00 00 00 1f 23 64 65 66 69 6e 65 20 42 41 52 5f 46 47 20 20 20 20 20 20 20 43 46 47 5f 42 41 52 ....#define.BAR_FG.......CFG_BAR
13d00 5f 46 47 00 00 00 20 23 64 65 66 69 6e 65 20 42 54 4e 5f 48 4f 56 20 20 20 20 20 20 43 46 47 5f _FG....#define.BTN_HOV......CFG_
13d20 42 54 4e 5f 48 4f 56 00 00 00 20 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 42 47 20 20 20 20 20 20 BTN_HOV....#define.DROP_BG......
13d40 43 46 47 5f 44 52 4f 50 5f 42 47 00 00 00 20 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 46 47 20 20 CFG_DROP_BG....#define.DROP_FG..
13d60 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 46 47 00 00 00 21 23 64 65 66 69 6e 65 20 44 52 4f 50 5f ....CFG_DROP_FG...!#define.DROP_
13d80 48 4f 56 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 00 00 00 24 23 64 65 66 69 6e 65 20 HOV.....CFG_DROP_HOV...$#define.
13da0 44 52 4f 50 5f 48 4f 56 5f 46 47 20 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 5f 46 47 00 00 00 1c DROP_HOV_FG..CFG_DROP_HOV_FG....
13dc0 23 64 65 66 69 6e 65 20 53 45 50 5f 43 4f 4c 4f 52 20 20 20 20 43 46 47 5f 53 45 50 00 00 00 00 #define.SEP_COLOR....CFG_SEP....
13de0 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 74 65 78 74 5b 4d 41 58 5f 54 45 58 54 5d 20 3d ...!static.char.text[MAX_TEXT].=
13e00 20 7b 30 7d 3b 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 20 74 6c 65 6e 20 20 20 3d 20 30 3b .{0};....static.int..tlen...=.0;
13e20 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 20 63 75 72 73 6f 72 20 3d 20 30 3b 00 00 00 1c 73 ....static.int..cursor.=.0;....s
13e40 74 61 74 69 63 20 69 6e 74 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 21 73 tatic.int..sel_anchor.=.-1;...!s
13e60 74 61 74 69 63 20 63 68 61 72 20 66 69 6c 65 70 61 74 68 5b 34 30 39 36 5d 20 3d 20 7b 30 7d 3b tatic.char.filepath[4096].=.{0};
13e80 00 00 00 1a 73 74 61 74 69 63 20 62 6f 6f 6c 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 ....static.bool.dirty.=.false;..
13ea0 00 00 00 00 00 19 73 74 61 74 69 63 20 46 54 5f 4c 69 62 72 61 72 79 20 66 74 5f 6c 69 62 3b 00 ......static.FT_Library.ft_lib;.
13ec0 00 00 1a 73 74 61 74 69 63 20 46 54 5f 46 61 63 65 20 20 20 20 66 74 5f 66 61 63 65 3b 00 00 00 ...static.FT_Face....ft_face;...
13ee0 19 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 63 65 6c 6c 5f 77 3b 00 00 00 19 73 74 .static.int........cell_w;....st
13f00 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 63 65 6c 6c 5f 68 3b 00 00 00 1b 73 74 61 74 69 atic.int........cell_h;....stati
13f20 63 20 69 6e 74 20 20 20 20 20 20 20 20 61 73 63 65 6e 64 65 72 3b 00 00 00 26 73 74 61 74 69 63 c.int........ascender;...&static
13f40 20 69 6e 74 20 20 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 5f 53 49 5a 45 3b .int........font_pt.=.FONT_SIZE;
13f60 00 00 00 00 00 00 00 45 74 79 70 65 64 65 66 20 65 6e 75 6d 20 7b 20 4d 45 4e 55 5f 4e 4f 4e 45 .......Etypedef.enum.{.MENU_NONE
13f80 20 3d 20 2d 31 2c 20 4d 45 4e 55 5f 46 49 4c 45 20 3d 20 30 2c 20 4d 45 4e 55 5f 49 4e 46 4f 20 .=.-1,.MENU_FILE.=.0,.MENU_INFO.
13fa0 3d 20 31 20 7d 20 4d 65 6e 75 49 64 3b 00 00 00 00 00 00 00 3f 74 79 70 65 64 65 66 20 73 74 72 =.1.}.MenuId;.......?typedef.str
13fc0 75 63 74 20 7b 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61 62 65 6c 3b 20 62 6f 6f 6c 20 73 65 uct.{.const.char.*label;.bool.se
13fe0 70 5f 61 66 74 65 72 3b 20 7d 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 00 00 00 26 73 74 61 74 p_after;.}.MenuItem;.......&stat
14000 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 74 65 6d 73 5b 5d 20 3d ic.const.MenuItem.file_items[].=
14020 20 7b 00 00 00 1d 20 20 7b 20 22 4e 65 77 22 2c 20 20 20 20 20 20 20 20 20 20 20 66 61 6c 73 65 .{......{."New",...........false
14040 20 7d 2c 00 00 00 1d 20 20 7b 20 22 4f 70 65 6e 22 2c 20 20 20 20 20 20 20 20 20 20 66 61 6c 73 .},......{."Open",..........fals
14060 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 22 2c 20 20 20 20 20 20 20 20 20 20 66 61 6c e.},......{."Save",..........fal
14080 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 20 41 73 22 2c 20 20 20 20 20 20 20 74 72 se.},......{."Save.As",.......tr
140a0 75 65 20 20 7d 2c 00 00 00 1d 20 20 7b 20 22 53 61 76 65 20 61 6e 64 20 51 75 69 74 22 2c 20 66 ue..},......{."Save.and.Quit",.f
140c0 61 6c 73 65 20 7d 2c 00 00 00 1d 20 20 7b 20 22 51 75 69 74 22 2c 20 20 20 20 20 20 20 20 20 20 alse.},......{."Quit",..........
140e0 66 61 6c 73 65 20 7d 2c 00 00 00 02 7d 3b 00 00 00 26 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4d false.},....};...&static.const.M
14100 65 6e 75 49 74 65 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 3d 20 7b 00 00 00 16 20 20 7b 20 enuItem.info_items[].=.{......{.
14120 22 41 62 6f 75 74 22 2c 20 20 66 61 6c 73 65 20 7d 2c 00 00 00 02 7d 3b 00 00 00 3e 23 64 65 66 "About",..false.},....};...>#def
14140 69 6e 65 20 4e 5f 46 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 66 69 6c 65 5f 69 74 ine.N_FILE.((int)(sizeof.file_it
14160 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 66 69 6c 65 5f 69 74 65 6d 73 29 29 00 00 00 3e 23 64 ems./.sizeof.*file_items))...>#d
14180 65 66 69 6e 65 20 4e 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 69 6e 66 6f 5f efine.N_INFO.((int)(sizeof.info_
141a0 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 69 6e 66 6f 5f 69 74 65 6d 73 29 29 00 00 00 00 items./.sizeof.*info_items))....
141c0 00 00 00 0e 73 74 72 75 63 74 20 70 6f 70 75 70 20 7b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 ....struct.popup.{......struct.w
141e0 6c 5f 73 75 72 66 61 63 65 20 20 20 2a 77 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 l_surface...*ws;......struct.xdg
14200 5f 73 75 72 66 61 63 65 20 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 _surface..*xs;......struct.xdg_t
14220 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 1e 20 20 76 6f 69 64 20 20 20 20 20 20 20 20 20 20 oplevel.*xt;......void..........
14240 20 20 20 20 20 20 2a 70 69 78 65 6c 73 3b 00 00 00 23 20 20 73 69 7a 65 5f 74 20 20 20 20 20 20 ......*pixels;...#..size_t......
14260 20 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 1b 20 20 73 74 72 75 63 .........pixels_size;......struc
14280 74 20 77 6c 5f 62 75 66 66 65 72 20 20 20 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c t.wl_buffer....*buf;......int.w,
142a0 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0c 20 20 62 .h;......bool.configured;......b
142c0 6f 6f 6c 20 6f 70 65 6e 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 ool.open;....};........struct.ap
142e0 70 20 7b 00 00 00 23 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 20 20 20 20 20 p.{...#..struct.wl_display......
14300 20 20 20 20 20 20 20 2a 64 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 .......*d;...%..struct.wl_regist
14320 72 79 20 20 20 20 20 20 20 20 20 20 20 20 2a 72 65 67 3b 00 00 00 26 20 20 73 74 72 75 63 74 20 ry............*reg;...&..struct.
14340 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 20 20 20 20 20 20 20 20 20 2a 63 6f 6d 70 3b 00 00 00 wl_compositor..........*comp;...
14360 25 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 %..struct.wl_shm................
14380 20 2a 73 68 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 20 .*shm;...$..struct.xdg_wm_base..
143a0 20 20 20 20 20 20 20 20 20 20 2a 77 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 ..........*wm;...$..struct.wl_su
143c0 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 77 73 3b 00 00 00 24 20 20 73 74 72 75 rface.............*ws;...$..stru
143e0 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 2a 78 73 3b 00 00 ct.xdg_surface............*xs;..
14400 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 20 20 20 20 20 20 20 20 .$..struct.xdg_toplevel.........
14420 20 20 2a 78 74 3b 00 00 00 26 20 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 20 20 20 20 20 ..*xt;...&..struct.wl_seat......
14440 20 20 20 20 20 20 20 20 20 20 2a 73 65 61 74 3b 00 00 00 2a 20 20 73 74 72 75 63 74 20 77 6c 5f ..........*seat;...*..struct.wl_
14460 6b 65 79 62 6f 61 72 64 20 20 20 20 20 20 20 20 20 20 20 20 2a 6b 65 79 62 6f 61 72 64 3b 00 00 keyboard............*keyboard;..
14480 00 29 20 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 20 20 20 20 20 20 20 20 20 20 .)..struct.wl_pointer...........
144a0 20 20 2a 70 6f 69 6e 74 65 72 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f ..*pointer;...%..struct.wl_data_
144c0 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 20 2a 64 64 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 device_manager.*ddm;...$..struct
144e0 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 20 20 20 20 20 20 20 20 2a 64 64 3b 00 00 00 24 .wl_data_device.........*dd;...$
14500 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 20 20 20 20 20 20 20 20 ..struct.wl_data_source.........
14520 2a 64 73 3b 00 00 00 1a 20 20 76 6f 69 64 20 20 20 20 20 20 20 20 20 20 20 20 2a 70 69 78 65 6c *ds;......void............*pixel
14540 73 3b 00 00 00 1f 20 20 73 69 7a 65 5f 74 20 20 20 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5f s;......size_t...........pixels_
14560 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 size;......struct.wl_buffer.*buf
14580 3b 00 00 00 21 20 20 69 6e 74 20 77 2c 20 68 2c 20 70 65 6e 64 69 6e 67 5f 77 2c 20 70 65 6e 64 ;...!..int.w,.h,.pending_w,.pend
145a0 69 6e 67 5f 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 1e ing_h;......bool.configured;....
145c0 20 20 73 74 72 75 63 74 20 78 6b 62 5f 63 6f 6e 74 65 78 74 20 2a 78 6b 62 5f 63 74 78 3b 00 00 ..struct.xkb_context.*xkb_ctx;..
145e0 00 21 20 20 73 74 72 75 63 74 20 78 6b 62 5f 6b 65 79 6d 61 70 20 20 2a 78 6b 62 5f 6b 65 79 6d .!..struct.xkb_keymap..*xkb_keym
14600 61 70 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 78 6b 62 5f 73 74 61 74 65 20 20 20 2a 78 6b 62 ap;......struct.xkb_state...*xkb
14620 5f 73 74 61 74 65 3b 00 00 00 15 20 20 69 6e 74 20 20 20 20 20 20 72 65 70 65 61 74 5f 66 64 3b _state;......int......repeat_fd;
14640 00 00 00 16 20 20 75 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 6b 65 79 3b 00 00 00 17 20 20 ......uint32_t.repeat_key;......
14660 69 6e 74 33 32 5f 74 20 20 72 65 70 65 61 74 5f 72 61 74 65 3b 00 00 00 18 20 20 69 6e 74 33 32 int32_t..repeat_rate;......int32
14680 5f 74 20 20 72 65 70 65 61 74 5f 64 65 6c 61 79 3b 00 00 00 1f 20 20 63 68 61 72 20 20 20 20 20 _t..repeat_delay;......char.....
146a0 63 6c 69 70 62 6f 61 72 64 5b 4d 41 58 5f 54 45 58 54 5d 3b 00 00 00 19 20 20 69 6e 74 20 20 20 clipboard[MAX_TEXT];......int...
146c0 20 20 20 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3b 00 00 00 17 20 20 75 69 6e 74 33 32 5f 74 20 ...clipboard_len;......uint32_t.
146e0 6c 61 73 74 5f 73 65 72 69 61 6c 3b 00 00 00 1c 20 20 69 6e 74 20 20 20 20 20 20 6d 6f 75 73 65 last_serial;......int......mouse
14700 5f 78 2c 20 6d 6f 75 73 65 5f 79 3b 00 00 00 15 20 20 4d 65 6e 75 49 64 20 20 20 6f 70 65 6e 5f _x,.mouse_y;......MenuId...open_
14720 6d 65 6e 75 3b 00 00 00 18 20 20 69 6e 74 20 20 20 20 20 20 68 6f 76 65 72 65 64 5f 69 74 65 6d menu;......int......hovered_item
14740 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 61 62 6f 75 74 3b 00 00 00 02 7d 3b ;......struct.popup.about;....};
14760 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f .......'static.void.update_font_
14780 6d 65 74 72 69 63 73 28 76 6f 69 64 29 20 7b 00 00 00 35 20 20 46 54 5f 53 65 74 5f 43 68 61 72 metrics(void).{...5..FT_Set_Char
147a0 5f 53 69 7a 65 28 66 74 5f 66 61 63 65 2c 20 30 2c 20 66 6f 6e 74 5f 70 74 20 2a 20 36 34 2c 20 _Size(ft_face,.0,.font_pt.*.64,.
147c0 39 36 2c 20 39 36 29 3b 00 00 00 33 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 96,.96);...3..FT_Load_Char(ft_fa
147e0 63 65 2c 20 27 30 27 2c 20 46 54 5f 4c 4f 41 44 5f 41 44 56 41 4e 43 45 5f 4f 4e 4c 59 29 3b 00 ce,.'0',.FT_LOAD_ADVANCE_ONLY);.
14800 00 00 3a 20 20 63 65 6c 6c 5f 77 20 20 20 3d 20 28 69 6e 74 29 28 28 66 74 5f 66 61 63 65 2d 3e ..:..cell_w...=.(int)((ft_face->
14820 67 6c 79 70 68 2d 3e 61 64 76 61 6e 63 65 2e 78 20 2b 20 33 32 29 20 3e 3e 20 36 29 3b 00 00 00 glyph->advance.x.+.32).>>.6);...
14840 39 20 20 61 73 63 65 6e 64 65 72 20 3d 20 28 69 6e 74 29 28 66 74 5f 66 61 63 65 2d 3e 73 69 7a 9..ascender.=.(int)(ft_face->siz
14860 65 2d 3e 6d 65 74 72 69 63 73 2e 61 73 63 65 6e 64 65 72 20 3e 3e 20 36 29 3b 00 00 00 42 20 20 e->metrics.ascender.>>.6);...B..
14880 69 6e 74 20 64 65 73 63 20 3d 20 28 69 6e 74 29 28 28 2d 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 int.desc.=.(int)((-ft_face->size
148a0 2d 3e 6d 65 74 72 69 63 73 2e 64 65 73 63 65 6e 64 65 72 20 2b 20 36 33 29 20 3e 3e 20 36 29 3b ->metrics.descender.+.63).>>.6);
148c0 00 00 00 1d 20 20 63 65 6c 6c 5f 68 20 20 20 3d 20 61 73 63 65 6e 64 65 72 20 2b 20 64 65 73 63 ......cell_h...=.ascender.+.desc
148e0 3b 00 00 00 1d 20 20 69 66 20 28 63 65 6c 6c 5f 77 20 3c 20 31 29 20 63 65 6c 6c 5f 77 20 3d 20 ;......if.(cell_w.<.1).cell_w.=.
14900 31 3b 00 00 00 1d 20 20 69 66 20 28 63 65 6c 6c 5f 68 20 3c 20 31 29 20 63 65 6c 6c 5f 68 20 3d 1;......if.(cell_h.<.1).cell_h.=
14920 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 62 6f 6f 6c 20 6c 6f 61 64 .1;....}........static.bool.load
14940 5f 66 6f 6e 74 28 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 49 6e 69 74 28 29 3b 00 00 00 35 _font(void).{......FcInit();...5
14960 20 20 46 63 50 61 74 74 65 72 6e 20 2a 70 61 74 20 3d 20 46 63 4e 61 6d 65 50 61 72 73 65 28 28 ..FcPattern.*pat.=.FcNameParse((
14980 46 63 43 68 61 72 38 20 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 30 20 20 46 63 43 6f 6e FcChar8.*)FONT_NAME);...0..FcCon
149a0 66 69 67 53 75 62 73 74 69 74 75 74 65 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 46 63 4d 61 74 63 68 figSubstitute(NULL,.pat,.FcMatch
149c0 50 61 74 74 65 72 6e 29 3b 00 00 00 1b 20 20 46 63 44 65 66 61 75 6c 74 53 75 62 73 74 69 74 75 Pattern);......FcDefaultSubstitu
149e0 74 65 28 70 61 74 29 3b 00 00 00 0f 20 20 46 63 52 65 73 75 6c 74 20 72 65 73 3b 00 00 00 32 20 te(pat);......FcResult.res;...2.
14a00 20 46 63 50 61 74 74 65 72 6e 20 2a 6d 61 74 63 68 20 3d 20 46 63 46 6f 6e 74 4d 61 74 63 68 28 .FcPattern.*match.=.FcFontMatch(
14a20 4e 55 4c 4c 2c 20 70 61 74 2c 20 26 72 65 73 29 3b 00 00 00 18 20 20 46 63 50 61 74 74 65 72 6e NULL,.pat,.&res);......FcPattern
14a40 44 65 73 74 72 6f 79 28 70 61 74 29 3b 00 00 00 1b 20 20 69 66 20 28 21 6d 61 74 63 68 29 20 72 Destroy(pat);......if.(!match).r
14a60 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 17 20 20 46 63 43 68 61 72 38 20 2a 70 61 74 68 20 eturn.false;......FcChar8.*path.
14a80 3d 20 4e 55 4c 4c 3b 00 00 00 6f 20 20 69 66 20 28 46 63 50 61 74 74 65 72 6e 47 65 74 53 74 72 =.NULL;...o..if.(FcPatternGetStr
14aa0 69 6e 67 28 6d 61 74 63 68 2c 20 46 43 5f 46 49 4c 45 2c 20 30 2c 20 26 70 61 74 68 29 20 21 3d ing(match,.FC_FILE,.0,.&path).!=
14ac0 20 46 63 52 65 73 75 6c 74 4d 61 74 63 68 29 20 7b 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 .FcResultMatch).{.FcPatternDestr
14ae0 6f 79 28 6d 61 74 63 68 29 3b 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 7d 00 00 00 4b 20 20 oy(match);.return.false;.}...K..
14b00 69 66 20 28 46 54 5f 49 6e 69 74 5f 46 72 65 65 54 79 70 65 28 26 66 74 5f 6c 69 62 29 29 20 7b if.(FT_Init_FreeType(&ft_lib)).{
14b20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 20 72 65 74 75 72 6e .FcPatternDestroy(match);.return
14b40 20 66 61 6c 73 65 3b 20 7d 00 00 00 66 20 20 69 66 20 28 46 54 5f 4e 65 77 5f 46 61 63 65 28 66 .false;.}...f..if.(FT_New_Face(f
14b60 74 5f 6c 69 62 2c 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 29 70 61 74 68 2c 20 30 2c 20 26 66 t_lib,.(const.char.*)path,.0,.&f
14b80 74 5f 66 61 63 65 29 29 20 7b 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 t_face)).{.FcPatternDestroy(matc
14ba0 68 29 3b 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 7d 00 00 00 1a 20 20 46 63 50 61 74 74 65 h);.return.false;.}......FcPatte
14bc0 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 20 20 75 70 64 61 74 65 5f 66 6f rnDestroy(match);......update_fo
14be0 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 nt_metrics();......return.true;.
14c00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 70 73 65 74 28 76 6f 69 ...}.......Fstatic.void.pset(voi
14c20 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e d.*px,.int.pw,.int.ph,.int.x,.in
14c40 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2b 20 20 69 66 20 28 78 20 3e 3d t.y,.uint32_t.c).{...+..if.(x.>=
14c60 20 30 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 70 77 20 26 26 20 79 20 3c 20 70 68 .0.&&.y.>=.0.&&.x.<.pw.&&.y.<.ph
14c80 29 00 00 00 25 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 2a 20 70 77 )...%....((uint32_t.*)px)[y.*.pw
14ca0 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 55 73 74 61 74 69 63 20 76 6f .+.x].=.c;....}.......Ustatic.vo
14cc0 69 64 20 66 72 65 63 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 id.frect(void.*px,.int.pw,.int.p
14ce0 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 75 h,.int.x,.int.y,.int.w,.int.h,.u
14d00 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 64 79 20 3d 20 int32_t.c).{......for.(int.dy.=.
14d20 30 3b 20 64 79 20 3c 20 68 3b 20 64 79 2b 2b 29 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 0;.dy.<.h;.dy++)..."....for.(int
14d40 20 64 78 20 3d 20 30 3b 20 64 78 20 3c 20 77 3b 20 64 78 2b 2b 29 00 00 00 26 20 20 20 20 20 20 .dx.=.0;.dx.<.w;.dx++)...&......
14d60 70 73 65 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2b 64 78 2c 20 79 2b 64 79 2c 20 63 29 3b pset(px,.pw,.ph,.x+dx,.y+dy,.c);
14d80 00 00 00 01 7d 00 00 00 00 00 00 00 52 73 74 61 74 69 63 20 76 6f 69 64 20 62 70 69 78 28 76 6f ....}.......Rstatic.void.bpix(vo
14da0 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 id.*px,.int.pw,.int.ph,.int.x,.i
14dc0 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 66 67 2c 20 75 69 6e 74 38 5f 74 20 61 29 20 7b 00 nt.y,.uint32_t.fg,.uint8_t.a).{.
14de0 00 00 33 20 20 69 66 20 28 78 20 3c 20 30 20 7c 7c 20 79 20 3c 20 30 20 7c 7c 20 78 20 3e 3d 20 ..3..if.(x.<.0.||.y.<.0.||.x.>=.
14e00 70 77 20 7c 7c 20 79 20 3e 3d 20 70 68 29 20 72 65 74 75 72 6e 3b 00 00 00 30 20 20 75 69 6e 74 pw.||.y.>=.ph).return;...0..uint
14e20 33 32 5f 74 20 2a 64 73 74 20 3d 20 26 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 32_t.*dst.=.&((uint32_t.*)px)[y.
14e40 2a 20 70 77 20 2b 20 78 5d 3b 00 00 00 15 20 20 75 69 6e 74 33 32 5f 74 20 62 67 20 3d 20 2a 64 *.pw.+.x];......uint32_t.bg.=.*d
14e60 73 74 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 72 20 3d 20 28 28 66 67 3e 3e 31 36 26 30 st;...?..uint32_t.r.=.((fg>>16&0
14e80 78 46 46 29 2a 61 20 2b 20 28 62 67 3e 3e 31 36 26 30 78 46 46 29 2a 28 32 35 35 2d 61 29 29 20 xFF)*a.+.(bg>>16&0xFF)*(255-a)).
14ea0 2f 20 32 35 35 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 67 20 3d 20 28 28 66 67 3e 3e 20 /.255;...?..uint32_t.g.=.((fg>>.
14ec0 38 26 30 78 46 46 29 2a 61 20 2b 20 28 62 67 3e 3e 20 38 26 30 78 46 46 29 2a 28 32 35 35 2d 61 8&0xFF)*a.+.(bg>>.8&0xFF)*(255-a
14ee0 29 29 20 2f 20 32 35 35 3b 00 00 00 3f 20 20 75 69 6e 74 33 32 5f 74 20 62 20 3d 20 28 28 66 67 ))./.255;...?..uint32_t.b.=.((fg
14f00 20 20 20 20 26 30 78 46 46 29 2a 61 20 2b 20 28 62 67 20 20 20 20 26 30 78 46 46 29 2a 28 32 35 ....&0xFF)*a.+.(bg....&0xFF)*(25
14f20 35 2d 61 29 29 20 2f 20 32 35 35 3b 00 00 00 2b 20 20 2a 64 73 74 20 3d 20 30 78 46 46 30 30 30 5-a))./.255;...+..*dst.=.0xFF000
14f40 30 30 30 20 7c 20 28 72 3c 3c 31 36 29 20 7c 20 28 67 3c 3c 38 29 20 7c 20 62 3b 00 00 00 01 7d 000.|.(r<<16).|.(g<<8).|.b;....}
14f60 00 00 00 00 00 00 00 5b 73 74 61 74 69 63 20 76 6f 69 64 20 64 67 6c 79 70 68 28 76 6f 69 64 20 .......[static.void.dglyph(void.
14f80 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 *px,.int.pw,.int.ph,.int.cx,.int
14fa0 20 63 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 70 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 .cy,.uint32_t.cp,.uint32_t.color
14fc0 29 20 7b 00 00 00 2c 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 20 63 ).{...,..FT_Load_Char(ft_face,.c
14fe0 70 2c 20 46 54 5f 4c 4f 41 44 5f 52 45 4e 44 45 52 29 3b 00 00 00 25 20 20 46 54 5f 47 6c 79 70 p,.FT_LOAD_RENDER);...%..FT_Glyp
15000 68 53 6c 6f 74 20 73 6c 6f 74 20 3d 20 66 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 3b 00 00 00 20 hSlot.slot.=.ft_face->glyph;....
15020 20 20 46 54 5f 42 69 74 6d 61 70 20 2a 62 6d 20 3d 20 26 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 3b ..FT_Bitmap.*bm.=.&slot->bitmap;
15040 00 00 00 1d 20 20 69 6e 74 20 6f 78 20 3d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 6c 65 66 74 ......int.ox.=.slot->bitmap_left
15060 3b 00 00 00 2c 20 20 69 6e 74 20 6f 79 20 3d 20 63 79 20 2b 20 61 73 63 65 6e 64 65 72 20 2d 20 ;...,..int.oy.=.cy.+.ascender.-.
15080 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 74 6f 70 3b 00 00 00 2f 20 20 66 6f 72 20 28 69 6e 74 20 slot->bitmap_top;.../..for.(int.
150a0 72 6f 77 20 3d 20 30 3b 20 72 6f 77 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 72 6f 77 73 3b 20 72 6f row.=.0;.row.<.(int)bm->rows;.ro
150c0 77 2b 2b 29 00 00 00 34 20 20 20 20 66 6f 72 20 28 69 6e 74 20 63 6f 6c 20 3d 20 30 3b 20 63 6f w++)...4....for.(int.col.=.0;.co
150e0 6c 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 77 69 64 74 68 3b 20 63 6f 6c 2b 2b 29 20 7b 00 00 00 35 l.<.(int)bm->width;.col++).{...5
15100 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 76 20 3d 20 62 6d 2d 3e 62 75 66 66 65 72 5b 72 6f ......uint8_t.av.=.bm->buffer[ro
15120 77 20 2a 20 62 6d 2d 3e 70 69 74 63 68 20 2b 20 63 6f 6c 5d 3b 00 00 00 3d 20 20 20 20 20 20 69 w.*.bm->pitch.+.col];...=......i
15140 66 20 28 61 76 29 20 62 70 69 78 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 63 78 2b 6f 78 2b 63 6f f.(av).bpix(px,.pw,.ph,.cx+ox+co
15160 6c 2c 20 6f 79 2b 72 6f 77 2c 20 63 6f 6c 6f 72 2c 20 61 76 29 3b 00 00 00 05 20 20 20 20 7d 00 l,.oy+row,.color,.av);........}.
15180 00 00 01 7d 00 00 00 00 00 00 00 59 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 74 72 28 76 6f 69 ...}.......Ystatic.void.dstr(voi
151a0 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e d.*px,.int.pw,.int.ph,.int.x,.in
151c0 74 20 79 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c t.y,.const.char.*s,.uint32_t.col
151e0 6f 72 29 20 7b 00 00 00 2f 20 20 66 6f 72 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 20 3d 20 or).{.../..for.(const.char.*p.=.
15200 73 3b 20 2a 70 3b 20 70 2b 2b 2c 20 78 20 2b 3d 20 63 65 6c 6c 5f 77 29 00 00 00 37 20 20 20 20 s;.*p;.p++,.x.+=.cell_w)...7....
15220 64 67 6c 79 70 68 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 28 75 6e 73 69 67 6e dglyph(px,.pw,.ph,.x,.y,.(unsign
15240 65 64 20 63 68 61 72 29 2a 70 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 ed.char)*p,.color);....}.......A
15260 73 74 61 74 69 63 20 69 6e 74 20 73 70 77 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29 20 7b 20 static.int.spw(const.char.*s).{.
15280 72 65 74 75 72 6e 20 28 69 6e 74 29 73 74 72 6c 65 6e 28 73 29 20 2a 20 63 65 6c 6c 5f 77 3b 20 return.(int)strlen(s).*.cell_w;.
152a0 7d 00 00 00 00 00 00 00 5a 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 6b 65 5f 73 68 6d 28 73 }.......Zstatic.void.*make_shm(s
152c0 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 73 74 72 75 truct.app.*a,.int.w,.int.h,.stru
152e0 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 2a 6f 62 75 66 2c 20 73 69 7a 65 5f 74 20 2a 6f 73 7a ct.wl_buffer.**obuf,.size_t.*osz
15300 29 20 7b 00 00 00 20 20 20 73 69 7a 65 5f 74 20 73 7a 20 3d 20 28 73 69 7a 65 5f 74 29 77 20 2a ).{......size_t.sz.=.(size_t)w.*
15320 20 68 20 2a 20 34 3b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 .h.*.4;...#..char.t[].=."/tmp/wa
15340 79 6c 61 6e 64 2d 58 58 58 58 58 58 22 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 yland-XXXXXX";...!..int.fd.=.mks
15360 74 65 6d 70 28 74 29 3b 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 42 20 20 69 66 20 28 66 64 20 temp(t);.unlink(t);...B..if.(fd.
15380 3c 20 30 20 7c 7c 20 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 7a 29 20 3c 20 30 29 20 7b 20 <.0.||.ftruncate(fd,.sz).<.0).{.
153a0 70 65 72 72 6f 72 28 22 73 68 6d 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 45 20 20 76 perror("shm");.exit(1);.}...E..v
153c0 6f 69 64 20 2a 70 78 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 7a 2c 20 50 52 4f 54 5f 52 45 oid.*px.=.mmap(NULL,.sz,.PROT_RE
153e0 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 AD|PROT_WRITE,.MAP_SHARED,.fd,.0
15400 29 3b 00 00 00 34 20 20 69 66 20 28 70 78 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 );...4..if.(px.==.MAP_FAILED).{.
15420 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 40 20 20 perror("mmap");.exit(1);.}...@..
15440 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 struct.wl_shm_pool.*pool.=.wl_sh
15460 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 7a 29 3b 00 00 m_create_pool(a->shm,.fd,.sz);..
15480 00 50 20 20 2a 6f 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 .P..*obuf.=.wl_shm_pool_create_b
154a0 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 2c 20 68 2c 20 77 2a 34 2c 20 57 4c 5f 53 48 4d uffer(pool,.0,.w,.h,.w*4,.WL_SHM
154c0 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 27 20 20 77 6c 5f 73 68 6d 5f 70 _FORMAT_ARGB8888);...'..wl_shm_p
154e0 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 ool_destroy(pool);.close(fd);...
15500 15 20 20 69 66 20 28 6f 73 7a 29 20 2a 6f 73 7a 20 3d 20 73 7a 3b 00 00 00 0c 20 20 72 65 74 75 ...if.(osz).*osz.=.sz;......retu
15520 72 6e 20 70 78 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3a 73 74 61 74 69 63 20 69 6e 74 20 62 61 rn.px;....}.......:static.int.ba
15540 72 5f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 20 20 7b 20 72 65 74 75 72 6e 20 61 2d r_y(struct.app.*a)...{.return.a-
15560 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 3a 73 74 61 74 69 63 20 69 6e 74 20 74 65 78 74 >h.-.BAR_H;.}...:static.int.text
15580 5f 68 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 20 7b 20 72 65 74 75 72 6e 20 61 2d 3e 68 _h(struct.app.*a)..{.return.a->h
155a0 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 00 00 00 00 19 73 74 61 74 69 63 20 69 6e 74 20 62 74 .-.BAR_H;.}........static.int.bt
155c0 6e 5f 78 28 69 6e 74 20 69 29 20 7b 00 00 00 0e 20 20 69 6e 74 20 78 20 3d 20 50 41 44 3b 00 00 n_x(int.i).{......int.x.=.PAD;..
155e0 00 27 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 6c 65 22 .'..const.char.*lbls[].=.{"File"
15600 2c 22 49 6e 66 6f 22 7d 3b 00 00 00 3c 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a ,"Info"};...<..for.(int.j.=.0;.j
15620 20 3c 20 69 3b 20 6a 2b 2b 29 20 78 20 2b 3d 20 73 70 77 28 6c 62 6c 73 5b 6a 5d 29 20 2b 20 42 .<.i;.j++).x.+=.spw(lbls[j]).+.B
15640 54 4e 5f 50 41 44 2a 32 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 78 3b 00 00 00 01 7d 00 00 00 TN_PAD*2;......return.x;....}...
15660 47 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 77 28 69 6e 74 20 69 29 20 7b 20 72 65 74 75 72 Gstatic.int.btn_w(int.i).{.retur
15680 6e 20 73 70 77 28 69 3d 3d 30 3f 22 46 69 6c 65 22 3a 22 49 6e 66 6f 22 29 20 2b 20 42 54 4e 5f n.spw(i==0?"File":"Info").+.BTN_
156a0 50 41 44 2a 32 3b 20 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 69 6e 74 20 64 69 68 28 76 PAD*2;.}.......+static.int.dih(v
156c0 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 63 65 6c 6c 5f 68 20 2b 20 38 3b 20 7d 00 00 00 00 00 oid).{.return.cell_h.+.8;.}.....
156e0 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 4d 65 6e 75 49 ..#static.int.drop_total_h(MenuI
15700 64 20 6d 29 20 7b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c d.m).{...+..int.n.=.(m==MENU_FIL
15720 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 43 20 20 63 6f 6e 73 74 E).?.N_FILE.:.N_INFO;...C..const
15740 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 .MenuItem.*items.=.(m==MENU_FILE
15760 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 18 ).?.file_items.:.info_items;....
15780 20 20 69 6e 74 20 68 20 3d 20 6e 20 2a 20 64 69 68 28 29 20 2b 20 34 3b 00 00 00 3d 20 20 66 6f ..int.h.=.n.*.dih().+.4;...=..fo
157a0 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 69 66 20 28 69 74 r.(int.i.=.0;.i.<.n;.i++).if.(it
157c0 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 68 20 2b 3d 20 34 3b 00 00 00 0b 20 20 72 ems[i].sep_after).h.+=.4;......r
157e0 65 74 75 72 6e 20 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 69 6e 74 20 eturn.h;....}........static.int.
15800 64 72 6f 70 5f 77 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 10 20 20 69 6e 74 20 6d 61 78 77 drop_w(MenuId.m).{......int.maxw
15820 20 3d 20 38 30 3b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c .=.80;...+..int.n.=.(m==MENU_FIL
15840 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 43 20 20 63 6f 6e 73 74 E).?.N_FILE.:.N_INFO;...C..const
15860 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 .MenuItem.*items.=.(m==MENU_FILE
15880 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 1f ).?.file_items.:.info_items;....
158a0 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 ..for.(int.i.=.0;.i.<.n;.i++).{.
158c0 00 00 2c 20 20 20 20 69 6e 74 20 77 20 3d 20 73 70 77 28 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 ..,....int.w.=.spw(items[i].labe
158e0 6c 29 20 2b 20 42 54 4e 5f 50 41 44 2a 32 3b 00 00 00 1b 20 20 20 20 69 66 20 28 77 20 3e 20 6d l).+.BTN_PAD*2;........if.(w.>.m
15900 61 78 77 29 20 6d 61 78 77 20 3d 20 77 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 72 65 74 75 72 axw).maxw.=.w;......}......retur
15920 6e 20 6d 61 78 77 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 69 6e 74 20 69 n.maxw;....}.......5static.int.i
15940 74 65 6d 5f 61 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 tem_at(struct.app.*a,.MenuId.m,.
15960 69 6e 74 20 6d 79 29 20 7b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 int.my).{......int.by.=.bar_y(a)
15980 3b 00 00 00 2b 20 20 69 6e 74 20 6e 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 ;...+..int.n.=.(m==MENU_FILE).?.
159a0 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 43 20 20 63 6f 6e 73 74 20 4d 65 6e 75 N_FILE.:.N_INFO;...C..const.Menu
159c0 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 Item.*items.=.(m==MENU_FILE).?.f
159e0 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 24 20 20 69 6e 74 ile_items.:.info_items;...$..int
15a00 20 69 79 20 3d 20 62 79 20 2d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 20 2b 20 34 3b 00 .iy.=.by.-.drop_total_h(m).+.4;.
15a20 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 .....for.(int.i.=.0;.i.<.n;.i++)
15a40 20 7b 00 00 00 2e 20 20 20 20 69 66 20 28 6d 79 20 3e 3d 20 69 79 20 26 26 20 6d 79 20 3c 20 69 .{........if.(my.>=.iy.&&.my.<.i
15a60 79 20 2b 20 64 69 68 28 29 29 20 72 65 74 75 72 6e 20 69 3b 00 00 00 10 20 20 20 20 69 79 20 2b y.+.dih()).return.i;........iy.+
15a80 3d 20 64 69 68 28 29 3b 00 00 00 24 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 =.dih();...$....if.(items[i].sep
15aa0 5f 61 66 74 65 72 29 20 69 79 20 2b 3d 20 34 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 _after).iy.+=.4;......}......ret
15ac0 75 72 6e 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 urn.-1;....}.......#static.void.
15ae0 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 do_save(struct.app.*a);..."stati
15b00 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 c.void.do_new(struct.app.*a);...
15b20 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 #static.void.do_open(struct.app.
15b40 2a 61 29 3b 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 *a);...&static.void.open_about(s
15b60 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 truct.app.*a);..."static.void.re
15b80 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 00 00 00 00 23 73 74 61 74 draw(struct.app.*a);.......#stat
15ba0 69 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 ic.void.do_new(struct.app.*a).{.
15bc0 00 00 1f 20 20 6d 65 6d 73 65 74 28 74 65 78 74 2c 20 30 2c 20 73 69 7a 65 6f 66 20 74 65 78 74 .....memset(text,.0,.sizeof.text
15be0 29 3b 00 00 00 22 20 20 74 6c 65 6e 3d 30 3b 20 63 75 72 73 6f 72 3d 30 3b 20 73 65 6c 5f 61 6e );..."..tlen=0;.cursor=0;.sel_an
15c00 63 68 6f 72 3d 2d 31 3b 00 00 00 20 20 20 66 69 6c 65 70 61 74 68 5b 30 5d 3d 27 5c 30 27 3b 20 chor=-1;......filepath[0]='\0';.
15c20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 dirty=false;....}.......$static.
15c40 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 void.do_save(struct.app.*a).{...
15c60 15 20 20 69 66 20 28 21 66 69 6c 65 70 61 74 68 5b 30 5d 29 20 7b 00 00 00 23 20 20 20 20 63 6f ...if.(!filepath[0]).{...#....co
15c80 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 nst.char.*h.=.getenv("HOME");...
15ca0 47 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 G....snprintf(filepath,.sizeof.f
15cc0 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 3f 68 3a ilepath,."%s/untitled.txt",.h?h:
15ce0 22 2f 74 6d 70 22 29 3b 00 00 00 03 20 20 7d 00 00 00 3a 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 "/tmp");......}...:..int.fd.=.op
15d00 65 6e 28 66 69 6c 65 70 61 74 68 2c 20 4f 5f 57 52 4f 4e 4c 59 7c 4f 5f 43 52 45 41 54 7c 4f 5f en(filepath,.O_WRONLY|O_CREAT|O_
15d20 54 52 55 4e 43 2c 20 30 36 34 34 29 3b 00 00 00 29 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b TRUNC,.0644);...)..if.(fd.<.0).{
15d40 20 70 65 72 72 6f 72 28 22 73 61 76 65 22 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 30 20 20 .perror("save");.return;.}...0..
15d60 77 72 69 74 65 28 66 64 2c 20 74 65 78 74 2c 20 74 6c 65 6e 29 3b 20 63 6c 6f 73 65 28 66 64 29 write(fd,.text,.tlen);.close(fd)
15d80 3b 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 ;.dirty=false;....}.......$stati
15da0 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 c.void.do_open(struct.app.*a).{.
15dc0 00 00 21 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d ..!..const.char.*h.=.getenv("HOM
15de0 45 22 29 3b 00 00 00 12 20 20 63 68 61 72 20 70 61 74 68 5b 34 30 39 36 5d 3b 00 00 00 3d 20 20 E");......char.path[4096];...=..
15e00 73 6e 70 72 69 6e 74 66 28 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 70 61 74 68 2c 20 22 25 73 2f snprintf(path,.sizeof.path,."%s/
15e20 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 3f 68 3a 22 2f 74 6d 70 22 29 3b 00 00 00 20 20 untitled.txt",.h?h:"/tmp");.....
15e40 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 70 61 74 68 2c 20 4f 5f 52 44 4f 4e 4c 59 29 3b 00 .int.fd.=.open(path,.O_RDONLY);.
15e60 00 00 15 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 34 20 20 73 73 .....if.(fd.<.0).return;...4..ss
15e80 69 7a 65 5f 74 20 6e 20 3d 20 72 65 61 64 28 66 64 2c 20 74 65 78 74 2c 20 4d 41 58 5f 54 45 58 ize_t.n.=.read(fd,.text,.MAX_TEX
15ea0 54 2d 31 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 14 20 20 69 66 20 28 6e 20 3c 20 30 29 T-1);.close(fd);......if.(n.<.0)
15ec0 20 72 65 74 75 72 6e 3b 00 00 00 1f 20 20 74 6c 65 6e 3d 28 69 6e 74 29 6e 3b 20 74 65 78 74 5b .return;......tlen=(int)n;.text[
15ee0 74 6c 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 1d 20 20 63 75 72 73 6f 72 3d 74 6c 65 6e 3b 20 73 65 tlen]='\0';......cursor=tlen;.se
15f00 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 32 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 l_anchor=-1;...2..snprintf(filep
15f20 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 22 2c 20 70 61 74 68 ath,.sizeof.filepath,."%s",.path
15f40 29 3b 00 00 00 0e 20 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 );......dirty=false;....}.......
15f60 39 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 74 72 75 63 74 20 61 70 9static.void.fire_item(struct.ap
15f80 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 69 64 78 29 20 7b 00 00 00 31 20 20 p.*a,.MenuId.m,.int.idx).{...1..
15fa0 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2d 3e 68 6f 76 a->open_menu.=.MENU_NONE;.a->hov
15fc0 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 17 20 20 69 66 20 28 6d 20 3d 3d 20 4d 45 ered_item.=.-1;......if.(m.==.ME
15fe0 4e 55 5f 46 49 4c 45 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 69 64 78 29 20 7b NU_FILE).{........switch.(idx).{
16000 00 00 00 1f 20 20 20 20 20 20 63 61 73 65 20 30 3a 20 64 6f 5f 6e 65 77 28 61 29 3b 20 62 72 65 ..........case.0:.do_new(a);.bre
16020 61 6b 3b 00 00 00 20 20 20 20 20 20 20 63 61 73 65 20 31 3a 20 64 6f 5f 6f 70 65 6e 28 61 29 3b ak;..........case.1:.do_open(a);
16040 20 62 72 65 61 6b 3b 00 00 00 20 20 20 20 20 20 20 63 61 73 65 20 32 3a 20 64 6f 5f 73 61 76 65 .break;..........case.2:.do_save
16060 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 0f 20 20 20 20 20 20 63 61 73 65 20 33 3a 20 7b 00 00 (a);.break;..........case.3:.{..
16080 00 27 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 .'........const.char.*h.=.getenv
160a0 28 22 48 4f 4d 45 22 29 3b 00 00 00 4b 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 ("HOME");...K........snprintf(fi
160c0 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 lepath,.sizeof.filepath,."%s/unt
160e0 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 3f 68 3a 22 2f 74 6d 70 22 29 3b 00 00 00 1a 20 20 20 20 itled.txt",.h?h:"/tmp");........
16100 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 07 20 20 20 20 20 20 ....do_save(a);.break;..........
16120 7d 00 00 00 22 20 20 20 20 20 20 63 61 73 65 20 34 3a 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 65 }..."......case.4:.do_save(a);.e
16140 78 69 74 28 30 29 3b 00 00 00 16 20 20 20 20 20 20 63 61 73 65 20 35 3a 20 65 78 69 74 28 30 29 xit(0);..........case.5:.exit(0)
16160 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1e 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6d 20 3d 3d 20 ;........}......}.else.if.(m.==.
16180 4d 45 4e 55 5f 49 4e 46 4f 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 69 64 78 20 3d 3d 20 30 MENU_INFO).{........if.(idx.==.0
161a0 29 20 6f 70 65 6e 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 64 ).open_about(a);......}......red
161c0 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 raw(a);....}.......%static.void.
161e0 64 72 61 77 5f 62 61 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2d 20 20 76 draw_bar(struct.app.*a).{...-..v
16200 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 oid.*px.=.a->pixels;.int.pw=a->w
16220 2c 20 70 68 3d 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 ,.ph=a->h;......int.by.=.bar_y(a
16240 29 3b 00 00 00 2a 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c 62 79 2c 20 70 77 );...*..frect(px,pw,ph,.0,by,.pw
16260 2c 42 41 52 5f 48 2c 20 42 41 52 5f 42 47 29 3b 00 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 70 ,BAR_H,.BAR_BG);...-..frect(px,p
16280 77 2c 70 68 2c 20 30 2c 62 79 2c 20 70 77 2c 31 2c 20 20 20 20 20 53 45 50 5f 43 4f 4c 4f 52 29 w,ph,.0,by,.pw,1,.....SEP_COLOR)
162a0 3b 00 00 00 27 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 ;...'..const.char.*lbls[].=.{"Fi
162c0 6c 65 22 2c 22 49 6e 66 6f 22 7d 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 le","Info"};......for.(int.i.=.0
162e0 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 21 20 20 20 20 69 6e 74 20 62 78 3d 62 74 ;.i.<.2;.i++).{...!....int.bx=bt
16300 6e 5f 78 28 69 29 2c 20 62 77 3d 62 74 6e 5f 77 28 69 29 3b 00 00 00 44 20 20 20 20 62 6f 6f 6c n_x(i),.bw=btn_w(i);...D....bool
16320 20 68 6f 76 20 3d 20 61 2d 3e 6d 6f 75 73 65 5f 79 3e 3d 62 79 20 26 26 20 61 2d 3e 6d 6f 75 73 .hov.=.a->mouse_y>=by.&&.a->mous
16340 65 5f 78 3e 3d 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 3c 62 78 2b 62 77 3b 00 00 00 27 e_x>=bx.&&.a->mouse_x<bx+bw;...'
16360 20 20 20 20 69 66 20 28 68 6f 76 20 7c 7c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 3d 28 4d 65 ....if.(hov.||.a->open_menu==(Me
16380 6e 75 49 64 29 69 29 00 00 00 34 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c nuId)i)...4......frect(px,pw,ph,
163a0 20 62 78 2c 62 79 2b 31 2c 20 62 77 2c 42 41 52 5f 48 2d 31 2c 20 42 54 4e 5f 48 4f 56 29 3b 00 .bx,by+1,.bw,BAR_H-1,.BTN_HOV);.
163c0 00 00 45 20 20 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 62 78 2b 42 54 4e 5f 50 41 44 ..E....dstr(px,pw,ph,.bx+BTN_PAD
163e0 2c 20 62 79 2b 28 42 41 52 5f 48 2d 63 65 6c 6c 5f 68 29 2f 32 2c 20 6c 62 6c 73 5b 69 5d 2c 20 ,.by+(BAR_H-cell_h)/2,.lbls[i],.
16400 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 30 73 74 61 74 BAR_FG);......}....}.......0stat
16420 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 72 6f 70 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c ic.void.draw_drop(struct.app.*a,
16440 20 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 2d 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e .MenuId.m).{...-..void.*px.=.a->
16460 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 20 70 68 3d 61 2d 3e 68 3b 00 00 00 pixels;.int.pw=a->w,.ph=a->h;...
16480 34 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 2c 20 64 77 3d 64 72 6f 70 5f 77 28 6d 29 4..int.by=bar_y(a),.dw=drop_w(m)
164a0 2c 20 64 68 3d 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 3b 00 00 00 21 20 20 69 6e 74 20 64 ,.dh=drop_total_h(m);...!..int.d
164c0 78 3d 62 74 6e 5f 78 28 28 69 6e 74 29 6d 29 2c 20 64 79 3d 62 79 2d 64 68 3b 00 00 00 25 20 20 x=btn_x((int)m),.dy=by-dh;...%..
164e0 69 6e 74 20 6e 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 4e 5f 46 49 4c 45 3a 4e 5f 49 4e int.n=(m==MENU_FILE)?N_FILE:N_IN
16500 46 4f 3b 00 00 00 3d 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 3d 28 FO;...=..const.MenuItem.*items=(
16520 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 66 69 6c 65 5f 69 74 65 6d 73 3a 69 6e 66 6f 5f 69 74 m==MENU_FILE)?file_items:info_it
16540 65 6d 73 3b 00 00 00 00 00 00 00 29 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 ems;.......)..frect(px,pw,ph,.dx
16560 2c 64 79 2c 20 64 77 2c 64 68 2c 20 44 52 4f 50 5f 42 47 29 3b 00 00 00 2a 20 20 66 72 65 63 74 ,dy,.dw,dh,.DROP_BG);...*..frect
16580 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2c 64 79 2c 20 64 77 2c 31 2c 20 53 45 50 5f 43 4f 4c 4f (px,pw,ph,.dx,dy,.dw,1,.SEP_COLO
165a0 52 29 3b 00 00 00 2a 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2c 64 79 2c 20 R);...*..frect(px,pw,ph,.dx,dy,.
165c0 31 2c 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2f 20 20 66 72 65 63 74 28 70 78 2c 1,dh,.SEP_COLOR);.../..frect(px,
165e0 70 77 2c 70 68 2c 20 64 78 2b 64 77 2d 31 2c 64 79 2c 20 31 2c 64 68 2c 20 53 45 50 5f 43 4f 4c pw,ph,.dx+dw-1,dy,.1,dh,.SEP_COL
16600 4f 52 29 3b 00 00 00 2f 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2c 64 79 2b OR);.../..frect(px,pw,ph,.dx,dy+
16620 64 68 2d 31 2c 20 64 77 2c 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 10 20 dh-1,.dw,1,.SEP_COLOR);.........
16640 20 69 6e 74 20 69 79 20 3d 20 64 79 2b 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 .int.iy.=.dy+4;......for.(int.i.
16660 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 24 20 20 20 20 62 6f 6f 6c 20 68 =.0;.i.<.n;.i++).{...$....bool.h
16680 6f 76 20 3d 20 28 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 3d 69 29 3b 00 00 00 3c 20 20 ov.=.(a->hovered_item==i);...<..
166a0 20 20 69 66 20 28 68 6f 76 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b 31 2c ..if.(hov).frect(px,pw,ph,.dx+1,
166c0 69 79 2c 20 64 77 2d 32 2c 64 69 68 28 29 2c 20 44 52 4f 50 5f 48 4f 56 29 3b 00 00 00 71 20 20 iy,.dw-2,dih(),.DROP_HOV);...q..
166e0 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b 42 54 4e 5f 50 41 44 2c 20 69 79 2b ..dstr(px,pw,ph,.dx+BTN_PAD,.iy+
16700 28 64 69 68 28 29 2d 63 65 6c 6c 5f 68 29 2f 32 2c 20 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c (dih()-cell_h)/2,.items[i].label
16720 2c 20 68 6f 76 3f 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 48 4f 56 5f 46 47 3a 28 75 69 6e ,.hov?(uint32_t)DROP_HOV_FG:(uin
16740 74 33 32 5f 74 29 44 52 4f 50 5f 46 47 29 3b 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 69 68 t32_t)DROP_FG);........iy.+=.dih
16760 28 29 3b 00 00 00 51 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 ();...Q....if.(items[i].sep_afte
16780 72 29 20 7b 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 64 78 2b 34 2c 69 79 2c 64 77 2d r).{.frect(px,pw,ph,.dx+4,iy,dw-
167a0 38 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 20 69 79 2b 3d 34 3b 20 7d 00 00 00 03 20 20 7d 00 8,1,SEP_COLOR);.iy+=4;.}......}.
167c0 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 ...}.......#static.void.redraw(s
167e0 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2b 20 20 76 6f 69 64 20 2a 70 78 3d 61 2d truct.app.*a).{...+..void.*px=a-
16800 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 20 70 68 3d 61 2d 3e 68 3b 00 00 >pixels;.int.pw=a->w,.ph=a->h;..
16820 00 14 20 20 69 6e 74 20 74 61 68 3d 74 65 78 74 5f 68 28 61 29 3b 00 00 00 3a 20 20 66 6f 72 20 ....int.tah=text_h(a);...:..for.
16840 28 69 6e 74 20 69 3d 30 3b 20 69 3c 70 77 2a 70 68 3b 20 69 2b 2b 29 20 28 28 75 69 6e 74 33 32 (int.i=0;.i<pw*ph;.i++).((uint32
16860 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 00 00 00 00 1b 20 20 69 6e _t*)px)[i]=BG_COLOR;..........in
16880 74 20 73 65 6c 5f 6c 6f 3d 2d 31 2c 20 73 65 6c 5f 68 69 3d 2d 31 3b 00 00 00 16 20 20 69 66 20 t.sel_lo=-1,.sel_hi=-1;......if.
168a0 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 20 7b 00 00 00 35 20 20 20 20 73 65 6c 5f 6c 6f 20 (sel_anchor>=0).{...5....sel_lo.
168c0 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 =.sel_anchor<cursor.?.sel_anchor
168e0 20 3a 20 63 75 72 73 6f 72 3b 00 00 00 39 20 20 20 20 73 65 6c 5f 68 69 20 3d 20 73 65 6c 5f 61 .:.cursor;...9....sel_hi.=.sel_a
16900 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 20 20 20 20 3a 20 73 65 6c 5f nchor<cursor.?.cursor.....:.sel_
16920 61 6e 63 68 6f 72 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 69 6e 74 20 63 6f 6c 3d 30 2c 20 72 anchor;......}......int.col=0,.r
16940 6f 77 3d 30 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 20 69 3c 3d 74 6c 65 6e ow=0;......for.(int.i=0;.i<=tlen
16960 3b 20 69 2b 2b 29 20 7b 00 00 00 2b 20 20 20 20 69 6e 74 20 78 3d 50 41 44 2b 63 6f 6c 2a 63 65 ;.i++).{...+....int.x=PAD+col*ce
16980 6c 6c 5f 77 2c 20 79 3d 50 41 44 2b 72 6f 77 2a 63 65 6c 6c 5f 68 3b 00 00 00 1e 20 20 20 20 69 ll_w,.y=PAD+row*cell_h;........i
169a0 66 20 28 79 2b 63 65 6c 6c 5f 68 20 3e 20 74 61 68 29 20 62 72 65 61 6b 3b 00 00 00 4e 20 20 20 f.(y+cell_h.>.tah).break;...N...
169c0 20 62 6f 6f 6c 20 69 6e 73 20 3d 20 73 65 6c 5f 6c 6f 3e 3d 30 20 26 26 20 69 3e 3d 73 65 6c 5f .bool.ins.=.sel_lo>=0.&&.i>=sel_
169e0 6c 6f 20 26 26 20 69 3c 73 65 6c 5f 68 69 20 26 26 20 28 69 3e 3d 74 6c 65 6e 7c 7c 74 65 78 74 lo.&&.i<sel_hi.&&.(i>=tlen||text
16a00 5b 69 5d 21 3d 27 5c 6e 27 29 3b 00 00 00 3b 20 20 20 20 69 66 20 28 69 6e 73 29 20 66 72 65 63 [i]!='\n');...;....if.(ins).frec
16a20 74 28 70 78 2c 70 77 2c 70 68 2c 20 78 2c 79 2c 63 65 6c 6c 5f 77 2c 63 65 6c 6c 5f 68 2c 20 53 t(px,pw,ph,.x,y,cell_w,cell_h,.S
16a40 45 4c 5f 43 4f 4c 4f 52 29 3b 00 00 00 3c 20 20 20 20 69 66 20 28 69 3d 3d 63 75 72 73 6f 72 29 EL_COLOR);...<....if.(i==cursor)
16a60 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 78 2c 79 2c 32 2c 63 65 6c 6c 5f 68 2c 20 43 .frect(px,pw,ph,.x,y,2,cell_h,.C
16a80 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 00 11 20 20 20 20 69 66 20 28 69 3c 74 6c 65 6e 29 20 7b 00 UR_COLOR);........if.(i<tlen).{.
16aa0 00 00 2a 20 20 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 3d 3d 27 5c 6e 27 29 20 7b 20 63 6f ..*......if.(text[i]=='\n').{.co
16ac0 6c 3d 30 3b 20 72 6f 77 2b 2b 3b 20 7d 00 00 00 0c 20 20 20 20 20 20 65 6c 73 65 20 7b 00 00 00 l=0;.row++;.}..........else.{...
16ae0 49 20 20 20 20 20 20 20 20 69 66 20 28 78 2b 63 65 6c 6c 5f 77 20 3e 20 70 77 2d 50 41 44 29 20 I........if.(x+cell_w.>.pw-PAD).
16b00 7b 20 63 6f 6c 3d 30 3b 20 72 6f 77 2b 2b 3b 20 78 3d 50 41 44 3b 20 79 3d 50 41 44 2b 72 6f 77 {.col=0;.row++;.x=PAD;.y=PAD+row
16b20 2a 63 65 6c 6c 5f 68 3b 20 7d 00 00 00 72 20 20 20 20 20 20 20 20 69 66 20 28 79 2b 63 65 6c 6c *cell_h;.}...r........if.(y+cell
16b40 5f 68 3c 3d 74 61 68 29 20 64 67 6c 79 70 68 28 70 78 2c 70 77 2c 70 68 2c 20 78 2c 79 2c 20 28 _h<=tah).dglyph(px,pw,ph,.x,y,.(
16b60 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 74 65 78 74 5b 69 5d 2c 20 69 6e 73 3f 28 75 69 6e 74 unsigned.char)text[i],.ins?(uint
16b80 33 32 5f 74 29 53 45 4c 5f 46 47 3a 28 75 69 6e 74 33 32 5f 74 29 46 47 5f 43 4f 4c 4f 52 29 3b 32_t)SEL_FG:(uint32_t)FG_COLOR);
16ba0 00 00 00 0e 20 20 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 ............col++;..........}...
16bc0 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0e 20 20 64 72 61 77 5f 62 61 72 28 .....}......}..........draw_bar(
16be0 61 29 3b 00 00 00 3c 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e a);...<..if.(a->open_menu.!=.MEN
16c00 55 5f 4e 4f 4e 45 29 20 64 72 61 77 5f 64 72 6f 70 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e U_NONE).draw_drop(a,.a->open_men
16c20 75 29 3b 00 00 00 00 00 00 00 2d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 u);.......-..wl_surface_damage_b
16c40 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 30 2c 70 77 2c 70 68 29 3b 00 00 00 28 20 20 77 6c uffer(a->ws,.0,0,pw,ph);...(..wl
16c60 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 _surface_attach(a->ws,.a->buf,.0
16c80 2c 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 ,0);......wl_surface_commit(a->w
16ca0 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 s);....}.......)static.void.redr
16cc0 61 77 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 aw_about(struct.app.*a).{......s
16ce0 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 25 20 truct.popup.*p.=.&a->about;...%.
16d00 20 69 66 20 28 21 70 2d 3e 6f 70 65 6e 20 7c 7c 20 21 70 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 .if.(!p->open.||.!p->pixels).ret
16d20 75 72 6e 3b 00 00 00 2b 20 20 76 6f 69 64 20 2a 70 78 3d 70 2d 3e 70 69 78 65 6c 73 3b 20 69 6e urn;...+..void.*px=p->pixels;.in
16d40 74 20 70 77 3d 70 2d 3e 77 2c 20 70 68 3d 70 2d 3e 68 3b 00 00 00 3a 20 20 66 6f 72 20 28 69 6e t.pw=p->w,.ph=p->h;...:..for.(in
16d60 74 20 69 3d 30 3b 20 69 3c 70 77 2a 70 68 3b 20 69 2b 2b 29 20 28 28 75 69 6e 74 33 32 5f 74 2a t.i=0;.i<pw*ph;.i++).((uint32_t*
16d80 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 26 20 20 66 72 65 63 74 28 70 78 2c )px)[i]=BG_COLOR;...&..frect(px,
16da0 70 77 2c 70 68 2c 20 30 2c 30 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 29 20 pw,ph,.0,0,pw,1,SEP_COLOR);...).
16dc0 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c 70 68 2d 31 2c 70 77 2c 31 2c 53 45 50 .frect(px,pw,ph,.0,ph-1,pw,1,SEP
16de0 5f 43 4f 4c 4f 52 29 3b 00 00 00 26 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 20 30 2c _COLOR);...&..frect(px,pw,ph,.0,
16e00 30 2c 31 2c 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 29 20 20 66 72 65 63 74 28 70 78 0,1,ph,SEP_COLOR);...)..frect(px
16e20 2c 70 77 2c 70 68 2c 20 70 77 2d 31 2c 30 2c 31 2c 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 ,pw,ph,.pw-1,0,1,ph,SEP_COLOR);.
16e40 00 00 00 00 00 00 10 20 20 69 6e 74 20 79 20 3d 20 50 41 44 2a 32 3b 00 00 00 5a 20 20 64 73 74 .........int.y.=.PAD*2;...Z..dst
16e60 72 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 22 77 6c 65 64 20 20 2d 20 20 r(px,pw,ph,.PAD*2,.y,."wled..-..
16e80 77 61 79 6c 61 6e 64 20 74 65 78 74 20 65 64 69 74 6f 72 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b wayland.text.editor",.FG_COLOR);
16ea0 20 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 50 41 44 3b 00 00 00 51 20 20 66 72 65 63 74 ...y.+=.cell_h.+.PAD;...Q..frect
16ec0 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c 20 79 2c 20 70 77 2d 50 41 44 2a 34 2c 20 31 (px,pw,ph,.PAD*2,.y,.pw-PAD*4,.1
16ee0 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.SEP_COLOR);...................
16f00 20 79 20 2b 3d 20 50 41 44 3b 00 00 00 58 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 50 .y.+=.PAD;...X..dstr(px,pw,ph,.P
16f20 41 44 2a 32 2c 20 79 2c 20 22 4c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 47 50 4c 20 76 33 2e AD*2,.y,."Licensed.under.GPL.v3.
16f40 30 22 2c 20 20 20 20 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 20 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 0",......FG_COLOR);...y.+=.cell_
16f60 68 20 2b 20 36 3b 00 00 00 5b 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 h.+.6;...[..dstr(px,pw,ph,.PAD*2
16f80 2c 20 79 2c 20 22 43 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 ,.y,."Created.by..git.sr.ht/~coa
16fa0 73 74 65 65 6e 2f 22 2c 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 steen/",..FG_COLOR);.y.+=.cell_h
16fc0 20 2b 20 36 3b 00 00 00 4d 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 20 50 41 44 2a 32 2c .+.6;...M..dstr(px,pw,ph,.PAD*2,
16fe0 20 79 2c 20 22 53 6f 75 72 63 65 3a 20 20 20 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 .y,."Source:.....git.sr.ht/~coas
17000 74 65 65 6e 2f 77 6c 65 64 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 2d 20 20 teen/wled",.FG_COLOR);.......-..
17020 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 70 2d 3e 77 73 2c 20 wl_surface_damage_buffer(p->ws,.
17040 30 2c 30 2c 70 77 2c 70 68 29 3b 00 00 00 28 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 0,0,pw,ph);...(..wl_surface_atta
17060 63 68 28 70 2d 3e 77 73 2c 20 70 2d 3e 62 75 66 2c 20 30 2c 30 29 3b 00 00 00 1b 20 20 77 6c 5f ch(p->ws,.p->buf,.0,0);......wl_
17080 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 surface_commit(p->ws);....}.....
170a0 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 28 76 6f 69 64 ..Lstatic.void.about_xs_cfg(void
170c0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e .*d,.struct.xdg_surface.*xs,.uin
170e0 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 73 74 72 75 63 74 20 61 70 70 20 t32_t.serial).{...1..struct.app.
17100 2a 61 20 3d 20 64 3b 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 *a.=.d;.struct.popup.*p.=.&a->ab
17120 6f 75 74 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 out;...(..xdg_surface_ack_config
17140 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 50 20 20 69 66 20 28 21 70 2d 3e 70 69 ure(xs,.serial);...P..if.(!p->pi
17160 78 65 6c 73 29 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 70 2d xels).p->pixels.=.make_shm(a,.p-
17180 3e 77 2c 20 70 2d 3e 68 2c 20 26 70 2d 3e 62 75 66 2c 20 26 70 2d 3e 70 69 78 65 6c 73 5f 73 69 >w,.p->h,.&p->buf,.&p->pixels_si
171a0 7a 65 29 3b 00 00 00 17 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 ze);......p->configured.=.true;.
171c0 00 00 12 20 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 01 7d 00 00 00 50 73 74 .....redraw_about(a);....}...Pst
171e0 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 atic.const.struct.xdg_surface_li
17200 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 73 5f 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d stener.about_xs_l.=.{.configure=
17220 61 62 6f 75 74 5f 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 67 73 74 61 74 69 63 20 76 6f 69 about_xs_cfg};.......gstatic.voi
17240 64 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 d.about_xt_cfg(void.*d,.struct.x
17260 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 dg_toplevel.*xt,.int32_t.w,.int3
17280 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 7d 00 00 00 2_t.h,.struct.wl_array.*s).{}...
172a0 3e 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 >static.void.about_xt_close(void
172c0 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 .*d,.struct.xdg_toplevel.*xt).{.
172e0 00 00 31 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 73 74 72 75 63 74 20 70 ..1..struct.app.*a.=.d;.struct.p
17300 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 4a 20 20 69 66 20 28 70 2d opup.*p.=.&a->about;...J..if.(p-
17320 3e 62 75 66 29 20 20 20 20 7b 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 70 2d 3e >buf)....{.wl_buffer_destroy(p->
17340 62 75 66 29 3b 20 20 20 20 20 20 20 20 20 20 70 2d 3e 62 75 66 20 20 20 20 3d 20 4e 55 4c 4c 3b buf);..........p->buf....=.NULL;
17360 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d 3e 70 69 78 65 6c 73 29 20 7b 20 6d 75 6e 6d 61 70 28 .}...J..if.(p->pixels).{.munmap(
17380 70 2d 3e 70 69 78 65 6c 73 2c 20 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 20 20 70 2d 3e p->pixels,.p->pixels_size);..p->
173a0 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d 3e 78 74 29 pixels.=.NULL;.}...J..if.(p->xt)
173c0 20 20 20 20 20 7b 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 .....{.xdg_toplevel_destroy(p->x
173e0 74 29 3b 20 20 20 20 20 20 20 20 70 2d 3e 78 74 20 20 20 20 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 t);........p->xt.....=.NULL;.}..
17400 00 4a 20 20 69 66 20 28 70 2d 3e 78 73 29 20 20 20 20 20 7b 20 78 64 67 5f 73 75 72 66 61 63 65 .J..if.(p->xs).....{.xdg_surface
17420 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 73 29 3b 20 20 20 20 20 20 20 20 20 70 2d 3e 78 73 20 20 _destroy(p->xs);.........p->xs..
17440 20 20 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 4a 20 20 69 66 20 28 70 2d 3e 77 73 29 20 20 20 20 ...=.NULL;.}...J..if.(p->ws)....
17460 20 7b 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d 3e 77 73 29 3b 20 20 20 .{.wl_surface_destroy(p->ws);...
17480 20 20 20 20 20 20 20 70 2d 3e 77 73 20 20 20 20 20 3d 20 4e 55 4c 4c 3b 20 7d 00 00 00 29 20 20 .......p->ws.....=.NULL;.}...)..
174a0 70 2d 3e 6f 70 65 6e 20 3d 20 66 61 6c 73 65 3b 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d p->open.=.false;.p->configured.=
174c0 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 67 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 .false;....}...gstatic.const.str
174e0 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f uct.xdg_toplevel_listener.about_
17500 78 74 5f 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 61 62 6f 75 74 5f 78 74 5f 63 66 67 2c xt_l.=.{.configure=about_xt_cfg,
17520 2e 63 6c 6f 73 65 3d 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 27 73 .close=about_xt_close};.......'s
17540 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 tatic.void.open_about(struct.app
17560 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 .*a).{......struct.popup.*p.=.&a
17580 2d 3e 61 62 6f 75 74 3b 00 00 00 16 20 20 69 66 20 28 70 2d 3e 6f 70 65 6e 29 20 72 65 74 75 72 ->about;......if.(p->open).retur
175a0 6e 3b 00 00 00 10 20 20 69 6e 74 20 6c 69 6e 65 73 20 3d 20 35 3b 00 00 00 1d 20 20 70 2d 3e 77 n;......int.lines.=.5;......p->w
175c0 20 3d 20 32 32 20 2a 20 63 65 6c 6c 5f 77 20 2b 20 50 41 44 2a 34 3b 00 00 00 2f 20 20 70 2d 3e .=.22.*.cell_w.+.PAD*4;.../..p->
175e0 68 20 3d 20 6c 69 6e 65 73 20 2a 20 28 63 65 6c 6c 5f 68 20 2b 20 36 29 20 2b 20 50 41 44 2a 34 h.=.lines.*.(cell_h.+.6).+.PAD*4
17600 20 2b 20 63 65 6c 6c 5f 68 3b 00 00 00 1d 20 20 69 66 20 28 70 2d 3e 77 20 3c 20 33 36 30 29 20 .+.cell_h;......if.(p->w.<.360).
17620 70 2d 3e 77 20 3d 20 33 36 30 3b 00 00 00 1d 20 20 69 66 20 28 70 2d 3e 68 20 3c 20 31 34 30 29 p->w.=.360;......if.(p->h.<.140)
17640 20 70 2d 3e 68 20 3d 20 31 34 30 3b 00 00 00 11 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 74 72 75 65 .p->h.=.140;......p->open.=.true
17660 3b 00 00 00 30 20 20 70 2d 3e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 ;...0..p->ws.=.wl_compositor_cre
17680 61 74 65 5f 73 75 72 66 61 63 65 28 61 2d 3e 63 6f 6d 70 29 3b 00 00 00 34 20 20 70 2d 3e 78 73 ate_surface(a->comp);...4..p->xs
176a0 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 .=.xdg_wm_base_get_xdg_surface(a
176c0 2d 3e 77 6d 2c 20 70 2d 3e 77 73 29 3b 00 00 00 32 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 ->wm,.p->ws);...2..xdg_surface_a
176e0 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 73 2c 20 26 61 62 6f 75 74 5f 78 73 5f 6c 2c 20 dd_listener(p->xs,.&about_xs_l,.
17700 61 29 3b 00 00 00 2a 20 20 70 2d 3e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 a);...*..p->xt.=.xdg_surface_get
17720 5f 74 6f 70 6c 65 76 65 6c 28 70 2d 3e 78 73 29 3b 00 00 00 33 20 20 78 64 67 5f 74 6f 70 6c 65 _toplevel(p->xs);...3..xdg_tople
17740 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 74 2c 20 26 61 62 6f 75 74 5f 78 vel_add_listener(p->xt,.&about_x
17760 74 5f 6c 2c 20 61 29 3b 00 00 00 2e 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 t_l,.a);......xdg_toplevel_set_t
17780 69 74 6c 65 28 70 2d 3e 78 74 2c 20 22 41 62 6f 75 74 20 77 6c 65 64 22 29 3b 00 00 00 2f 20 20 itle(p->xt,."About.wled");.../..
177a0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 70 2d 3e 78 74 2c xdg_toplevel_set_min_size(p->xt,
177c0 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f .p->w,.p->h);.../..xdg_toplevel_
177e0 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b set_max_size(p->xt,.p->w,.p->h);
17800 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 ......wl_surface_commit(p->ws);.
17820 00 00 01 7d 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 73 74 61 72 74 ...}.......Nstatic.int.sel_start
17840 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f (void).{.return.sel_anchor<curso
17860 72 20 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b 20 7d 00 00 00 60 73 74 r.?.sel_anchor.:.cursor;.}...`st
17880 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 76 6f 69 64 29 20 20 20 7b 20 72 65 74 75 72 atic.int.sel_len(void)...{.retur
178a0 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 2d 73 65 6c n.sel_anchor<cursor.?.cursor-sel
178c0 5f 61 6e 63 68 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 2d 63 75 72 73 6f 72 3b 20 7d 00 00 _anchor.:.sel_anchor-cursor;.}..
178e0 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 6c 65 74 65 5f 73 65 6c 28 76 6f 69 ......static.void.delete_sel(voi
17900 64 29 20 7b 00 00 00 1b 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 3c 30 29 20 72 65 74 75 d).{......if.(sel_anchor<0).retu
17920 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c 65 6e rn;...$..int.lo=sel_start(),.len
17940 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 2d 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 6c 6f =sel_len();...-..memmove(text+lo
17960 2c 20 74 65 78 74 2b 6c 6f 2b 6c 65 6e 2c 20 74 6c 65 6e 2d 6c 6f 2d 6c 65 6e 29 3b 00 00 00 37 ,.text+lo+len,.tlen-lo-len);...7
17980 20 20 74 6c 65 6e 2d 3d 6c 65 6e 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 20 63 75 ..tlen-=len;.text[tlen]='\0';.cu
179a0 72 73 6f 72 3d 6c 6f 3b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 01 7d 00 00 00 00 rsor=lo;.sel_anchor=-1;....}....
179c0 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 73 28 63 6f 6e 73 74 20 63 68 61 72 20 2a ...)static.void.ins(const.char.*
179e0 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 74 6c 65 6e 2b 6c 65 6e 3e s,.int.len).{......if.(tlen+len>
17a00 3d 4d 41 58 5f 54 45 58 54 29 20 6c 65 6e 3d 4d 41 58 5f 54 45 58 54 2d 74 6c 65 6e 2d 31 3b 00 =MAX_TEXT).len=MAX_TEXT-tlen-1;.
17a20 00 00 35 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 6f 72 2b 6c 65 6e 2c 20 74 65 ..5..memmove(text+cursor+len,.te
17a40 78 74 2b 63 75 72 73 6f 72 2c 20 74 6c 65 6e 2d 63 75 72 73 6f 72 29 3b 00 00 00 1e 20 20 6d 65 xt+cursor,.tlen-cursor);......me
17a60 6d 63 70 79 28 74 65 78 74 2b 63 75 72 73 6f 72 2c 20 73 2c 20 6c 65 6e 29 3b 00 00 00 36 20 20 mcpy(text+cursor,.s,.len);...6..
17a80 74 6c 65 6e 2b 3d 6c 65 6e 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 20 63 75 72 73 tlen+=len;.text[tlen]='\0';.curs
17aa0 6f 72 2b 3d 6c 65 6e 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 or+=len;.dirty=true;....}.......
17ac0 25 73 74 61 74 69 63 20 76 6f 69 64 20 63 6f 70 79 5f 73 65 6c 28 73 74 72 75 63 74 20 61 70 70 %static.void.copy_sel(struct.app
17ae0 20 2a 61 29 20 7b 00 00 00 1b 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 3c 30 29 20 72 65 .*a).{......if.(sel_anchor<0).re
17b00 74 75 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c turn;...$..int.lo=sel_start(),.l
17b20 65 6e 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 42 20 20 69 66 20 28 6c 65 6e 3e 28 69 6e 74 29 en=sel_len();...B..if.(len>(int)
17b40 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 29 20 6c 65 6e 3d 73 69 7a 65 sizeof(a->clipboard)-1).len=size
17b60 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 3b 00 00 00 25 20 20 6d 65 6d 63 70 79 28 of(a->clipboard)-1;...%..memcpy(
17b80 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 74 65 78 74 2b 6c 6f 2c 20 6c 65 6e 29 3b 00 00 00 2f a->clipboard,.text+lo,.len);.../
17ba0 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5b 6c 65 6e 5d 3d 27 5c 30 27 3b 20 61 2d 3e 63 6c 69 ..a->clipboard[len]='\0';.a->cli
17bc0 70 62 6f 61 72 64 5f 6c 65 6e 3d 6c 65 6e 3b 00 00 00 3b 20 20 69 66 20 28 61 2d 3e 64 73 29 20 pboard_len=len;...;..if.(a->ds).
17be0 7b 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b {.wl_data_source_destroy(a->ds);
17c00 20 61 2d 3e 64 73 3d 4e 55 4c 4c 3b 20 7d 00 00 00 1e 20 20 69 66 20 28 21 61 2d 3e 64 64 6d 7c .a->ds=NULL;.}......if.(!a->ddm|
17c20 7c 21 61 2d 3e 64 64 29 20 72 65 74 75 72 6e 3b 00 00 00 3c 20 20 61 2d 3e 64 73 20 3d 20 77 6c |!a->dd).return;...<..a->ds.=.wl
17c40 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 63 72 65 61 74 65 5f 64 61 74 61 _data_device_manager_create_data
17c60 5f 73 6f 75 72 63 65 28 61 2d 3e 64 64 6d 29 3b 00 00 00 3a 20 20 77 6c 5f 64 61 74 61 5f 73 6f _source(a->ddm);...:..wl_data_so
17c80 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 69 6e 3b 63 68 urce_offer(a->ds,."text/plain;ch
17ca0 61 72 73 65 74 3d 75 74 66 2d 38 22 29 3b 00 00 00 2c 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 arset=utf-8");...,..wl_data_sour
17cc0 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 29 3b 00 00 ce_offer(a->ds,."text/plain");..
17ce0 00 2d 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 .-..wl_data_source_offer(a->ds,.
17d00 22 55 54 46 38 5f 53 54 52 49 4e 47 22 29 3b 00 00 00 28 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 "UTF8_STRING");...(..wl_data_sou
17d20 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 53 54 52 49 4e 47 22 29 3b 00 00 00 3d 20 rce_offer(a->ds,."STRING");...=.
17d40 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 73 65 74 5f 73 65 6c 65 63 74 69 6f 6e 28 61 2d .wl_data_device_set_selection(a-
17d60 3e 64 64 2c 20 61 2d 3e 64 73 2c 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 29 3b 00 00 00 01 >dd,.a->ds,.a->last_serial);....
17d80 7d 00 00 00 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 73 5f 6b 65 79 }.......6static.void.process_key
17da0 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 75 69 6e 74 33 32 5f 74 20 6b 65 79 29 20 7b 00 (struct.app.*a,.uint32_t.key).{.
17dc0 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 72 65 74 75 72 6e 3b 00 .....if.(!a->xkb_state).return;.
17de0 00 00 1c 20 20 78 6b 62 5f 6b 65 79 63 6f 64 65 5f 74 20 6b 63 20 20 3d 20 6b 65 79 2b 38 3b 00 .....xkb_keycode_t.kc..=.key+8;.
17e00 00 00 42 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 20 73 79 6d 20 3d 20 78 6b 62 5f 73 74 61 ..B..xkb_keysym_t..sym.=.xkb_sta
17e20 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e 65 5f 73 79 6d 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c te_key_get_one_sym(a->xkb_state,
17e40 20 6b 63 29 3b 00 00 00 67 20 20 69 6e 74 20 63 74 72 6c 20 20 3d 20 78 6b 62 5f 73 74 61 74 65 .kc);...g..int.ctrl..=.xkb_state
17e60 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 _mod_name_is_active(a->xkb_state
17e80 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 43 54 52 4c 2c 20 20 58 4b 42 5f 53 54 41 54 45 5f ,.XKB_MOD_NAME_CTRL,..XKB_STATE_
17ea0 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 67 20 20 69 6e 74 20 73 68 69 66 74 20 MODS_EFFECTIVE);...g..int.shift.
17ec0 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 =.xkb_state_mod_name_is_active(a
17ee0 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 53 48 49 46 54 2c ->xkb_state,.XKB_MOD_NAME_SHIFT,
17f00 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 49 20 .XKB_STATE_MODS_EFFECTIVE);...I.
17f20 20 78 6b 62 5f 6c 61 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 6c 61 79 6f 75 74 20 3d 20 78 6b 62 .xkb_layout_index_t.layout.=.xkb
17f40 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 74 28 61 2d 3e 78 6b 62 5f 73 74 61 _state_key_get_layout(a->xkb_sta
17f60 74 65 2c 20 6b 63 29 3b 00 00 00 60 20 20 63 6f 6e 73 74 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 te,.kc);...`..const.xkb_keysym_t
17f80 20 2a 62 73 3b 20 69 6e 74 20 6e 3d 78 6b 62 5f 6b 65 79 6d 61 70 5f 6b 65 79 5f 67 65 74 5f 73 .*bs;.int.n=xkb_keymap_key_get_s
17fa0 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 2c 6b 63 2c 6c 61 yms_by_level(a->xkb_keymap,kc,la
17fc0 79 6f 75 74 2c 30 2c 26 62 73 29 3b 00 00 00 29 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 70 yout,0,&bs);...)..xkb_keysym_t.p
17fe0 6c 61 69 6e 20 3d 20 6e 3e 30 20 3f 20 62 73 5b 30 5d 20 3a 20 73 79 6d 3b 00 00 00 00 00 00 00 lain.=.n>0.?.bs[0].:.sym;.......
18000 1c 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 65 29 20 7b 00 00 00 ...if.(sym==XKB_KEY_Escape).{...
18020 5b 20 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e 4f 4e 45 [....if.(a->open_menu!=MENU_NONE
18040 29 20 7b 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2d 3e 68 ).{.a->open_menu=MENU_NONE;.a->h
18060 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 20 72 65 64 72 61 77 28 61 29 3b 20 7d 00 00 00 0b overed_item=-1;.redraw(a);.}....
18080 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 69 66 20 28 63 74 72 6c ....return;......}......if.(ctrl
180a0 29 20 7b 00 00 00 6b 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 65 71 ).{...k....if.(plain==XKB_KEY_eq
180c0 75 61 6c 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 70 6c 75 73 29 20 7b 20 66 6f 6e 74 ual||plain==XKB_KEY_plus).{.font
180e0 5f 70 74 2b 2b 3b 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 20 72 65 _pt++;.update_font_metrics();.re
18100 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 66 20 20 20 20 69 66 20 28 70 6c draw(a);.return;.}...f....if.(pl
18120 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 6d 69 6e 75 73 29 20 7b 20 69 66 20 28 66 6f 6e 74 5f 70 ain==XKB_KEY_minus).{.if.(font_p
18140 74 3e 34 29 7b 66 6f 6e 74 5f 70 74 2d 2d 3b 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 t>4){font_pt--;.update_font_metr
18160 69 63 73 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 7d 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 5a ics();.redraw(a);}.return;.}...Z
18180 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 30 29 20 7b 20 66 6f 6e 74 ....if.(plain==XKB_KEY_0).{.font
181a0 5f 70 74 3d 46 4f 4e 54 5f 53 49 5a 45 3b 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 _pt=FONT_SIZE;.update_font_metri
181c0 63 73 28 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 4e 20 20 cs();.redraw(a);.return;.}...N..
181e0 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 73 7c 7c 70 6c 61 69 6e 3d 3d 58 ..if.(plain==XKB_KEY_s||plain==X
18200 4b 42 5f 4b 45 59 5f 53 29 20 7b 20 64 6f 5f 73 61 76 65 28 61 29 3b 20 72 65 64 72 61 77 28 61 KB_KEY_S).{.do_save(a);.redraw(a
18220 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 5d 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d 58 );.return;.}...]....if.(plain==X
18240 4b 42 5f 4b 45 59 5f 61 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 41 29 20 7b 20 73 65 KB_KEY_a||plain==XKB_KEY_A).{.se
18260 6c 5f 61 6e 63 68 6f 72 3d 30 3b 20 63 75 72 73 6f 72 3d 74 6c 65 6e 3b 20 72 65 64 72 61 77 28 l_anchor=0;.cursor=tlen;.redraw(
18280 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 44 20 20 20 20 69 66 20 28 70 6c 61 69 6e 3d 3d a);.return;.}...D....if.(plain==
182a0 58 4b 42 5f 4b 45 59 5f 63 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 43 29 20 7b 20 63 XKB_KEY_c||plain==XKB_KEY_C).{.c
182c0 6f 70 79 5f 73 65 6c 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 5d 20 20 20 20 69 66 20 opy_sel(a);.return;.}...]....if.
182e0 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 78 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 (plain==XKB_KEY_x||plain==XKB_KE
18300 59 5f 58 29 20 7b 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 Y_X).{.copy_sel(a);.delete_sel()
18320 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 85 20 20 20 20 69 66 ;.redraw(a);.return;.}........if
18340 20 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 76 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b .(plain==XKB_KEY_v||plain==XKB_K
18360 45 59 5f 56 29 20 7b 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 64 65 6c 65 74 65 5f EY_V).{.if(sel_anchor>=0)delete_
18380 73 65 6c 28 29 3b 20 69 6e 73 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 61 2d 3e 63 6c 69 70 62 sel();.ins(a->clipboard,a->clipb
183a0 6f 61 72 64 5f 6c 65 6e 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 oard_len);.redraw(a);.return;.}.
183c0 00 00 03 20 20 7d 00 00 00 53 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 .....}...S..if.(sym==XKB_KEY_Lef
183e0 74 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 7c 7c 73 79 6d 3d 3d 58 4b 42 5f t||sym==XKB_KEY_Right||sym==XKB_
18400 4b 45 59 5f 48 6f 6d 65 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 7b 00 00 00 KEY_Home||sym==XKB_KEY_End).{...
18420 2f 20 20 20 20 69 66 20 28 73 68 69 66 74 26 26 73 65 6c 5f 61 6e 63 68 6f 72 3c 30 29 20 73 65 /....if.(shift&&sel_anchor<0).se
18440 6c 5f 61 6e 63 68 6f 72 3d 63 75 72 73 6f 72 3b 00 00 00 23 20 20 20 20 65 6c 73 65 20 69 66 20 l_anchor=cursor;...#....else.if.
18460 28 21 73 68 69 66 74 29 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 33 20 20 20 20 69 (!shift).sel_anchor=-1;...3....i
18480 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 20 26 26 63 75 72 73 6f 72 3e 30 f.(sym==XKB_KEY_Left..&&cursor>0
184a0 29 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 33 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 )....cursor--;...3....if.(sym==X
184c0 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 26 26 63 75 72 73 6f 72 3c 74 6c 65 6e 29 20 63 75 72 73 KB_KEY_Right.&&cursor<tlen).curs
184e0 6f 72 2b 2b 3b 00 00 00 52 20 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 48 6f or++;...R....if.(sym==XKB_KEY_Ho
18500 6d 65 29 20 7b 20 77 68 69 6c 65 28 63 75 72 73 6f 72 3e 30 20 20 20 20 26 26 74 65 78 74 5b 63 me).{.while(cursor>0....&&text[c
18520 75 72 73 6f 72 2d 31 5d 21 3d 27 5c 6e 27 29 20 63 75 72 73 6f 72 2d 2d 3b 20 7d 00 00 00 52 20 ursor-1]!='\n').cursor--;.}...R.
18540 20 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 20 7b 20 77 68 69 6c ...if.(sym==XKB_KEY_End)..{.whil
18560 65 28 63 75 72 73 6f 72 3c 74 6c 65 6e 20 26 26 74 65 78 74 5b 63 75 72 73 6f 72 5d 20 20 21 3d e(cursor<tlen.&&text[cursor]..!=
18580 27 5c 6e 27 29 20 63 75 72 73 6f 72 2b 2b 3b 20 7d 00 00 00 31 20 20 20 20 69 66 20 28 73 68 69 '\n').cursor++;.}...1....if.(shi
185a0 66 74 26 26 73 65 6c 5f 61 6e 63 68 6f 72 3d 3d 63 75 72 73 6f 72 29 20 73 65 6c 5f 61 6e 63 68 ft&&sel_anchor==cursor).sel_anch
185c0 6f 72 3d 2d 31 3b 00 00 00 16 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b or=-1;........redraw(a);.return;
185e0 00 00 00 03 20 20 7d 00 00 00 1f 20 20 69 66 20 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 42 61 ......}......if.(sym==XKB_KEY_Ba
18600 63 6b 53 70 61 63 65 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 ckSpace).{...$....if.(sel_anchor
18620 3e 3d 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 79 20 20 20 20 65 6c 73 65 20 69 >=0).delete_sel();...y....else.i
18640 66 20 28 63 75 72 73 6f 72 3e 30 29 20 7b 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 f.(cursor>0).{.memmove(text+curs
18660 6f 72 2d 31 2c 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 6c 65 6e 2d 63 75 72 73 6f 72 29 3b 20 74 or-1,text+cursor,tlen-cursor);.t
18680 6c 65 6e 2d 2d 3b 20 63 75 72 73 6f 72 2d 2d 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 len--;.cursor--;.text[tlen]='\0'
186a0 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 20 7d 00 00 00 16 20 20 20 20 72 65 64 72 61 77 28 61 29 ;.dirty=true;.}........redraw(a)
186c0 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 1c 20 20 69 66 20 28 73 79 6d 3d 3d 58 ;.return;......}......if.(sym==X
186e0 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 73 65 6c 5f KB_KEY_Delete).{...$....if.(sel_
18700 61 6e 63 68 6f 72 3e 3d 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 74 20 20 20 20 anchor>=0).delete_sel();...t....
18720 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 3c 74 6c 65 6e 29 20 7b 20 6d 65 6d 6d 6f 76 65 28 else.if.(cursor<tlen).{.memmove(
18740 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 65 78 74 2b 63 75 72 73 6f 72 2b 31 2c 74 6c 65 6e 2d 63 text+cursor,text+cursor+1,tlen-c
18760 75 72 73 6f 72 2d 31 29 3b 20 74 6c 65 6e 2d 2d 3b 20 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 ursor-1);.tlen--;.text[tlen]='\0
18780 27 3b 20 64 69 72 74 79 3d 74 72 75 65 3b 20 7d 00 00 00 16 20 20 20 20 72 65 64 72 61 77 28 61 ';.dirty=true;.}........redraw(a
187a0 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 33 20 20 69 66 20 28 73 79 6d 3d 3d );.return;......}...3..if.(sym==
187c0 58 4b 42 5f 4b 45 59 5f 52 65 74 75 72 6e 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4b 50 5f XKB_KEY_Return||sym==XKB_KEY_KP_
187e0 45 6e 74 65 72 29 20 7b 00 00 00 44 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d Enter).{...D....if.(sel_anchor>=
18800 30 29 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 20 69 6e 73 28 22 5c 6e 22 2c 31 29 3b 20 72 65 0).delete_sel();.ins("\n",1);.re
18820 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 4e 20 20 63 68 61 draw(a);.return;......}...N..cha
18840 72 20 62 75 66 5b 38 5d 3b 20 69 6e 74 20 6c 65 6e 3d 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f r.buf[8];.int.len=xkb_state_key_
18860 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 2c 62 75 66 2c 73 69 7a get_utf8(a->xkb_state,kc,buf,siz
18880 65 6f 66 20 62 75 66 29 3b 00 00 00 63 20 20 69 66 20 28 6c 65 6e 3e 30 26 26 28 75 6e 73 69 67 eof.buf);...c..if.(len>0&&(unsig
188a0 6e 65 64 20 63 68 61 72 29 62 75 66 5b 30 5d 3e 3d 33 32 29 20 7b 20 69 66 28 73 65 6c 5f 61 6e ned.char)buf[0]>=32).{.if(sel_an
188c0 63 68 6f 72 3e 3d 30 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 20 69 6e 73 28 62 75 66 2c 6c 65 chor>=0)delete_sel();.ins(buf,le
188e0 6e 29 3b 20 72 65 64 72 61 77 28 61 29 3b 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 66 73 74 61 n);.redraw(a);.}....}.......fsta
18900 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 tic.void.wm_ping(void.*d,.struct
18920 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 .xdg_wm_base.*wm,.uint32_t.seria
18940 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 73 65 72 69 61 6c 29 l).{.xdg_wm_base_pong(wm,serial)
18960 3b 20 7d 00 00 00 47 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 ;.}...Gstatic.const.struct.xdg_w
18980 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e m_base_listener.wm_listener.=.{.
189a0 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 ping=wm_ping};.......&static.voi
189c0 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 3c d.alloc_buf(struct.app.*a).{...<
189e0 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 20 20 20 7b 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 ..if.(a->buf)....{.wl_buffer_des
18a00 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 20 61 2d 3e 62 75 66 3d 4e 55 4c 4c 3b 20 7d 00 00 00 46 troy(a->buf);.a->buf=NULL;.}...F
18a20 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 29 20 7b 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 ..if.(a->pixels).{.munmap(a->pix
18a40 65 6c 73 2c 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 20 61 2d 3e 70 69 78 65 6c 73 3d 4e els,a->pixels_size);.a->pixels=N
18a60 55 4c 4c 3b 20 7d 00 00 00 40 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 6d ULL;.}...@..a->pixels.=.make_shm
18a80 28 61 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 26 61 2d 3e 62 75 66 2c 20 26 61 2d 3e 70 69 78 (a,.a->w,.a->h,.&a->buf,.&a->pix
18aa0 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f els_size);....}.......Fstatic.vo
18ac0 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 id.xs_cfg(void.*d,.struct.xdg_su
18ae0 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 rface.*xs,.uint32_t.serial).{...
18b00 38 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 8..struct.app.*a=d;.xdg_surface_
18b20 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c 29 3b 00 00 00 6f 20 20 69 ack_configure(xs,serial);...o..i
18b40 66 20 28 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3e 30 26 26 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3e f.(a->pending_w>0&&a->pending_h>
18b60 30 29 20 7b 20 61 2d 3e 77 3d 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3b 20 61 2d 3e 68 3d 61 2d 3e 0).{.a->w=a->pending_w;.a->h=a->
18b80 70 65 6e 64 69 6e 67 5f 68 3b 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3d 30 3b 20 61 2d 3e 70 65 pending_h;.a->pending_w=0;.a->pe
18ba0 6e 64 69 6e 67 5f 68 3d 30 3b 20 7d 00 00 00 29 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 nding_h=0;.}...)..if.(!a->config
18bc0 75 72 65 64 29 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 3b 00 00 00 1a 20 20 61 ured).a->configured=true;......a
18be0 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 4b lloc_buf(a);.redraw(a);....}...K
18c00 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f static.const.struct.xdg_surface_
18c20 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 listener.xs_listener.=.{.configu
18c40 72 65 3d 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 re=xs_cfg};.......`static.void.x
18c60 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 t_cfg(void.*d,.struct.xdg_toplev
18c80 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 el.*xt,.int32_t.w,.int32_t.h,.st
18ca0 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 3f 20 20 73 74 72 75 63 74 20 ruct.wl_array.*s).{...?..struct.
18cc0 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 77 3e 30 26 26 68 3e 30 29 7b 61 2d 3e 70 65 6e 64 69 6e app.*a=d;.if(w>0&&h>0){a->pendin
18ce0 67 5f 77 3d 77 3b 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3d 68 3b 7d 00 00 00 01 7d 00 00 00 43 73 g_w=w;a->pending_h=h;}....}...Cs
18d00 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 tatic.void.xt_close(void.*d,.str
18d20 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 65 78 69 74 28 30 29 3b uct.xdg_toplevel.*xt).{.exit(0);
18d40 20 7d 00 00 00 5c 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f .}...\static.const.struct.xdg_to
18d60 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e plevel_listener.xt_listener.=.{.
18d80 63 6f 6e 66 69 67 75 72 65 3d 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 78 74 5f 63 6c 6f 73 65 configure=xt_cfg,.close=xt_close
18da0 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 74 61 72 67 65 74 28 };.......Jstatic.void.ds_target(
18dc0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a void.*d,.struct.wl_data_source.*
18de0 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 29 20 7b 7d 00 00 00 53 73 74 61 74 69 63 20 76 s,.const.char.*m).{}...Sstatic.v
18e00 6f 69 64 20 64 73 5f 73 65 6e 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 oid.ds_send(void.*d,.struct.wl_d
18e20 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 2c 20 69 6e ata_source.*s,.const.char.*m,.in
18e40 74 33 32 5f 74 20 66 64 29 20 7b 00 00 00 46 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 t32_t.fd).{...F..struct.app.*a=d
18e60 3b 20 77 72 69 74 65 28 66 64 2c 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 61 2d 3e 63 6c 69 70 62 ;.write(fd,a->clipboard,a->clipb
18e80 6f 61 72 64 5f 6c 65 6e 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 3d 73 74 oard_len);.close(fd);....}...=st
18ea0 61 74 69 63 20 76 6f 69 64 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 28 76 6f 69 64 20 2a 64 2c 20 atic.void.ds_cancelled(void.*d,.
18ec0 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 29 20 7b 00 00 00 47 20 struct.wl_data_source.*s).{...G.
18ee0 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 61 2d 3e 64 73 29 7b 77 6c 5f 64 .struct.app.*a=d;.if(a->ds){wl_d
18f00 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b 61 2d 3e 64 73 3d ata_source_destroy(a->ds);a->ds=
18f20 4e 55 4c 4c 3b 7d 00 00 00 01 7d 00 00 00 74 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 NULL;}....}...tstatic.const.stru
18f40 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 73 5f 6c 69 ct.wl_data_source_listener.ds_li
18f60 73 74 65 6e 65 72 20 3d 20 7b 2e 74 61 72 67 65 74 3d 64 73 5f 74 61 72 67 65 74 2c 2e 73 65 6e stener.=.{.target=ds_target,.sen
18f80 64 3d 64 73 5f 73 65 6e 64 2c 2e 63 61 6e 63 65 6c 6c 65 64 3d 64 73 5f 63 61 6e 63 65 6c 6c 65 d=ds_send,.cancelled=ds_cancelle
18fa0 64 7d 3b 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6f 66 66 65 72 28 d};.......Tstatic.void.dd_offer(
18fc0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a void.*d,.struct.wl_data_device.*
18fe0 64 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 dd,.struct.wl_data_offer.*o).{}.
19000 00 00 93 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c ...static.void.dd_enter(void.*d,
19020 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 .struct.wl_data_device.*dd,.uint
19040 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 32_t.s,.struct.wl_surface.*su,.w
19060 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 2c 20 73 74 72 75 63 l_fixed_t.x,.wl_fixed_t.y,.struc
19080 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 63 t.wl_data_offer.*o).{}...;static
190a0 20 76 6f 69 64 20 64 64 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 .void.dd_leave(void.*d,.struct.w
190c0 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 64 73 74 61 74 69 63 20 l_data_device.*dd).{}...dstatic.
190e0 76 6f 69 64 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 void.dd_motion(void.*d,.struct.w
19100 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 77 l_data_device.*dd,.uint32_t.t,.w
19120 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 l_fixed_t.x,.wl_fixed_t.y).{}...
19140 3a 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 64 72 6f 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 :static.void.dd_drop(void.*d,.st
19160 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 58 73 ruct.wl_data_device.*dd).{}...Xs
19180 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c tatic.void.dd_selection(void.*d,
191a0 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 73 74 72 75 .struct.wl_data_device.*dd,.stru
191c0 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 ct.wl_data_offer.*o).{}...;stati
191e0 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6c 69 c.const.struct.wl_data_device_li
19200 73 74 65 6e 65 72 20 64 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 6e 20 20 2e 64 61 74 stener.dd_listener.=.{...n...dat
19220 61 5f 6f 66 66 65 72 3d 64 64 5f 6f 66 66 65 72 2c 2e 65 6e 74 65 72 3d 64 64 5f 65 6e 74 65 72 a_offer=dd_offer,.enter=dd_enter
19240 2c 2e 6c 65 61 76 65 3d 64 64 5f 6c 65 61 76 65 2c 2e 6d 6f 74 69 6f 6e 3d 64 64 5f 6d 6f 74 69 ,.leave=dd_leave,.motion=dd_moti
19260 6f 6e 2c 2e 64 72 6f 70 3d 64 64 5f 64 72 6f 70 2c 2e 73 65 6c 65 63 74 69 6f 6e 3d 64 64 5f 73 on,.drop=dd_drop,.selection=dd_s
19280 65 6c 65 63 74 69 6f 6e 00 00 00 02 7d 3b 00 00 00 00 00 00 00 76 73 74 61 74 69 63 20 76 6f 69 election....};.......vstatic.voi
192a0 64 20 70 74 72 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 d.ptr_enter(void.*d,.struct.wl_p
192c0 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c ointer.*p,.uint32_t.s,.struct.wl
192e0 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 _surface.*su,.wl_fixed_t.x,.wl_f
19300 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 5a 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f ixed_t.y).{}...Zstatic.void.ptr_
19320 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 leave(void.*d,.struct.wl_pointer
19340 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 .*p,.uint32_t.s,.struct.wl_surfa
19360 63 65 20 2a 73 75 29 20 7b 7d 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6d 6f ce.*su).{}..._static.void.ptr_mo
19380 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 tion(void.*d,.struct.wl_pointer.
193a0 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c *p,.uint32_t.t,.wl_fixed_t.x,.wl
193c0 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 _fixed_t.y).{......struct.app.*a
193e0 3d 64 3b 00 00 00 3f 20 20 61 2d 3e 6d 6f 75 73 65 5f 78 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f =d;...?..a->mouse_x=wl_fixed_to_
19400 69 6e 74 28 78 29 3b 20 61 2d 3e 6d 6f 75 73 65 5f 79 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 int(x);.a->mouse_y=wl_fixed_to_i
19420 6e 74 28 79 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 nt(y);......if.(a->open_menu!=ME
19440 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 2e 20 20 20 20 69 6e 74 20 69 74 3d 69 74 65 6d 5f 61 74 NU_NONE).{........int.it=item_at
19460 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 47 (a,a->open_menu,a->mouse_y);...G
19480 20 20 20 20 69 66 20 28 69 74 21 3d 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 29 20 7b 20 61 ....if.(it!=a->hovered_item).{.a
194a0 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 69 74 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 ->hovered_item=it;.redraw(a);.re
194c0 74 75 72 6e 3b 20 7d 00 00 00 03 20 20 7d 00 00 00 28 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 turn;.}......}...(..if.(a->mouse
194e0 5f 79 20 3e 3d 20 62 61 72 5f 79 28 61 29 29 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 _y.>=.bar_y(a)).redraw(a);....}.
19500 00 00 72 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 62 75 74 74 6f 6e 28 76 6f 69 64 20 2a ..rstatic.void.ptr_button(void.*
19520 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f d,.struct.wl_pointer.*p,.uint32_
19540 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 62 t.serial,.uint32_t.t,.uint32_t.b
19560 74 6e 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 tn,.uint32_t.state).{......struc
19580 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 35 20 20 69 66 20 28 73 74 61 74 65 21 3d 57 4c 5f 50 t.app.*a=d;...5..if.(state!=WL_P
195a0 4f 49 4e 54 45 52 5f 42 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 20 72 65 74 OINTER_BUTTON_STATE_PRESSED).ret
195c0 75 72 6e 3b 00 00 00 18 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 3d 73 65 72 69 61 6c 3b urn;......a->last_serial=serial;
195e0 00 00 00 12 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 3b 00 00 00 00 00 00 00 20 20 20 ......int.by=bar_y(a);..........
19600 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 if.(a->open_menu!=MENU_NONE).{..
19620 00 2e 20 20 20 20 69 6e 74 20 69 74 3d 69 74 65 6d 5f 61 74 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d ......int.it=item_at(a,a->open_m
19640 65 6e 75 2c 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 38 20 20 20 20 69 66 20 28 69 74 3e 3d enu,a->mouse_y);...8....if.(it>=
19660 30 29 20 7b 20 66 69 72 65 5f 69 74 65 6d 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 69 74 0).{.fire_item(a,a->open_menu,it
19680 29 3b 20 72 65 74 75 72 6e 3b 20 7d 00 00 00 19 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 );.return;.}........if.(a->mouse
196a0 5f 79 3e 3d 62 79 29 20 7b 00 00 00 9e 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b _y>=by).{..........for.(int.i=0;
196c0 69 3c 32 3b 69 2b 2b 29 20 7b 20 69 6e 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 62 77 3d 62 74 i<2;i++).{.int.bx=btn_x(i),bw=bt
196e0 6e 5f 77 28 69 29 3b 20 69 66 28 61 2d 3e 6d 6f 75 73 65 5f 78 3e 3d 62 78 26 26 61 2d 3e 6d 6f n_w(i);.if(a->mouse_x>=bx&&a->mo
19700 75 73 65 5f 78 3c 62 78 2b 62 77 29 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 28 4d 65 6e 75 49 use_x<bx+bw){a->open_menu=(MenuI
19720 64 29 69 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 d)i;a->hovered_item=-1;redraw(a)
19740 3b 72 65 74 75 72 6e 3b 7d 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 42 20 20 20 20 61 2d 3e 6f ;return;}.}........}...B....a->o
19760 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 pen_menu=MENU_NONE;.a->hovered_i
19780 74 65 6d 3d 2d 31 3b 20 72 65 64 72 61 77 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 tem=-1;.redraw(a);.return;......
197a0 7d 00 00 00 00 00 00 00 17 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 3e 3d 62 79 29 20 7b }..........if.(a->mouse_y>=by).{
197c0 00 00 00 9c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 69 3c 32 3b 69 2b 2b 29 20 7b 20 ........for.(int.i=0;i<2;i++).{.
197e0 69 6e 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 62 77 3d 62 74 6e 5f 77 28 69 29 3b 20 69 66 28 int.bx=btn_x(i),bw=btn_w(i);.if(
19800 61 2d 3e 6d 6f 75 73 65 5f 78 3e 3d 62 78 26 26 61 2d 3e 6d 6f 75 73 65 5f 78 3c 62 78 2b 62 77 a->mouse_x>=bx&&a->mouse_x<bx+bw
19820 29 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 28 4d 65 6e 75 49 64 29 69 3b 61 2d 3e 68 6f 76 65 ){a->open_menu=(MenuId)i;a->hove
19840 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 20 7d red_item=-1;redraw(a);return;}.}
19860 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 3d 20 20 ........return;......}.......=..
19880 69 6e 74 20 63 78 3d 28 61 2d 3e 6d 6f 75 73 65 5f 78 2d 50 41 44 29 2f 63 65 6c 6c 5f 77 2c 20 int.cx=(a->mouse_x-PAD)/cell_w,.
198a0 63 79 3d 28 61 2d 3e 6d 6f 75 73 65 5f 79 2d 50 41 44 29 2f 63 65 6c 6c 5f 68 3b 00 00 00 18 20 cy=(a->mouse_y-PAD)/cell_h;.....
198c0 20 69 6e 74 20 70 6f 73 3d 30 2c 63 6f 6c 3d 30 2c 72 6f 77 3d 30 3b 00 00 00 1c 20 20 66 6f 72 .int.pos=0,col=0,row=0;......for
198e0 20 28 69 6e 74 20 69 3d 30 3b 69 3c 74 6c 65 6e 3b 69 2b 2b 29 20 7b 00 00 00 2c 20 20 20 20 69 .(int.i=0;i<tlen;i++).{...,....i
19900 66 20 28 72 6f 77 3d 3d 63 79 26 26 63 6f 6c 3d 3d 63 78 29 7b 70 6f 73 3d 69 3b 67 6f 74 6f 20 f.(row==cy&&col==cx){pos=i;goto.
19920 66 6f 75 6e 64 3b 7d 00 00 00 42 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 3d 3d 27 5c 6e 27 found;}...B....if.(text[i]=='\n'
19940 29 7b 69 66 28 72 6f 77 3d 3d 63 79 29 7b 70 6f 73 3d 69 3b 67 6f 74 6f 20 66 6f 75 6e 64 3b 7d ){if(row==cy){pos=i;goto.found;}
19960 63 6f 6c 3d 30 3b 72 6f 77 2b 2b 3b 7d 00 00 00 0f 20 20 20 20 65 6c 73 65 20 63 6f 6c 2b 2b 3b col=0;row++;}........else.col++;
19980 00 00 00 03 20 20 7d 00 00 00 0b 20 20 70 6f 73 3d 74 6c 65 6e 3b 00 00 00 06 66 6f 75 6e 64 3a ......}......pos=tlen;....found:
199a0 00 00 00 27 20 20 63 75 72 73 6f 72 3d 70 6f 73 3b 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b ...'..cursor=pos;.sel_anchor=-1;
199c0 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 .redraw(a);....}..._static.void.
199e0 70 74 72 5f 61 78 69 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e ptr_axis(void.*d,.struct.wl_poin
19a00 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 61 78 69 ter.*p,.uint32_t.t,.uint32_t.axi
19a20 73 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 76 29 20 7b 7d 00 00 00 37 73 74 61 74 69 63 20 76 6f s,.wl_fixed_t.v).{}...7static.vo
19a40 69 64 20 70 74 72 5f 66 72 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f id.ptr_frame(void.*d,.struct.wl_
19a60 70 6f 69 6e 74 65 72 20 2a 70 29 20 7b 7d 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 pointer.*p).{}...Kstatic.void.pt
19a80 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c r_axis_source(void.*d,.struct.wl
19aa0 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 72 63 29 20 7b 7d 00 00 00 _pointer.*p,.uint32_t.src).{}...
19ac0 56 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 73 74 6f 70 28 76 6f 69 64 20 Vstatic.void.ptr_axis_stop(void.
19ae0 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 *d,.struct.wl_pointer.*p,.uint32
19b00 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 61 78 69 73 29 20 7b 7d 00 00 00 5c 73 74 61 74 69 _t.t,.uint32_t.axis).{}...\stati
19b20 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 64 69 73 63 72 65 74 65 28 76 6f 69 64 20 2a 64 c.void.ptr_axis_discrete(void.*d
19b40 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 ,.struct.wl_pointer.*p,.uint32_t
19b60 20 61 78 69 73 2c 20 69 6e 74 33 32 5f 74 20 64 69 73 63 29 20 7b 7d 00 00 00 38 73 74 61 74 69 .axis,.int32_t.disc).{}...8stati
19b80 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 6c 69 73 74 65 6e c.const.struct.wl_pointer_listen
19ba0 65 72 20 70 74 72 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1c 20 20 2e 65 6e 74 65 72 20 er.ptr_listener.=.{.......enter.
19bc0 20 20 20 20 20 20 20 3d 20 70 74 72 5f 65 6e 74 65 72 2c 00 00 00 1c 20 20 2e 6c 65 61 76 65 20 .......=.ptr_enter,.......leave.
19be0 20 20 20 20 20 20 20 3d 20 70 74 72 5f 6c 65 61 76 65 2c 00 00 00 1d 20 20 2e 6d 6f 74 69 6f 6e .......=.ptr_leave,.......motion
19c00 20 20 20 20 20 20 20 3d 20 70 74 72 5f 6d 6f 74 69 6f 6e 2c 00 00 00 1d 20 20 2e 62 75 74 74 6f .......=.ptr_motion,.......butto
19c20 6e 20 20 20 20 20 20 20 3d 20 70 74 72 5f 62 75 74 74 6f 6e 2c 00 00 00 1b 20 20 2e 61 78 69 73 n.......=.ptr_button,.......axis
19c40 20 20 20 20 20 20 20 20 20 3d 20 70 74 72 5f 61 78 69 73 2c 00 00 00 1c 20 20 2e 66 72 61 6d 65 .........=.ptr_axis,.......frame
19c60 20 20 20 20 20 20 20 20 3d 20 70 74 72 5f 66 72 61 6d 65 2c 00 00 00 22 20 20 2e 61 78 69 73 5f ........=.ptr_frame,..."...axis_
19c80 73 6f 75 72 63 65 20 20 3d 20 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 2c 00 00 00 20 20 20 source..=.ptr_axis_source,......
19ca0 2e 61 78 69 73 5f 73 74 6f 70 20 20 20 20 3d 20 70 74 72 5f 61 78 69 73 5f 73 74 6f 70 2c 00 00 .axis_stop....=.ptr_axis_stop,..
19cc0 00 24 20 20 2e 61 78 69 73 5f 64 69 73 63 72 65 74 65 3d 20 70 74 72 5f 61 78 69 73 5f 64 69 73 .$...axis_discrete=.ptr_axis_dis
19ce0 63 72 65 74 65 2c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 crete,....};.......astatic.void.
19d00 6b 62 5f 6b 65 79 6d 61 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 kb_keymap(void.*d,.struct.wl_key
19d20 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 66 6d 74 2c 20 69 6e 74 33 32 5f 74 board.*kb,.uint32_t.fmt,.int32_t
19d40 20 66 64 2c 20 75 69 6e 74 33 32 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 .fd,.uint32_t.size).{......struc
19d60 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 3f 20 20 69 66 20 28 66 6d 74 21 3d 57 4c 5f 4b 45 59 t.app.*a=d;...?..if.(fmt!=WL_KEY
19d80 42 4f 41 52 44 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 58 4b 42 5f 56 31 29 7b 63 6c 6f 73 BOARD_KEYMAP_FORMAT_XKB_V1){clos
19da0 65 28 66 64 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 40 20 20 63 68 61 72 20 2a 73 3d 6d 6d 61 70 e(fd);return;}...@..char.*s=mmap
19dc0 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 2c 4d 41 50 5f 50 52 49 56 41 54 45 (NULL,size,PROT_READ,MAP_PRIVATE
19de0 2c 66 64 2c 30 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1c 20 20 69 66 20 28 73 3d 3d 4d ,fd,0);.close(fd);......if.(s==M
19e00 41 50 5f 46 41 49 4c 45 44 29 20 72 65 74 75 72 6e 3b 00 00 00 46 20 20 69 66 20 28 61 2d 3e 78 AP_FAILED).return;...F..if.(a->x
19e20 6b 62 5f 73 74 61 74 65 29 20 7b 78 6b 62 5f 73 74 61 74 65 5f 75 6e 72 65 66 28 61 2d 3e 78 6b kb_state).{xkb_state_unref(a->xk
19e40 62 5f 73 74 61 74 65 29 3b 61 2d 3e 78 6b 62 5f 73 74 61 74 65 3d 4e 55 4c 4c 3b 7d 00 00 00 49 b_state);a->xkb_state=NULL;}...I
19e60 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 7b 78 6b 62 5f 6b 65 79 6d 61 70 5f ..if.(a->xkb_keymap){xkb_keymap_
19e80 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 61 2d 3e 78 6b 62 5f 6b 65 79 6d unref(a->xkb_keymap);a->xkb_keym
19ea0 61 70 3d 4e 55 4c 4c 3b 7d 00 00 00 6f 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 3d 78 6b 62 ap=NULL;}...o..a->xkb_keymap=xkb
19ec0 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 72 6f 6d 5f 73 74 72 69 6e 67 28 61 2d 3e 78 6b 62 5f 63 _keymap_new_from_string(a->xkb_c
19ee0 74 78 2c 73 2c 58 4b 42 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 54 45 58 54 5f 56 31 2c 58 tx,s,XKB_KEYMAP_FORMAT_TEXT_V1,X
19f00 4b 42 5f 4b 45 59 4d 41 50 5f 43 4f 4d 50 49 4c 45 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 11 KB_KEYMAP_COMPILE_NO_FLAGS);....
19f20 20 20 6d 75 6e 6d 61 70 28 73 2c 73 69 7a 65 29 3b 00 00 00 3f 20 20 69 66 20 28 61 2d 3e 78 6b ..munmap(s,size);...?..if.(a->xk
19f40 62 5f 6b 65 79 6d 61 70 29 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 3d 78 6b 62 5f 73 74 61 74 65 b_keymap).a->xkb_state=xkb_state
19f60 5f 6e 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 01 7d 00 00 00 6f 73 74 61 _new(a->xkb_keymap);....}...osta
19f80 74 69 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 tic.void.kb_enter(void.*d,.struc
19fa0 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 t.wl_keyboard.*kb,.uint32_t.s,.s
19fc0 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 73 74 72 75 63 74 20 77 6c 5f truct.wl_surface.*su,.struct.wl_
19fe0 61 72 72 61 79 20 2a 6b 29 20 7b 7d 00 00 00 5a 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6c array.*k).{}...Zstatic.void.kb_l
1a000 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 eave(void.*d,.struct.wl_keyboard
1a020 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 .*kb,.uint32_t.s,.struct.wl_surf
1a040 61 63 65 20 2a 73 75 29 20 7b 00 00 00 56 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b ace.*su).{...V..struct.app.*a=d;
1a060 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 30 7d 3b 20 74 69 6d 65 72 .struct.itimerspec.ts={0};.timer
1a080 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 fd_settime(a->repeat_fd,0,&ts,NU
1a0a0 4c 4c 29 3b 00 00 00 01 7d 00 00 00 70 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 28 LL);....}...pstatic.void.kb_key(
1a0c0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c void.*d,.struct.wl_keyboard.*kb,
1a0e0 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 .uint32_t.serial,.uint32_t.t,.ui
1a100 6e 74 33 32 5f 74 20 6b 65 79 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 nt32_t.key,.uint32_t.state).{...
1a120 29 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 )..struct.app.*a=d;.a->last_seri
1a140 61 6c 3d 73 65 72 69 61 6c 3b 00 00 00 2d 20 20 69 66 20 28 73 74 61 74 65 3d 3d 57 4c 5f 4b 45 al=serial;...-..if.(state==WL_KE
1a160 59 42 4f 41 52 44 5f 4b 45 59 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 20 7b 00 00 00 2a 20 YBOARD_KEY_STATE_PRESSED).{...*.
1a180 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 61 2c 6b 65 79 29 3b 20 61 2d 3e 72 65 70 65 61 74 ...process_key(a,key);.a->repeat
1a1a0 5f 6b 65 79 3d 6b 65 79 3b 00 00 00 1b 20 20 20 20 69 66 20 28 61 2d 3e 72 65 70 65 61 74 5f 72 _key=key;........if.(a->repeat_r
1a1c0 61 74 65 3e 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 ate>0).{..........struct.itimers
1a1e0 70 65 63 20 74 73 3d 7b 00 00 00 5d 20 20 20 20 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 20 20 pec.ts={...].........it_value...
1a200 3d 7b 2e 74 76 5f 73 65 63 3d 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 2f 31 30 30 30 2c 2e ={.tv_sec=a->repeat_delay/1000,.
1a220 74 76 5f 6e 73 65 63 3d 28 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 25 31 30 30 30 29 2a 31 tv_nsec=(a->repeat_delay%1000)*1
1a240 30 30 30 30 30 30 4c 7d 2c 00 00 00 45 20 20 20 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 000000L},...E.........it_interva
1a260 6c 3d 7b 2e 74 76 5f 73 65 63 3d 30 2c 2e 74 76 5f 6e 73 65 63 3d 31 30 30 30 30 30 30 30 30 30 l={.tv_sec=0,.tv_nsec=1000000000
1a280 4c 2f 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 7d 2c 00 00 00 08 20 20 20 20 20 20 7d 3b 00 00 L/a->repeat_rate},..........};..
1a2a0 00 2f 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 ./......timerfd_settime(a->repea
1a2c0 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 50 20 20 t_fd,0,&ts,NULL);........}...P..
1a2e0 7d 20 65 6c 73 65 20 7b 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 30 }.else.{.struct.itimerspec.ts={0
1a300 7d 3b 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c };.timerfd_settime(a->repeat_fd,
1a320 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 20 7d 00 00 00 01 7d 00 00 00 82 73 74 61 74 69 63 20 76 6f 0,&ts,NULL);.}....}....static.vo
1a340 69 64 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 id.kb_modifiers(void.*d,.struct.
1a360 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 20 75 69 6e wl_keyboard.*kb,.uint32_t.s,.uin
1a380 74 33 32 5f 74 20 64 65 70 2c 20 75 69 6e 74 33 32 5f 74 20 6c 61 74 2c 20 75 69 6e 74 33 32 5f t32_t.dep,.uint32_t.lat,.uint32_
1a3a0 74 20 6c 6f 63 6b 65 64 2c 20 75 69 6e 74 33 32 5f 74 20 67 72 70 29 20 7b 00 00 00 5f 20 20 73 t.locked,.uint32_t.grp).{..._..s
1a3c0 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 69 66 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 truct.app.*a=d;.if(a->xkb_state)
1a3e0 20 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d 61 73 6b 28 61 2d 3e 78 6b 62 5f 73 74 .xkb_state_update_mask(a->xkb_st
1a400 61 74 65 2c 64 65 70 2c 6c 61 74 2c 6c 6f 63 6b 65 64 2c 30 2c 30 2c 67 72 70 29 3b 00 00 00 01 ate,dep,lat,locked,0,0,grp);....
1a420 7d 00 00 00 55 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 72 65 70 65 61 74 28 76 6f 69 64 20 }...Ustatic.void.kb_repeat(void.
1a440 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 69 6e 74 33 *d,.struct.wl_keyboard.*kb,.int3
1a460 32 5f 74 20 72 61 74 65 2c 20 69 6e 74 33 32 5f 74 20 64 65 6c 61 79 29 20 7b 00 00 00 3e 20 20 2_t.rate,.int32_t.delay).{...>..
1a480 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 3d struct.app.*a=d;.a->repeat_rate=
1a4a0 72 61 74 65 3b 20 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 3d 64 65 6c 61 79 3b 00 00 00 01 rate;.a->repeat_delay=delay;....
1a4c0 7d 00 00 00 3e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 }...>static.const.struct.wl_keyb
1a4e0 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 oard_listener.keyboard_listener.
1a500 3d 20 7b 00 00 00 6e 20 20 2e 6b 65 79 6d 61 70 3d 6b 62 5f 6b 65 79 6d 61 70 2c 2e 65 6e 74 65 =.{...n...keymap=kb_keymap,.ente
1a520 72 3d 6b 62 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 6b 62 5f 6c 65 61 76 65 2c 2e 6b 65 79 3d r=kb_enter,.leave=kb_leave,.key=
1a540 6b 62 5f 6b 65 79 2c 2e 6d 6f 64 69 66 69 65 72 73 3d 6b 62 5f 6d 6f 64 69 66 69 65 72 73 2c 2e kb_key,.modifiers=kb_modifiers,.
1a560 72 65 70 65 61 74 5f 69 6e 66 6f 3d 6b 62 5f 72 65 70 65 61 74 00 00 00 02 7d 3b 00 00 00 00 00 repeat_info=kb_repeat....};.....
1a580 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f 63 61 70 73 28 76 6f 69 64 20 2a 64 ..Estatic.void.seat_caps(void.*d
1a5a0 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 20 75 69 6e 74 33 32 5f 74 ,.struct.wl_seat.*seat,.uint32_t
1a5c0 20 63 61 70 73 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 .caps).{......struct.app.*a=d;..
1a5e0 00 39 20 20 69 66 20 28 28 63 61 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 .9..if.((caps&WL_SEAT_CAPABILITY
1a600 5f 4b 45 59 42 4f 41 52 44 29 26 26 21 61 2d 3e 6b 65 79 62 6f 61 72 64 29 20 7b 00 00 00 67 20 _KEYBOARD)&&!a->keyboard).{...g.
1a620 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 3d 77 6c 5f 73 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f ...a->keyboard=wl_seat_get_keybo
1a640 61 72 64 28 73 65 61 74 29 3b 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c 69 73 74 65 ard(seat);.wl_keyboard_add_liste
1a660 6e 65 72 28 61 2d 3e 6b 65 79 62 6f 61 72 64 2c 26 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e ner(a->keyboard,&keyboard_listen
1a680 65 72 2c 61 29 3b 00 00 00 40 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 26 57 4c er,a);...@..}.else.if.(!(caps&WL
1a6a0 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 26 26 61 2d 3e 6b _SEAT_CAPABILITY_KEYBOARD)&&a->k
1a6c0 65 79 62 6f 61 72 64 29 20 7b 00 00 00 37 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 72 65 eyboard).{...7....wl_keyboard_re
1a6e0 6c 65 61 73 65 28 61 2d 3e 6b 65 79 62 6f 61 72 64 29 3b 20 61 2d 3e 6b 65 79 62 6f 61 72 64 3d lease(a->keyboard);.a->keyboard=
1a700 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 37 20 20 69 66 20 28 28 63 61 70 73 26 57 4c 5f 53 NULL;......}...7..if.((caps&WL_S
1a720 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 26 26 21 61 2d 3e 70 6f 69 EAT_CAPABILITY_POINTER)&&!a->poi
1a740 6e 74 65 72 29 20 7b 00 00 00 5e 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 3d 77 6c 5f 73 65 61 nter).{...^....a->pointer=wl_sea
1a760 74 5f 67 65 74 5f 70 6f 69 6e 74 65 72 28 73 65 61 74 29 3b 20 77 6c 5f 70 6f 69 6e 74 65 72 5f t_get_pointer(seat);.wl_pointer_
1a780 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 70 6f 69 6e 74 65 72 2c 26 70 74 72 5f 6c 69 73 add_listener(a->pointer,&ptr_lis
1a7a0 74 65 6e 65 72 2c 61 29 3b 00 00 00 3e 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 tener,a);...>..}.else.if.(!(caps
1a7c0 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 26 26 61 2d &WL_SEAT_CAPABILITY_POINTER)&&a-
1a7e0 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 34 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 65 >pointer).{...4....wl_pointer_re
1a800 6c 65 61 73 65 28 61 2d 3e 70 6f 69 6e 74 65 72 29 3b 20 61 2d 3e 70 6f 69 6e 74 65 72 3d 4e 55 lease(a->pointer);.a->pointer=NU
1a820 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 73 LL;......}....}...Istatic.void.s
1a840 65 61 74 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 eat_name(void.*d,.struct.wl_seat
1a860 20 2a 73 65 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29 20 7b 7d 00 00 00 5f .*seat,.const.char.*name).{}..._
1a880 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 5f 6c 69 73 74 static.const.struct.wl_seat_list
1a8a0 65 6e 65 72 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 61 70 61 62 69 6c 69 74 ener.seat_listener.=.{.capabilit
1a8c0 69 65 73 3d 73 65 61 74 5f 63 61 70 73 2c 2e 6e 61 6d 65 3d 73 65 61 74 5f 6e 61 6d 65 7d 3b 00 ies=seat_caps,.name=seat_name};.
1a8e0 00 00 00 00 00 00 64 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f ......dstatic.void.reg_global(vo
1a900 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 id.*d,.struct.wl_registry.*r,.ui
1a920 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 nt32_t.id,.const.char.*iface,.ui
1a940 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 nt32_t.v).{......struct.app.*a=d
1a960 3b 00 00 00 6e 20 20 69 66 20 20 20 20 20 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 ;...n..if......(!strcmp(iface,"w
1a980 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 20 20 20 20 20 20 20 20 20 61 2d 3e 63 6f 6d 70 l_compositor"))..........a->comp
1a9a0 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f =wl_registry_bind(r,id,&wl_compo
1a9c0 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b 00 00 00 67 20 20 65 6c 73 65 20 69 66 sitor_interface,4);...g..else.if
1a9e0 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 73 68 6d 22 29 29 20 20 20 20 20 20 .(!strcmp(iface,"wl_shm"))......
1aa00 20 20 20 20 20 20 20 20 20 20 20 61 2d 3e 73 68 6d 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 ...........a->shm.=wl_registry_b
1aa20 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 ind(r,id,&wl_shm_interface,1);..
1aa40 00 9e 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 78 64 67 5f ....else.if.(!strcmp(iface,"xdg_
1aa60 77 6d 5f 62 61 73 65 22 29 29 20 20 20 20 20 20 20 20 20 20 7b 20 61 2d 3e 77 6d 20 20 3d 77 6c wm_base"))..........{.a->wm..=wl
1aa80 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 _registry_bind(r,id,&xdg_wm_base
1aaa0 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c _interface,1);.xdg_wm_base_add_l
1aac0 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 20 7d istener(a->wm,&wm_listener,a);.}
1aae0 00 00 00 9f 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c ......else.if.(!strcmp(iface,"wl
1ab00 5f 73 65 61 74 22 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 61 2d 3e 73 65 61 74 3d _seat"))..............{.a->seat=
1ab20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 65 61 74 5f 69 wl_registry_bind(r,id,&wl_seat_i
1ab40 6e 74 65 72 66 61 63 65 2c 35 29 3b 20 20 20 20 20 20 77 6c 5f 73 65 61 74 5f 61 64 64 5f 6c 69 nterface,5);......wl_seat_add_li
1ab60 73 74 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 26 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 2c 61 29 stener(a->seat,&seat_listener,a)
1ab80 3b 20 7d 00 00 00 77 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c ;.}...w..else.if.(!strcmp(iface,
1aba0 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 22 29 29 20 61 2d 3e 64 64 "wl_data_device_manager")).a->dd
1abc0 6d 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 64 61 74 m.=wl_registry_bind(r,id,&wl_dat
1abe0 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 69 6e 74 65 72 66 61 63 65 2c 33 29 3b 00 00 a_device_manager_interface,3);..
1ac00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 72 65 6d 6f 76 65 28 76 6f ..}...Fstatic.void.reg_remove(vo
1ac20 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 id.*d,.struct.wl_registry.*r,.ui
1ac40 6e 74 33 32 5f 74 20 69 64 29 20 7b 7d 00 00 00 67 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 nt32_t.id).{}...gstatic.const.st
1ac60 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 ruct.wl_registry_listener.reg_li
1ac80 73 74 65 6e 65 72 20 3d 20 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f 67 6c 6f 62 61 6c 2c 2e 67 6c stener.=.{.global=reg_global,.gl
1aca0 6f 62 61 6c 5f 72 65 6d 6f 76 65 3d 72 65 67 5f 72 65 6d 6f 76 65 7d 3b 00 00 00 00 00 00 00 10 obal_remove=reg_remove};........
1acc0 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 58 20 20 69 66 20 28 21 6c 6f 61 64 5f int.main(void).{...X..if.(!load_
1ace0 66 6f 6e 74 28 29 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 66 61 69 6c 65 64 font()).{.fprintf(stderr,"failed
1ad00 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e 22 2c 46 4f 4e 54 5f 4e 41 4d 45 29 3b .to.load.font:.%s\n",FONT_NAME);
1ad20 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 13 20 20 73 74 72 75 63 74 20 61 70 70 .return.1;.}..........struct.app
1ad40 20 61 3d 7b 30 7d 3b 00 00 00 13 20 20 61 2e 77 3d 36 34 30 3b 20 61 2e 68 3d 34 38 30 3b 00 00 .a={0};......a.w=640;.a.h=480;..
1ad60 00 27 20 20 61 2e 72 65 70 65 61 74 5f 72 61 74 65 3d 32 35 3b 20 61 2e 72 65 70 65 61 74 5f 64 .'..a.repeat_rate=25;.a.repeat_d
1ad80 65 6c 61 79 3d 34 30 30 3b 00 00 00 2b 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f elay=400;...+..a.open_menu=MENU_
1ada0 4e 4f 4e 45 3b 20 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 00 00 00 00 00 00 00 32 NONE;.a.hovered_item=-1;.......2
1adc0 20 20 61 2e 78 6b 62 5f 63 74 78 3d 78 6b 62 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 28 58 4b 42 5f ..a.xkb_ctx=xkb_context_new(XKB_
1ade0 43 4f 4e 54 45 58 54 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 45 20 20 69 66 20 28 21 61 2e 78 CONTEXT_NO_FLAGS);...E..if.(!a.x
1ae00 6b 62 5f 63 74 78 29 7b 66 70 75 74 73 28 22 78 6b 62 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 20 66 kb_ctx){fputs("xkb_context_new.f
1ae20 61 69 6c 65 64 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 ailed\n",stderr);return.1;}.....
1ae40 00 00 47 20 20 61 2e 72 65 70 65 61 74 5f 66 64 3d 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 ..G..a.repeat_fd=timerfd_create(
1ae60 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c 4f 45 58 45 43 7c 54 46 44 5f CLOCK_MONOTONIC,TFD_CLOEXEC|TFD_
1ae80 4e 4f 4e 42 4c 4f 43 4b 29 3b 00 00 00 38 20 20 69 66 20 28 61 2e 72 65 70 65 61 74 5f 66 64 3c NONBLOCK);...8..if.(a.repeat_fd<
1aea0 30 29 7b 70 65 72 72 6f 72 28 22 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 22 29 3b 72 65 74 75 0){perror("timerfd_create");retu
1aec0 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 1f 20 20 61 2e 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 63 rn.1;}..........a.d=wl_display_c
1aee0 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 4a 20 20 69 66 20 28 21 61 2e 64 29 7b 66 70 75 onnect(NULL);...J..if.(!a.d){fpu
1af00 74 73 28 22 63 61 6e 6e 6f 74 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 ts("cannot.connect.to.Wayland.di
1af20 73 70 6c 61 79 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 splay\n",stderr);return.1;}.....
1af40 00 00 25 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 ..%..a.reg=wl_display_get_regist
1af60 72 79 28 61 2e 64 29 3b 00 00 00 33 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 ry(a.d);...3..wl_registry_add_li
1af80 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 stener(a.reg,&reg_listener,&a);.
1afa0 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 .....wl_display_roundtrip(a.d);.
1afc0 00 00 00 00 00 00 64 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 7c 7c 21 61 2e 73 68 6d 7c 7c 21 61 ......d..if.(!a.comp||!a.shm||!a
1afe0 2e 77 6d 7c 7c 21 61 2e 73 65 61 74 29 7b 66 70 75 74 73 28 22 6d 69 73 73 69 6e 67 20 72 65 71 .wm||!a.seat){fputs("missing.req
1b000 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 2c 73 74 64 65 72 72 29 uired.Wayland.globals\n",stderr)
1b020 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e ;return.1;}......wl_display_roun
1b040 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 15 20 20 69 66 20 28 61 2e 64 64 6d 26 26 dtrip(a.d);..........if.(a.ddm&&
1b060 61 2e 73 65 61 74 29 7b 00 00 00 3e 20 20 20 20 61 2e 64 64 3d 77 6c 5f 64 61 74 61 5f 64 65 76 a.seat){...>....a.dd=wl_data_dev
1b080 69 63 65 5f 6d 61 6e 61 67 65 72 5f 67 65 74 5f 64 61 74 61 5f 64 65 76 69 63 65 28 61 2e 64 64 ice_manager_get_data_device(a.dd
1b0a0 6d 2c 61 2e 73 65 61 74 29 3b 00 00 00 36 20 20 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 m,a.seat);...6....wl_data_device
1b0c0 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 64 64 2c 26 64 64 5f 6c 69 73 74 65 6e 65 72 2c _add_listener(a.dd,&dd_listener,
1b0e0 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2c 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d &a);......}.......,..a.ws=wl_com
1b100 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 positor_create_surface(a.comp);.
1b120 00 00 2e 20 20 61 2e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 .....a.xs=xdg_wm_base_get_xdg_su
1b140 72 66 61 63 65 28 61 2e 77 6d 2c 61 2e 77 73 29 3b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 rface(a.wm,a.ws);...1..xdg_surfa
1b160 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 26 78 73 5f 6c 69 73 74 65 6e 65 ce_add_listener(a.xs,&xs_listene
1b180 72 2c 26 61 29 3b 00 00 00 26 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 r,&a);...&..a.xt=xdg_surface_get
1b1a0 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 32 20 20 78 64 67 5f 74 6f 70 6c 65 76 _toplevel(a.xs);...2..xdg_toplev
1b1c0 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 26 78 74 5f 6c 69 73 74 65 6e 65 el_add_listener(a.xt,&xt_listene
1b1e0 72 2c 26 61 29 3b 00 00 00 26 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 r,&a);...&..xdg_toplevel_set_tit
1b200 6c 65 28 61 2e 78 74 2c 22 77 6c 65 64 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 le(a.xt,"wled");......wl_surface
1b220 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 _commit(a.ws);..........while.(!
1b240 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 2c 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 a.configured)...,....if.(wl_disp
1b260 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3d 3d 2d 31 29 20 62 72 65 61 6b 3b 00 00 00 lay_dispatch(a.d)==-1).break;...
1b280 00 00 00 00 23 20 20 69 6e 74 20 77 6c 5f 66 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f ....#..int.wl_fd=wl_display_get_
1b2a0 66 64 28 61 2e 64 29 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 1a 20 20 20 fd(a.d);......while.(1).{.......
1b2c0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 57 20 20 20 20 73 .wl_display_flush(a.d);...W....s
1b2e0 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 3d 7b 7b 2e 66 64 3d 77 6c 5f 66 64 2c truct.pollfd.fds[2]={{.fd=wl_fd,
1b300 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 7b 2e 66 64 3d 61 2e 72 65 70 65 61 74 5f 66 64 .events=POLLIN},{.fd=a.repeat_fd
1b320 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 72 65 ,.events=POLLIN}};........int.re
1b340 74 3d 70 6f 6c 6c 28 66 64 73 2c 32 2c 2d 31 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 72 65 74 t=poll(fds,2,-1);.../....if.(ret
1b360 3c 30 29 7b 69 66 28 65 72 72 6e 6f 3d 3d 45 49 4e 54 52 29 63 6f 6e 74 69 6e 75 65 3b 62 72 65 <0){if(errno==EINTR)continue;bre
1b380 61 6b 3b 7d 00 00 00 6c 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 ak;}...l....if.(fds[1].revents&P
1b3a0 4f 4c 4c 49 4e 29 7b 75 69 6e 74 36 34 5f 74 20 65 78 70 3b 72 65 61 64 28 61 2e 72 65 70 65 61 OLLIN){uint64_t.exp;read(a.repea
1b3c0 74 5f 66 64 2c 26 65 78 70 2c 73 69 7a 65 6f 66 20 65 78 70 29 3b 70 72 6f 63 65 73 73 5f 6b 65 t_fd,&exp,sizeof.exp);process_ke
1b3e0 79 28 26 61 2c 61 2e 72 65 70 65 61 74 5f 6b 65 79 29 3b 7d 00 00 00 46 20 20 20 20 69 66 20 28 y(&a,a.repeat_key);}...F....if.(
1b400 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 20 69 66 28 77 6c 5f 64 69 73 fds[0].revents&POLLIN).if(wl_dis
1b420 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3d 3d 2d 31 29 20 62 72 65 61 6b 3b 35 81 play_dispatch(a.d)==-1).break;5.
1b440 f5 18 00 00 00 00 02 00 00 00 0a 00 00 00 e1 02 00 00 3f 00 00 00 62 04 00 00 07 00 00 00 4f 00 ..................?...b.......O.
1b460 00 00 00 00 00 00 b7 71 00 00 00 00 00 00 48 7e 00 00 00 00 00 00 35 81 5f d0 00 00 00 05 00 00 .......q......H~......5._.......
1b480 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 01 dc 00 00 00 27 00 00 00 00 ff ff ff ff 00 01 .....................'..........
1b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 4e ............................i..N
1b600 04 01 00 00 00 00 00 f5 18 00 00 01 db 00 00 01 dd 00 00 04 68 00 00 00 01 00 00 00 49 20 20 64 ....................h.......I..d
1b620 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 77 6c 65 str(px,.pw,.ph,.PAD.*.2,.y,."wle
1b640 64 20 20 2d 20 20 77 61 79 6c 61 6e 64 20 74 65 78 74 20 65 64 69 74 6f 72 22 2c 20 46 47 5f 43 d..-..wayland.text.editor",.FG_C
1b660 4f 4c 4f 52 29 3b 35 81 f5 18 00 00 00 00 db 01 00 00 23 00 00 00 00 00 00 00 04 00 00 00 00 00 OLOR);5...........#.............
1b680 00 00 01 00 00 00 48 32 00 00 00 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 ......H2........................
1b6a0 00 00 00 00 db 01 00 00 22 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 47 32 00 00 ........"...................G2..
1b6c0 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 f5 18 00 00 00 00 db 01 00 00 25 00 ..............................%.
1b6e0 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 4a 32 00 00 00 00 00 00 01 00 00 00 00 00 ..................J2............
1b700 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 06 00 00 00 08 00 00 00 00 00 00 00 00 00 00 ..........5._...................
1b720 00 07 00 00 01 e0 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 55 04 01 00 00 00 00 00 f5 18 00 00 01 ................i..U............
1b8a0 df 00 00 01 e1 00 00 04 68 00 00 00 01 00 00 00 44 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 ........h.......D..dstr(px,.pw,.
1b8c0 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 4c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 ph,.PAD.*.2,.y,."Licensed.under.
1b8e0 47 50 4c 20 76 33 2e 30 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 35 81 f5 18 00 00 00 00 df 01 00 GPL.v3.0",.FG_COLOR);5..........
1b900 00 20 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 eb 32 00 00 00 00 00 00 01 00 00 ......................2.........
1b920 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 07 00 00 00 09 00 00 00 00 00 00 00 .............5._................
1b940 00 00 00 00 08 00 00 01 e2 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 ................................
1b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 56 04 01 00 00 00 00 00 f5 18 ...................i..V.........
1bac0 00 00 01 e1 00 00 01 e3 00 00 04 68 00 00 00 01 00 00 00 4d 20 20 64 73 74 72 28 70 78 2c 20 70 ...........h.......M..dstr(px,.p
1bae0 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 43 72 65 61 74 65 64 20 62 79 20 20 w,.ph,.PAD.*.2,.y,."Created.by..
1bb00 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 git.sr.ht/~coasteen/",.FG_COLOR)
1bb20 3b 35 81 f5 18 00 00 00 00 e1 01 00 00 20 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 ;5..............................
1bb40 00 43 33 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .C3......................5._....
1bb60 08 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 09 00 00 01 e2 00 00 00 20 00 00 00 00 ff ff ff ................................
1bb80 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
1bce0 9f c7 5b 04 01 00 00 00 00 00 f5 18 00 00 01 e1 00 00 01 e3 00 00 04 68 00 00 00 01 00 00 00 4d ..[....................h.......M
1bd00 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 ..dstr(px,.pw,.ph,.PAD.*.2,.y,."
1bd20 3b 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f ;reated.by..git.sr.ht/~coasteen/
1bd40 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 35 81 f5 18 00 00 00 00 e1 01 00 00 20 00 00 00 00 00 00 ",.FG_COLOR);5..................
1bd60 00 01 00 00 00 00 00 00 00 00 00 00 00 43 33 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 .............C3.................
1bd80 00 00 00 00 00 35 81 5f d0 00 00 00 09 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 01 .....5._........................
1bda0 e2 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 5c 04 01 00 00 00 00 00 f5 18 00 00 01 e1 00 00 01 e3 ...........i..\.................
1bf20 00 00 04 68 00 00 00 01 00 00 00 4c 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 ...h.......L..dstr(px,.pw,.ph,.P
1bf40 41 44 20 2a 20 32 2c 20 79 2c 20 22 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 AD.*.2,.y,."reated.by..git.sr.ht
1bf60 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 35 81 f5 18 00 00 00 00 /~coasteen/",.FG_COLOR);5.......
1bf80 e1 01 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 43 33 00 00 00 00 00 00 ........................C3......
1bfa0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0a 00 00 00 0c 00 00 00 00 ................5._.............
1bfc0 00 00 00 00 00 00 00 0b 00 00 01 e4 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 ................................
1bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 5d 04 01 00 00 00 07 ......................i..]......
1c140 00 f5 18 00 00 01 e3 00 00 01 e5 00 00 04 68 00 00 00 01 00 00 00 46 20 20 64 73 74 72 28 70 78 ..............h.......F..dstr(px
1c160 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 53 6f 75 72 63 65 3a 20 20 ,.pw,.ph,.PAD.*.2,.y,."Source:..
1c180 20 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 77 6c 65 64 22 2c 35 81 f5 ...git.sr.ht/~coasteen/wled",5..
1c1a0 18 00 00 00 00 e3 01 00 00 20 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 a4 33 00 ..............................3.
1c1c0 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0b 00 00 00 .....................5._........
1c1e0 0d 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 04 1c 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................................
1c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 69 04 ...........................i..i.
1c360 01 00 00 00 00 00 f5 18 00 00 04 1c 00 00 04 1f 00 00 04 69 00 00 00 01 00 00 00 02 20 20 f5 18 ...................i............
1c380 00 00 04 1c 00 00 04 1e 00 00 04 68 00 00 00 00 35 81 f5 18 00 00 00 00 1c 04 00 00 00 00 00 00 ...........h....5...............
1c3a0 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 11 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................w..............
1c3c0 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 1c 04 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ................................
1c3e0 00 00 00 00 00 00 11 77 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 .......w........................
1c400 00 00 00 00 1c 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 11 77 00 00 .............................w..
1c420 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 1d 04 00 00 00 00 ................................
1c440 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 12 77 00 00 00 00 00 00 02 00 00 00 00 00 ...................w............
1c460 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 ..........5._...................
1c480 00 0d 00 00 00 13 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 74 04 01 00 00 00 00 00 f5 18 00 00 00 ................i..t............
1c600 13 00 00 00 15 00 00 04 6b 00 00 00 01 00 00 00 00 f5 18 00 00 00 13 00 00 00 15 00 00 04 6a 00 ........k.....................j.
1c620 00 00 00 35 81 f5 18 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ...5............................
1c640 00 00 00 d5 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 ................................
1c660 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 d5 01 00 00 00 00 00 ................................
1c680 00 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 00 0f 00 00 00 .................5._............
1c6a0 00 00 00 00 00 00 00 00 0e 00 00 00 14 00 00 00 10 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
1c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f c7 78 04 01 00 00 00 .......................i..x.....
1c820 08 00 f5 18 00 00 00 10 00 00 04 1e 00 00 04 6b 00 00 04 0f 00 00 00 13 23 69 6e 63 6c 75 64 65 ...............k........#include
1c840 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 .<unistd.h>....#include.<wayland
1c860 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b 62 63 6f 6d 6d 6f -client.h>....#include.<xkbcommo
1c880 6e 2f 78 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 n/xkbcommon.h>....#include.<time
1c8a0 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 46 54 5f 46 52 45 45 54 59 50 45 5f 48 00 00 00 .h>....#include.FT_FREETYPE_H...
1c8c0 00 00 00 00 16 23 64 65 66 69 6e 65 20 4d 41 58 5f 54 45 58 54 20 36 35 35 33 36 00 00 00 10 23 .....#define.MAX_TEXT.65536....#
1c8e0 64 65 66 69 6e 65 20 42 41 52 5f 48 20 32 38 00 00 00 12 23 64 65 66 69 6e 65 20 42 54 4e 5f 50 define.BAR_H.28....#define.BTN_P
1c900 41 44 20 31 30 00 00 00 0d 23 64 65 66 69 6e 65 20 50 41 44 20 38 00 00 00 00 00 00 00 17 23 64 AD.10....#define.PAD.8........#d
1c920 65 66 69 6e 65 20 42 47 5f 43 4f 4c 4f 52 20 43 46 47 5f 42 47 00 00 00 17 23 64 65 66 69 6e 65 efine.BG_COLOR.CFG_BG....#define
1c940 20 46 47 5f 43 4f 4c 4f 52 20 43 46 47 5f 46 47 00 00 00 1c 23 64 65 66 69 6e 65 20 43 55 52 5f .FG_COLOR.CFG_FG....#define.CUR_
1c960 43 4f 4c 4f 52 20 43 46 47 5f 43 55 52 53 4f 52 00 00 00 1c 23 64 65 66 69 6e 65 20 53 45 4c 5f COLOR.CFG_CURSOR....#define.SEL_
1c980 43 4f 4c 4f 52 20 43 46 47 5f 53 45 4c 5f 42 47 00 00 00 19 23 64 65 66 69 6e 65 20 53 45 4c 5f COLOR.CFG_SEL_BG....#define.SEL_
1c9a0 46 47 20 43 46 47 5f 53 45 4c 5f 46 47 00 00 00 19 23 64 65 66 69 6e 65 20 42 41 52 5f 42 47 20 FG.CFG_SEL_FG....#define.BAR_BG.
1c9c0 43 46 47 5f 42 41 52 5f 42 47 00 00 00 19 23 64 65 66 69 6e 65 20 42 41 52 5f 46 47 20 43 46 47 CFG_BAR_BG....#define.BAR_FG.CFG
1c9e0 5f 42 41 52 5f 46 47 00 00 00 1b 23 64 65 66 69 6e 65 20 42 54 4e 5f 48 4f 56 20 43 46 47 5f 42 _BAR_FG....#define.BTN_HOV.CFG_B
1ca00 54 4e 5f 48 4f 56 00 00 00 1b 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 42 47 20 43 46 47 5f 44 52 TN_HOV....#define.DROP_BG.CFG_DR
1ca20 4f 50 5f 42 47 00 00 00 1b 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 46 47 20 43 46 47 5f 44 52 4f OP_BG....#define.DROP_FG.CFG_DRO
1ca40 50 5f 46 47 00 00 00 1d 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 48 4f 56 20 43 46 47 5f 44 52 4f P_FG....#define.DROP_HOV.CFG_DRO
1ca60 50 5f 48 4f 56 00 00 00 23 23 64 65 66 69 6e 65 20 44 52 4f 50 5f 48 4f 56 5f 46 47 20 43 46 47 P_HOV...##define.DROP_HOV_FG.CFG
1ca80 5f 44 52 4f 50 5f 48 4f 56 5f 46 47 00 00 00 19 23 64 65 66 69 6e 65 20 53 45 50 5f 43 4f 4c 4f _DROP_HOV_FG....#define.SEP_COLO
1caa0 52 20 43 46 47 5f 53 45 50 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 74 65 78 R.CFG_SEP.......!static.char.tex
1cac0 74 5b 4d 41 58 5f 54 45 58 54 5d 20 3d 20 7b 30 7d 3b 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 t[MAX_TEXT].=.{0};....static.int
1cae0 20 74 6c 65 6e 20 3d 20 30 3b 00 00 00 16 73 74 61 74 69 63 20 69 6e 74 20 63 75 72 73 6f 72 20 .tlen.=.0;....static.int.cursor.
1cb00 3d 20 30 3b 00 00 00 1b 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 =.0;....static.int.sel_anchor.=.
1cb20 2d 31 3b 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 66 69 6c 65 70 61 74 68 5b 34 30 39 36 -1;...!static.char.filepath[4096
1cb40 5d 20 3d 20 7b 30 7d 3b 00 00 00 1a 73 74 61 74 69 63 20 62 6f 6f 6c 20 64 69 72 74 79 20 3d 20 ].=.{0};....static.bool.dirty.=.
1cb60 66 61 6c 73 65 3b 00 00 00 00 00 00 00 19 73 74 61 74 69 63 20 46 54 5f 4c 69 62 72 61 72 79 20 false;........static.FT_Library.
1cb80 66 74 5f 6c 69 62 3b 00 00 00 17 73 74 61 74 69 63 20 46 54 5f 46 61 63 65 20 66 74 5f 66 61 63 ft_lib;....static.FT_Face.ft_fac
1cba0 65 3b 00 00 00 12 73 74 61 74 69 63 20 69 6e 74 20 63 65 6c 6c 5f 77 3b 00 00 00 12 73 74 61 74 e;....static.int.cell_w;....stat
1cbc0 69 63 20 69 6e 74 20 63 65 6c 6c 5f 68 3b 00 00 00 14 73 74 61 74 69 63 20 69 6e 74 20 61 73 63 ic.int.cell_h;....static.int.asc
1cbe0 65 6e 64 65 72 3b 00 00 00 1f 73 74 61 74 69 63 20 69 6e 74 20 66 6f 6e 74 5f 70 74 20 3d 20 46 ender;....static.int.font_pt.=.F
1cc00 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 00 00 00 00 45 74 79 70 65 64 65 66 20 65 6e 75 6d 20 7b 20 ONT_SIZE;.......Etypedef.enum.{.
1cc20 4d 45 4e 55 5f 4e 4f 4e 45 20 3d 20 2d 31 2c 20 4d 45 4e 55 5f 46 49 4c 45 20 3d 20 30 2c 20 4d MENU_NONE.=.-1,.MENU_FILE.=.0,.M
1cc40 45 4e 55 5f 49 4e 46 4f 20 3d 20 31 20 7d 20 4d 65 6e 75 49 64 3b 00 00 00 00 00 00 00 10 74 79 ENU_INFO.=.1.}.MenuId;........ty
1cc60 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 14 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a pedef.struct.{......const.char.*
1cc80 6c 61 62 65 6c 3b 00 00 00 11 20 20 62 6f 6f 6c 20 73 65 70 5f 61 66 74 65 72 3b 00 00 00 0b 7d label;......bool.sep_after;....}
1cca0 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4d .MenuItem;.......&static.const.M
1ccc0 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 74 65 6d 73 5b 5d 20 3d 20 7b 00 00 00 41 20 20 20 20 enuItem.file_items[].=.{...A....
1cce0 7b 22 4e 65 77 22 2c 20 66 61 6c 73 65 7d 2c 20 20 20 20 7b 22 4f 70 65 6e 22 2c 20 66 61 6c 73 {"New",.false},....{"Open",.fals
1cd00 65 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 22 53 61 76 65 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 e},..........{"Save",.false},...
1cd20 41 20 20 20 20 7b 22 53 61 76 65 20 41 73 22 2c 20 74 72 75 65 7d 2c 20 7b 22 53 61 76 65 20 61 A....{"Save.As",.true},.{"Save.a
1cd40 6e 64 20 51 75 69 74 22 2c 20 66 61 6c 73 65 7d 2c 20 7b 22 51 75 69 74 22 2c 20 66 61 6c 73 65 nd.Quit",.false},.{"Quit",.false
1cd60 7d 2c 00 00 00 02 7d 3b 00 00 00 26 73 74 61 74 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 },....};...&static.const.MenuIte
1cd80 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 3d 20 7b 00 00 00 15 20 20 20 20 7b 22 41 62 6f 75 m.info_items[].=.{........{"Abou
1cda0 74 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 02 7d 3b 00 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 46 t",.false},....};...>#define.N_F
1cdc0 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 66 69 6c 65 5f 69 74 65 6d 73 20 2f 20 73 ILE.((int)(sizeof.file_items./.s
1cde0 69 7a 65 6f 66 20 2a 66 69 6c 65 5f 69 74 65 6d 73 29 29 00 00 00 3e 23 64 65 66 69 6e 65 20 4e izeof.*file_items))...>#define.N
1ce00 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 69 6e 66 6f 5f 69 74 65 6d 73 20 2f _INFO.((int)(sizeof.info_items./
1ce20 20 73 69 7a 65 6f 66 20 2a 69 6e 66 6f 5f 69 74 65 6d 73 29 29 00 00 00 00 00 00 00 0e 73 74 72 .sizeof.*info_items))........str
1ce40 75 63 74 20 70 6f 70 75 70 20 7b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 uct.popup.{......struct.wl_surfa
1ce60 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 ce.*ws;......struct.xdg_surface.
1ce80 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 *xs;......struct.xdg_toplevel.*x
1cea0 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f t;......void.*pixels;......size_
1cec0 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 t.pixels_size;......struct.wl_bu
1cee0 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 12 20 20 62 ffer.*buf;......int.w,.h;......b
1cf00 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0c 20 20 62 6f 6f 6c 20 6f 70 65 6e 3b 00 ool.configured;......bool.open;.
1cf20 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 ...};........struct.app.{......s
1cf40 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 truct.wl_display.*d;......struct
1cf60 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 .wl_registry.*reg;......struct.w
1cf80 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 l_compositor.*comp;......struct.
1cfa0 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f wl_shm.*shm;......struct.xdg_wm_
1cfc0 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 base.*wm;......struct.wl_surface
1cfe0 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 .*ws;......struct.xdg_surface.*x
1d000 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b s;......struct.xdg_toplevel.*xt;
1d020 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 3b 00 00 00 1f 20 ......struct.wl_seat.*seat;.....
1d040 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 65 79 62 6f 61 72 64 3b 00 00 .struct.wl_keyboard.*keyboard;..
1d060 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 6f 69 6e 74 65 72 3b 00 ....struct.wl_pointer.*pointer;.
1d080 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 ..%..struct.wl_data_device_manag
1d0a0 65 72 20 2a 64 64 6d 3b 00 00 00 1c 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 er.*ddm;......struct.wl_data_dev
1d0c0 69 63 65 20 2a 64 64 3b 00 00 00 1c 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 ice.*dd;......struct.wl_data_sou
1d0e0 72 63 65 20 2a 64 73 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 15 20 rce.*ds;......void.*pixels;.....
1d100 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 .size_t.pixels_size;......struct
1d120 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 21 20 20 69 6e 74 20 77 2c 20 68 2c 20 .wl_buffer.*buf;...!..int.w,.h,.
1d140 70 65 6e 64 69 6e 67 5f 77 2c 20 70 65 6e 64 69 6e 67 5f 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 pending_w,.pending_h;......bool.
1d160 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 78 6b 62 5f 63 6f 6e 74 configured;......struct.xkb_cont
1d180 65 78 74 20 2a 78 6b 62 5f 63 74 78 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 78 6b 62 5f 6b 65 ext.*xkb_ctx;......struct.xkb_ke
1d1a0 79 6d 61 70 20 2a 78 6b 62 5f 6b 65 79 6d 61 70 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 78 6b ymap.*xkb_keymap;......struct.xk
1d1c0 62 5f 73 74 61 74 65 20 2a 78 6b 62 5f 73 74 61 74 65 3b 00 00 00 10 20 20 69 6e 74 20 72 65 70 b_state.*xkb_state;......int.rep
1d1e0 65 61 74 5f 66 64 3b 00 00 00 16 20 20 75 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 6b 65 79 eat_fd;......uint32_t.repeat_key
1d200 3b 00 00 00 16 20 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 72 61 74 65 3b 00 00 00 17 20 ;......int32_t.repeat_rate;.....
1d220 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 64 65 6c 61 79 3b 00 00 00 1b 20 20 63 68 61 72 .int32_t.repeat_delay;......char
1d240 20 63 6c 69 70 62 6f 61 72 64 5b 4d 41 58 5f 54 45 58 54 5d 3b 00 00 00 14 20 20 69 6e 74 20 63 .clipboard[MAX_TEXT];......int.c
1d260 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3b 00 00 00 17 20 20 75 69 6e 74 33 32 5f 74 20 6c 61 73 74 lipboard_len;......uint32_t.last
1d280 5f 73 65 72 69 61 6c 3b 00 00 00 17 20 20 69 6e 74 20 6d 6f 75 73 65 5f 78 2c 20 6d 6f 75 73 65 _serial;......int.mouse_x,.mouse
1d2a0 5f 79 3b 00 00 00 13 20 20 4d 65 6e 75 49 64 20 6f 70 65 6e 5f 6d 65 6e 75 3b 00 00 00 13 20 20 _y;......MenuId.open_menu;......
1d2c0 69 6e 74 20 68 6f 76 65 72 65 64 5f 69 74 65 6d 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 70 6f int.hovered_item;......struct.po
1d2e0 70 75 70 20 61 62 6f 75 74 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 pup.about;....};.......'static.v
1d300 6f 69 64 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 76 6f 69 64 29 20 7b 00 oid.update_font_metrics(void).{.
1d320 00 00 35 20 20 46 54 5f 53 65 74 5f 43 68 61 72 5f 53 69 7a 65 28 66 74 5f 66 61 63 65 2c 20 30 ..5..FT_Set_Char_Size(ft_face,.0
1d340 2c 20 66 6f 6e 74 5f 70 74 20 2a 20 36 34 2c 20 39 36 2c 20 39 36 29 3b 00 00 00 33 20 20 46 54 ,.font_pt.*.64,.96,.96);...3..FT
1d360 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 20 27 30 27 2c 20 46 54 5f 4c 4f 41 44 _Load_Char(ft_face,.'0',.FT_LOAD
1d380 5f 41 44 56 41 4e 43 45 5f 4f 4e 4c 59 29 3b 00 00 00 38 20 20 63 65 6c 6c 5f 77 20 3d 20 28 69 _ADVANCE_ONLY);...8..cell_w.=.(i
1d3a0 6e 74 29 28 28 66 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 2d 3e 61 64 76 61 6e 63 65 2e 78 20 2b nt)((ft_face->glyph->advance.x.+
1d3c0 20 33 32 29 20 3e 3e 20 36 29 3b 00 00 00 39 20 20 61 73 63 65 6e 64 65 72 20 3d 20 28 69 6e 74 .32).>>.6);...9..ascender.=.(int
1d3e0 29 28 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 61 73 63 65 6e 64 65 )(ft_face->size->metrics.ascende
1d400 72 20 3e 3e 20 36 29 3b 00 00 00 42 20 20 69 6e 74 20 64 65 73 63 20 3d 20 28 69 6e 74 29 28 28 r.>>.6);...B..int.desc.=.(int)((
1d420 2d 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 64 65 73 63 65 6e 64 65 -ft_face->size->metrics.descende
1d440 72 20 2b 20 36 33 29 20 3e 3e 20 36 29 3b 00 00 00 1b 20 20 63 65 6c 6c 5f 68 20 3d 20 61 73 63 r.+.63).>>.6);......cell_h.=.asc
1d460 65 6e 64 65 72 20 2b 20 64 65 73 63 3b 00 00 00 11 20 20 69 66 20 28 63 65 6c 6c 5f 77 20 3c 20 ender.+.desc;......if.(cell_w.<.
1d480 31 29 00 00 00 0f 20 20 20 20 63 65 6c 6c 5f 77 20 3d 20 31 3b 00 00 00 11 20 20 69 66 20 28 63 1)........cell_w.=.1;......if.(c
1d4a0 65 6c 6c 5f 68 20 3c 20 31 29 00 00 00 0f 20 20 20 20 63 65 6c 6c 5f 68 20 3d 20 31 3b 00 00 00 ell_h.<.1)........cell_h.=.1;...
1d4c0 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 62 6f 6f 6c 20 6c 6f 61 64 5f 66 6f 6e 74 28 .}........static.bool.load_font(
1d4e0 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 49 6e 69 74 28 29 3b 00 00 00 35 20 20 46 63 50 61 void).{......FcInit();...5..FcPa
1d500 74 74 65 72 6e 20 2a 70 61 74 20 3d 20 46 63 4e 61 6d 65 50 61 72 73 65 28 28 46 63 43 68 61 72 ttern.*pat.=.FcNameParse((FcChar
1d520 38 20 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 30 20 20 46 63 43 6f 6e 66 69 67 53 75 62 8.*)FONT_NAME);...0..FcConfigSub
1d540 73 74 69 74 75 74 65 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 46 63 4d 61 74 63 68 50 61 74 74 65 72 stitute(NULL,.pat,.FcMatchPatter
1d560 6e 29 3b 00 00 00 1b 20 20 46 63 44 65 66 61 75 6c 74 53 75 62 73 74 69 74 75 74 65 28 70 61 74 n);......FcDefaultSubstitute(pat
1d580 29 3b 00 00 00 0f 20 20 46 63 52 65 73 75 6c 74 20 72 65 73 3b 00 00 00 32 20 20 46 63 50 61 74 );......FcResult.res;...2..FcPat
1d5a0 74 65 72 6e 20 2a 6d 61 74 63 68 20 3d 20 46 63 46 6f 6e 74 4d 61 74 63 68 28 4e 55 4c 4c 2c 20 tern.*match.=.FcFontMatch(NULL,.
1d5c0 70 61 74 2c 20 26 72 65 73 29 3b 00 00 00 18 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f pat,.&res);......FcPatternDestro
1d5e0 79 28 70 61 74 29 3b 00 00 00 0d 20 20 69 66 20 28 21 6d 61 74 63 68 29 00 00 00 11 20 20 20 20 y(pat);......if.(!match)........
1d600 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 17 20 20 46 63 43 68 61 72 38 20 2a 70 61 74 68 return.false;......FcChar8.*path
1d620 20 3d 20 4e 55 4c 4c 3b 00 00 00 46 20 20 69 66 20 28 46 63 50 61 74 74 65 72 6e 47 65 74 53 74 .=.NULL;...F..if.(FcPatternGetSt
1d640 72 69 6e 67 28 6d 61 74 63 68 2c 20 46 43 5f 46 49 4c 45 2c 20 30 2c 20 26 70 61 74 68 29 20 21 ring(match,.FC_FILE,.0,.&path).!
1d660 3d 20 46 63 52 65 73 75 6c 74 4d 61 74 63 68 29 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 =.FcResultMatch).{........FcPatt
1d680 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 72 6e ernDestroy(match);........return
1d6a0 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 22 20 20 69 66 20 28 46 54 5f 49 6e 69 74 5f .false;......}..."..if.(FT_Init_
1d6c0 46 72 65 65 54 79 70 65 28 26 66 74 5f 6c 69 62 29 29 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 FreeType(&ft_lib)).{........FcPa
1d6e0 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 tternDestroy(match);........retu
1d700 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 3d 20 20 69 66 20 28 46 54 5f 4e 65 77 rn.false;......}...=..if.(FT_New
1d720 5f 46 61 63 65 28 66 74 5f 6c 69 62 2c 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 29 70 61 74 68 _Face(ft_lib,.(const.char.*)path
1d740 2c 20 30 2c 20 26 66 74 5f 66 61 63 65 29 29 20 7b 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 65 ,.0,.&ft_face)).{........FcPatte
1d760 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 rnDestroy(match);........return.
1d780 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 false;......}......FcPatternDest
1d7a0 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 roy(match);......update_font_met
1d7c0 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 00 00 01 7d 00 00 rics();......return.true;....}..
1d7e0 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 70 73 65 74 28 76 6f 69 64 20 2a 70 78 2c .....Fstatic.void.pset(void.*px,
1d800 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 .int.pw,.int.ph,.int.x,.int.y,.u
1d820 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2b 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 int32_t.c).{...+..if.(x.>=.0.&&.
1d840 79 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 70 77 20 26 26 20 79 20 3c 20 70 68 29 00 00 00 25 20 y.>=.0.&&.x.<.pw.&&.y.<.ph)...%.
1d860 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 2a 20 70 77 20 2b 20 78 5d 20 ...((uint32_t.*)px)[y.*.pw.+.x].
1d880 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 66 72 65 =.c;....}.......Gstatic.void.fre
1d8a0 63 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 ct(void.*px,.int.pw,.int.ph,.int
1d8c0 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 00 00 00 1f 20 20 20 20 .x,.int.y,.int.w,.int.h,........
1d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 20 20 ..............uint32_t.c).{.....
1d900 20 66 6f 72 20 28 69 6e 74 20 64 79 20 3d 20 30 3b 20 64 79 20 3c 20 68 3b 20 64 79 2b 2b 29 00 .for.(int.dy.=.0;.dy.<.h;.dy++).
1d920 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 20 64 78 20 3d 20 30 3b 20 64 78 20 3c 20 77 3b 20 .."....for.(int.dx.=.0;.dx.<.w;.
1d940 64 78 2b 2b 29 00 00 00 2a 20 20 20 20 20 20 70 73 65 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 dx++)...*......pset(px,.pw,.ph,.
1d960 78 20 2b 20 64 78 2c 20 79 20 2b 20 64 79 2c 20 63 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 45 x.+.dx,.y.+.dy,.c);....}.......E
1d980 73 74 61 74 69 63 20 76 6f 69 64 20 62 70 69 78 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 static.void.bpix(void.*px,.int.p
1d9a0 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f w,.int.ph,.int.x,.int.y,.uint32_
1d9c0 74 20 66 67 2c 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 38 5f t.fg,.....................uint8_
1d9e0 74 20 61 29 20 7b 00 00 00 2b 20 20 69 66 20 28 78 20 3c 20 30 20 7c 7c 20 79 20 3c 20 30 20 7c t.a).{...+..if.(x.<.0.||.y.<.0.|
1da00 7c 20 78 20 3e 3d 20 70 77 20 7c 7c 20 79 20 3e 3d 20 70 68 29 00 00 00 0b 20 20 20 20 72 65 74 |.x.>=.pw.||.y.>=.ph)........ret
1da20 75 72 6e 3b 00 00 00 30 20 20 75 69 6e 74 33 32 5f 74 20 2a 64 73 74 20 3d 20 26 28 28 75 69 6e urn;...0..uint32_t.*dst.=.&((uin
1da40 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 2a 20 70 77 20 2b 20 78 5d 3b 00 00 00 15 20 20 75 69 t32_t.*)px)[y.*.pw.+.x];......ui
1da60 6e 74 33 32 5f 74 20 62 67 20 3d 20 2a 64 73 74 3b 00 00 00 4d 20 20 75 69 6e 74 33 32 5f 74 20 nt32_t.bg.=.*dst;...M..uint32_t.
1da80 72 20 3d 20 28 28 66 67 20 3e 3e 20 31 36 20 26 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 67 r.=.((fg.>>.16.&.0xFF).*.a.+.(bg
1daa0 20 3e 3e 20 31 36 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 .>>.16.&.0xFF).*.(255.-.a))./.25
1dac0 35 3b 00 00 00 4b 20 20 75 69 6e 74 33 32 5f 74 20 67 20 3d 20 28 28 66 67 20 3e 3e 20 38 20 26 5;...K..uint32_t.g.=.((fg.>>.8.&
1dae0 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 67 20 3e 3e 20 38 20 26 20 30 78 46 46 29 20 2a 20 .0xFF).*.a.+.(bg.>>.8.&.0xFF).*.
1db00 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 35 3b 00 00 00 41 20 20 75 69 6e 74 33 32 5f 74 20 (255.-.a))./.255;...A..uint32_t.
1db20 62 20 3d 20 28 28 66 67 20 26 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 67 20 26 20 30 78 46 b.=.((fg.&.0xFF).*.a.+.(bg.&.0xF
1db40 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 35 3b 00 00 00 2f 20 20 2a 64 73 74 F).*.(255.-.a))./.255;.../..*dst
1db60 20 3d 20 30 78 46 46 30 30 30 30 30 30 20 7c 20 28 72 20 3c 3c 20 31 36 29 20 7c 20 28 67 20 3c .=.0xFF000000.|.(r.<<.16).|.(g.<
1db80 3c 20 38 29 20 7c 20 62 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 <.8).|.b;....}.......Istatic.voi
1dba0 64 20 64 67 6c 79 70 68 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 d.dglyph(void.*px,.int.pw,.int.p
1dbc0 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 70 2c 00 h,.int.cx,.int.cy,.uint32_t.cp,.
1dbe0 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 ..$...................uint32_t.c
1dc00 6f 6c 6f 72 29 20 7b 00 00 00 2c 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 olor).{...,..FT_Load_Char(ft_fac
1dc20 65 2c 20 63 70 2c 20 46 54 5f 4c 4f 41 44 5f 52 45 4e 44 45 52 29 3b 00 00 00 25 20 20 46 54 5f e,.cp,.FT_LOAD_RENDER);...%..FT_
1dc40 47 6c 79 70 68 53 6c 6f 74 20 73 6c 6f 74 20 3d 20 66 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 3b GlyphSlot.slot.=.ft_face->glyph;
1dc60 00 00 00 20 20 20 46 54 5f 42 69 74 6d 61 70 20 2a 62 6d 20 3d 20 26 73 6c 6f 74 2d 3e 62 69 74 ......FT_Bitmap.*bm.=.&slot->bit
1dc80 6d 61 70 3b 00 00 00 1d 20 20 69 6e 74 20 6f 78 20 3d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f map;......int.ox.=.slot->bitmap_
1dca0 6c 65 66 74 3b 00 00 00 2c 20 20 69 6e 74 20 6f 79 20 3d 20 63 79 20 2b 20 61 73 63 65 6e 64 65 left;...,..int.oy.=.cy.+.ascende
1dcc0 72 20 2d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 74 6f 70 3b 00 00 00 2f 20 20 66 6f 72 20 28 r.-.slot->bitmap_top;.../..for.(
1dce0 69 6e 74 20 72 6f 77 20 3d 20 30 3b 20 72 6f 77 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 72 6f 77 73 int.row.=.0;.row.<.(int)bm->rows
1dd00 3b 20 72 6f 77 2b 2b 29 00 00 00 34 20 20 20 20 66 6f 72 20 28 69 6e 74 20 63 6f 6c 20 3d 20 30 ;.row++)...4....for.(int.col.=.0
1dd20 3b 20 63 6f 6c 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 77 69 64 74 68 3b 20 63 6f 6c 2b 2b 29 20 7b ;.col.<.(int)bm->width;.col++).{
1dd40 00 00 00 35 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 76 20 3d 20 62 6d 2d 3e 62 75 66 66 65 ...5......uint8_t.av.=.bm->buffe
1dd60 72 5b 72 6f 77 20 2a 20 62 6d 2d 3e 70 69 74 63 68 20 2b 20 63 6f 6c 5d 3b 00 00 00 0d 20 20 20 r[row.*.bm->pitch.+.col];.......
1dd80 20 20 20 69 66 20 28 61 76 29 00 00 00 3d 20 20 20 20 20 20 20 20 62 70 69 78 28 70 78 2c 20 70 ...if.(av)...=........bpix(px,.p
1dda0 77 2c 20 70 68 2c 20 63 78 20 2b 20 6f 78 20 2b 20 63 6f 6c 2c 20 6f 79 20 2b 20 72 6f 77 2c 20 w,.ph,.cx.+.ox.+.col,.oy.+.row,.
1ddc0 63 6f 6c 6f 72 2c 20 61 76 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 color,.av);........}....}.......
1dde0 47 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 74 72 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 Gstatic.void.dstr(void.*px,.int.
1de00 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 63 6f 6e 73 74 20 pw,.int.ph,.int.x,.int.y,.const.
1de20 63 68 61 72 20 2a 73 2c 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e char.*s,...".................uin
1de40 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 66 6f 72 20 28 63 6f 6e 73 74 20 63 t32_t.color).{.../..for.(const.c
1de60 68 61 72 20 2a 70 20 3d 20 73 3b 20 2a 70 3b 20 70 2b 2b 2c 20 78 20 2b 3d 20 63 65 6c 6c 5f 77 har.*p.=.s;.*p;.p++,.x.+=.cell_w
1de80 29 00 00 00 37 20 20 20 20 64 67 6c 79 70 68 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 )...7....dglyph(px,.pw,.ph,.x,.y
1dea0 2c 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 2a 70 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 01 ,.(unsigned.char)*p,.color);....
1dec0 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 69 6e 74 20 73 70 77 28 63 6f 6e 73 74 20 63 68 }.......Astatic.int.spw(const.ch
1dee0 61 72 20 2a 73 29 20 7b 20 72 65 74 75 72 6e 20 28 69 6e 74 29 73 74 72 6c 65 6e 28 73 29 20 2a ar.*s).{.return.(int)strlen(s).*
1df00 20 63 65 6c 6c 5f 77 3b 20 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d .cell_w;.}.......Kstatic.void.*m
1df20 61 6b 65 5f 73 68 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 69 6e 74 20 77 2c 20 69 6e ake_shm(struct.app.*a,.int.w,.in
1df40 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 2a 6f 62 75 66 2c 00 00 00 t.h,.struct.wl_buffer.**obuf,...
1df60 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 7a 65 5f 74 20 2a 6f $......................size_t.*o
1df80 73 7a 29 20 7b 00 00 00 20 20 20 73 69 7a 65 5f 74 20 73 7a 20 3d 20 28 73 69 7a 65 5f 74 29 77 sz).{......size_t.sz.=.(size_t)w
1dfa0 20 2a 20 68 20 2a 20 34 3b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f .*.h.*.4;...#..char.t[].=."/tmp/
1dfc0 77 61 79 6c 61 6e 64 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d wayland-XXXXXX";......int.fd.=.m
1dfe0 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 28 20 20 kstemp(t);......unlink(t);...(..
1e000 69 66 20 28 66 64 20 3c 20 30 20 7c 7c 20 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 7a 29 20 if.(fd.<.0.||.ftruncate(fd,.sz).
1e020 3c 20 30 29 20 7b 00 00 00 12 20 20 20 20 70 65 72 72 6f 72 28 22 73 68 6d 22 29 3b 00 00 00 0c <.0).{........perror("shm");....
1e040 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 47 20 20 76 6f 69 64 20 2a 70 ....exit(1);......}...G..void.*p
1e060 78 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 7a 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 x.=.mmap(NULL,.sz,.PROT_READ.|.P
1e080 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 ROT_WRITE,.MAP_SHARED,.fd,.0);..
1e0a0 00 19 20 20 69 66 20 28 70 78 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 ....if.(px.==.MAP_FAILED).{.....
1e0c0 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 ...perror("mmap");........exit(1
1e0e0 29 3b 00 00 00 03 20 20 7d 00 00 00 40 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f );......}...@..struct.wl_shm_poo
1e100 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e l.*pool.=.wl_shm_create_pool(a->
1e120 73 68 6d 2c 20 66 64 2c 20 73 7a 29 3b 00 00 00 09 20 20 2a 6f 62 75 66 20 3d 00 00 00 4e 20 20 shm,.fd,.sz);......*obuf.=...N..
1e140 20 20 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f ....wl_shm_pool_create_buffer(po
1e160 6f 6c 2c 20 30 2c 20 77 2c 20 68 2c 20 77 20 2a 20 34 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 ol,.0,.w,.h,.w.*.4,.WL_SHM_FORMA
1e180 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 T_ARGB8888);......wl_shm_pool_de
1e1a0 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0a stroy(pool);......close(fd);....
1e1c0 20 20 69 66 20 28 6f 73 7a 29 00 00 00 0e 20 20 20 20 2a 6f 73 7a 20 3d 20 73 7a 3b 00 00 00 0c ..if.(osz)........*osz.=.sz;....
1e1e0 20 20 72 65 74 75 72 6e 20 70 78 3b 00 00 00 01 7d 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 ..return.px;....}.......8static.
1e200 69 6e 74 20 62 61 72 5f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 20 72 65 74 75 72 int.bar_y(struct.app.*a).{.retur
1e220 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 39 73 74 61 74 69 63 20 69 6e 74 20 n.a->h.-.BAR_H;.}...9static.int.
1e240 74 65 78 74 5f 68 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 20 72 65 74 75 72 6e 20 61 text_h(struct.app.*a).{.return.a
1e260 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 00 00 00 00 19 73 74 61 74 69 63 20 69 6e 74 ->h.-.BAR_H;.}........static.int
1e280 20 62 74 6e 5f 78 28 69 6e 74 20 69 29 20 7b 00 00 00 0e 20 20 69 6e 74 20 78 20 3d 20 50 41 44 .btn_x(int.i).{......int.x.=.PAD
1e2a0 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 ;...(..const.char.*lbls[].=.{"Fi
1e2c0 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 00 1d 20 20 66 6f 72 20 28 69 6e 74 20 6a 20 3d 20 le",."Info"};......for.(int.j.=.
1e2e0 30 3b 20 6a 20 3c 20 69 3b 20 6a 2b 2b 29 00 00 00 24 20 20 20 20 78 20 2b 3d 20 73 70 77 28 6c 0;.j.<.i;.j++)...$....x.+=.spw(l
1e300 62 6c 73 5b 6a 5d 29 20 2b 20 42 54 4e 5f 50 41 44 20 2a 20 32 3b 00 00 00 0b 20 20 72 65 74 75 bls[j]).+.BTN_PAD.*.2;......retu
1e320 72 6e 20 78 3b 00 00 00 01 7d 00 00 00 4f 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 77 28 69 rn.x;....}...Ostatic.int.btn_w(i
1e340 6e 74 20 69 29 20 7b 20 72 65 74 75 72 6e 20 73 70 77 28 69 20 3d 3d 20 30 20 3f 20 22 46 69 6c nt.i).{.return.spw(i.==.0.?."Fil
1e360 65 22 20 3a 20 22 49 6e 66 6f 22 29 20 2b 20 42 54 4e 5f 50 41 44 20 2a 20 32 3b 20 7d 00 00 00 e".:."Info").+.BTN_PAD.*.2;.}...
1e380 00 00 00 00 2b 73 74 61 74 69 63 20 69 6e 74 20 64 69 68 28 76 6f 69 64 29 20 7b 20 72 65 74 75 ....+static.int.dih(void).{.retu
1e3a0 72 6e 20 63 65 6c 6c 5f 68 20 2b 20 38 3b 20 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 69 rn.cell_h.+.8;.}.......#static.i
1e3c0 6e 74 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 2d 20 nt.drop_total_h(MenuId.m).{...-.
1e3e0 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 .int.n.=.(m.==.MENU_FILE).?.N_FI
1e400 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d LE.:.N_INFO;...E..const.MenuItem
1e420 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c .*items.=.(m.==.MENU_FILE).?.fil
1e440 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 18 20 20 69 6e 74 20 68 e_items.:.info_items;......int.h
1e460 20 3d 20 6e 20 2a 20 64 69 68 28 29 20 2b 20 34 3b 00 00 00 1d 20 20 66 6f 72 20 28 69 6e 74 20 .=.n.*.dih().+.4;......for.(int.
1e480 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 00 00 00 1b 20 20 20 20 69 66 20 28 69 74 i.=.0;.i.<.n;.i++)........if.(it
1e4a0 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 00 00 00 0d 20 20 20 20 20 20 68 20 2b 3d 20 ems[i].sep_after)..........h.+=.
1e4c0 34 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 4;......return.h;....}........st
1e4e0 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 77 28 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 10 20 atic.int.drop_w(MenuId.m).{.....
1e500 20 69 6e 74 20 6d 61 78 77 20 3d 20 38 30 3b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 .int.maxw.=.80;...-..int.n.=.(m.
1e520 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b ==.MENU_FILE).?.N_FILE.:.N_INFO;
1e540 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d ...E..const.MenuItem.*items.=.(m
1e560 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e .==.MENU_FILE).?.file_items.:.in
1e580 66 6f 5f 69 74 65 6d 73 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 fo_items;......for.(int.i.=.0;.i
1e5a0 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 69 6e 74 20 77 20 3d 20 73 70 77 28 .<.n;.i++).{........int.w.=.spw(
1e5c0 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 29 20 2b 20 42 54 4e 5f 50 41 44 20 2a 20 32 3b 00 00 items[i].label).+.BTN_PAD.*.2;..
1e5e0 00 11 20 20 20 20 69 66 20 28 77 20 3e 20 6d 61 78 77 29 00 00 00 0f 20 20 20 20 20 20 6d 61 78 ......if.(w.>.maxw)..........max
1e600 77 20 3d 20 77 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 72 65 74 75 72 6e 20 6d 61 78 77 3b 00 w.=.w;......}......return.maxw;.
1e620 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 69 6e 74 20 69 74 65 6d 5f 61 74 28 73 ...}.......5static.int.item_at(s
1e640 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 6d 79 29 20 truct.app.*a,.MenuId.m,.int.my).
1e660 7b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 3b 00 00 00 2d 20 20 69 {......int.by.=.bar_y(a);...-..i
1e680 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 nt.n.=.(m.==.MENU_FILE).?.N_FILE
1e6a0 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a .:.N_INFO;...E..const.MenuItem.*
1e6c0 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f items.=.(m.==.MENU_FILE).?.file_
1e6e0 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 24 20 20 69 6e 74 20 69 79 20 items.:.info_items;...$..int.iy.
1e700 3d 20 62 79 20 2d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 20 2b 20 34 3b 00 00 00 1f 20 =.by.-.drop_total_h(m).+.4;.....
1e720 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 .for.(int.i.=.0;.i.<.n;.i++).{..
1e740 00 24 20 20 20 20 69 66 20 28 6d 79 20 3e 3d 20 69 79 20 26 26 20 6d 79 20 3c 20 69 79 20 2b 20 .$....if.(my.>=.iy.&&.my.<.iy.+.
1e760 64 69 68 28 29 29 00 00 00 0f 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 3b 00 00 00 10 20 20 20 dih())..........return.i;.......
1e780 20 69 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 00 1b 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 .iy.+=.dih();........if.(items[i
1e7a0 5d 2e 73 65 70 5f 61 66 74 65 72 29 00 00 00 0e 20 20 20 20 20 20 69 79 20 2b 3d 20 34 3b 00 00 ].sep_after)..........iy.+=.4;..
1e7c0 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 ....}......return.-1;....}......
1e7e0 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 .#static.void.do_save(struct.app
1e800 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 .*a);..."static.void.do_new(stru
1e820 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 ct.app.*a);...#static.void.do_op
1e840 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 en(struct.app.*a);...&static.voi
1e860 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 d.open_about(struct.app.*a);..."
1e880 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 static.void.redraw(struct.app.*a
1e8a0 29 3b 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6e 65 77 28 73 74 72 );.......#static.void.do_new(str
1e8c0 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1f 20 20 6d 65 6d 73 65 74 28 74 65 78 74 2c 20 uct.app.*a).{......memset(text,.
1e8e0 30 2c 20 73 69 7a 65 6f 66 20 74 65 78 74 29 3b 00 00 00 0b 20 20 74 6c 65 6e 20 3d 20 30 3b 00 0,.sizeof.text);......tlen.=.0;.
1e900 00 00 0d 20 20 63 75 72 73 6f 72 20 3d 20 30 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 .....cursor.=.0;......sel_anchor
1e920 20 3d 20 2d 31 3b 00 00 00 15 20 20 66 69 6c 65 70 61 74 68 5b 30 5d 20 3d 20 27 5c 30 27 3b 00 .=.-1;......filepath[0].=.'\0';.
1e940 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 .....dirty.=.false;....}.......$
1e960 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 73 74 72 75 63 74 20 61 70 70 20 2a static.void.do_save(struct.app.*
1e980 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 66 69 6c 65 70 61 74 68 5b 30 5d 29 20 7b 00 00 00 a).{......if.(!filepath[0]).{...
1e9a0 23 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d #....const.char.*h.=.getenv("HOM
1e9c0 45 22 29 3b 00 00 00 4b 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 E");...K....snprintf(filepath,.s
1e9e0 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 izeof.filepath,."%s/untitled.txt
1ea00 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 00 03 20 20 7d 00 00 00 3e 20 20 ",.h.?.h.:."/tmp");......}...>..
1ea20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 66 69 6c 65 70 61 74 68 2c 20 4f 5f 57 52 4f 4e 4c 59 int.fd.=.open(filepath,.O_WRONLY
1ea40 20 7c 20 4f 5f 43 52 45 41 54 20 7c 20 4f 5f 54 52 55 4e 43 2c 20 30 36 34 34 29 3b 00 00 00 0f .|.O_CREAT.|.O_TRUNC,.0644);....
1ea60 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 73 ..if.(fd.<.0).{........perror("s
1ea80 61 76 65 22 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 18 ave");........return;......}....
1eaa0 20 20 77 72 69 74 65 28 66 64 2c 20 74 65 78 74 2c 20 74 6c 65 6e 29 3b 00 00 00 0c 20 20 63 6c ..write(fd,.text,.tlen);......cl
1eac0 6f 73 65 28 66 64 29 3b 00 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 ose(fd);......dirty.=.false;....
1eae0 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 }.......$static.void.do_open(str
1eb00 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 21 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 uct.app.*a).{...!..const.char.*h
1eb20 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 12 20 20 63 68 61 72 20 70 61 74 .=.getenv("HOME");......char.pat
1eb40 68 5b 34 30 39 36 5d 3b 00 00 00 41 20 20 73 6e 70 72 69 6e 74 66 28 70 61 74 68 2c 20 73 69 7a h[4096];...A..snprintf(path,.siz
1eb60 65 6f 66 20 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 20 3f eof.path,."%s/untitled.txt",.h.?
1eb80 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 00 20 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e .h.:."/tmp");......int.fd.=.open
1eba0 28 70 61 74 68 2c 20 4f 5f 52 44 4f 4e 4c 59 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 (path,.O_RDONLY);......if.(fd.<.
1ebc0 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2b 20 20 73 73 69 7a 65 5f 74 20 6e 0)........return;...+..ssize_t.n
1ebe0 20 3d 20 72 65 61 64 28 66 64 2c 20 74 65 78 74 2c 20 4d 41 58 5f 54 45 58 54 20 2d 20 31 29 3b .=.read(fd,.text,.MAX_TEXT.-.1);
1ec00 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c 20 20 69 66 20 28 6e 20 3c 20 30 29 ......close(fd);......if.(n.<.0)
1ec20 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 74 6c 65 6e 20 3d 20 28 69 6e 74 ........return;......tlen.=.(int
1ec40 29 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 )n;......text[tlen].=.'\0';.....
1ec60 20 63 75 72 73 6f 72 20 3d 20 74 6c 65 6e 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 .cursor.=.tlen;......sel_anchor.
1ec80 3d 20 2d 31 3b 00 00 00 32 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 =.-1;...2..snprintf(filepath,.si
1eca0 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 22 2c 20 70 61 74 68 29 3b 00 00 00 10 20 zeof.filepath,."%s",.path);.....
1ecc0 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 39 73 74 61 74 .dirty.=.false;....}.......9stat
1ece0 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c ic.void.fire_item(struct.app.*a,
1ed00 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 69 64 78 29 20 7b 00 00 00 1b 20 20 61 2d 3e 6f 70 .MenuId.m,.int.idx).{......a->op
1ed20 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 17 20 20 61 2d 3e 68 6f 76 en_menu.=.MENU_NONE;......a->hov
1ed40 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 17 20 20 69 66 20 28 6d 20 3d 3d 20 4d 45 ered_item.=.-1;......if.(m.==.ME
1ed60 4e 55 5f 46 49 4c 45 29 20 7b 00 00 00 12 20 20 20 20 73 77 69 74 63 68 20 28 69 64 78 29 20 7b NU_FILE).{........switch.(idx).{
1ed80 00 00 00 0b 20 20 20 20 63 61 73 65 20 30 3a 00 00 00 10 20 20 20 20 20 20 64 6f 5f 6e 65 77 28 ........case.0:..........do_new(
1eda0 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0b 20 20 20 20 63 61 73 65 20 a);..........break;........case.
1edc0 31 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 6f 70 65 6e 28 61 29 3b 00 00 00 0c 20 20 20 20 20 1:..........do_open(a);.........
1ede0 20 62 72 65 61 6b 3b 00 00 00 0b 20 20 20 20 63 61 73 65 20 32 3a 00 00 00 11 20 20 20 20 20 20 .break;........case.2:..........
1ee00 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0d 20 do_save(a);..........break;.....
1ee20 20 20 20 63 61 73 65 20 33 3a 20 7b 00 00 00 25 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 ...case.3:.{...%......const.char
1ee40 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 4d 20 20 20 20 20 20 73 .*h.=.getenv("HOME");...M......s
1ee60 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 nprintf(filepath,.sizeof.filepat
1ee80 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f h,."%s/untitled.txt",.h.?.h.:."/
1eea0 74 6d 70 22 29 3b 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0c 20 tmp");..........do_save(a);.....
1eec0 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 63 61 73 65 .....break;........}........case
1eee0 20 34 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0e 20 20 20 20 .4:..........do_save(a);........
1ef00 20 20 65 78 69 74 28 30 29 3b 00 00 00 0b 20 20 20 20 63 61 73 65 20 35 3a 00 00 00 0e 20 20 20 ..exit(0);........case.5:.......
1ef20 20 20 20 65 78 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1e 20 20 7d 20 65 6c 73 65 ...exit(0);........}......}.else
1ef40 20 69 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 49 4e 46 4f 29 20 7b 00 00 00 11 20 20 20 20 69 66 .if.(m.==.MENU_INFO).{........if
1ef60 20 28 69 64 78 20 3d 3d 20 30 29 00 00 00 14 20 20 20 20 20 20 6f 70 65 6e 5f 61 62 6f 75 74 28 .(idx.==.0)..........open_about(
1ef80 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 a);......}......redraw(a);....}.
1efa0 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 62 61 72 28 73 74 72 75 ......%static.void.draw_bar(stru
1efc0 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e ct.app.*a).{......void.*px.=.a->
1efe0 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 61 2d 3e 77 2c 20 70 68 20 3d pixels;......int.pw.=.a->w,.ph.=
1f000 20 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 3b 00 00 .a->h;......int.by.=.bar_y(a);..
1f020 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 62 79 2c 20 70 77 2c ....frect(px,.pw,.ph,.0,.by,.pw,
1f040 20 42 41 52 5f 48 2c 20 42 41 52 5f 42 47 29 3b 00 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 20 .BAR_H,.BAR_BG);...-..frect(px,.
1f060 70 77 2c 20 70 68 2c 20 30 2c 20 62 79 2c 20 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 pw,.ph,.0,.by,.pw,.1,.SEP_COLOR)
1f080 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 ;...(..const.char.*lbls[].=.{"Fi
1f0a0 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 le",."Info"};......for.(int.i.=.
1f0c0 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 25 20 20 20 20 69 6e 74 20 62 78 20 3d 0;.i.<.2;.i++).{...%....int.bx.=
1f0e0 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 4c 20 20 20 .btn_x(i),.bw.=.btn_w(i);...L...
1f100 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 20 26 26 20 .bool.hov.=.a->mouse_y.>=.by.&&.
1f120 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c a->mouse_x.>=.bx.&&.a->mouse_x.<
1f140 20 62 78 20 2b 20 62 77 3b 00 00 00 29 20 20 20 20 69 66 20 28 68 6f 76 20 7c 7c 20 61 2d 3e 6f .bx.+.bw;...)....if.(hov.||.a->o
1f160 70 65 6e 5f 6d 65 6e 75 20 3d 3d 20 28 4d 65 6e 75 49 64 29 69 29 00 00 00 3c 20 20 20 20 20 20 pen_menu.==.(MenuId)i)...<......
1f180 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 62 78 2c 20 62 79 20 2b 20 31 2c 20 62 77 frect(px,.pw,.ph,.bx,.by.+.1,.bw
1f1a0 2c 20 42 41 52 5f 48 20 2d 20 31 2c 20 42 54 4e 5f 48 4f 56 29 3b 00 00 00 4f 20 20 20 20 64 73 ,.BAR_H.-.1,.BTN_HOV);...O....ds
1f1c0 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 62 78 20 2b 20 42 54 4e 5f 50 41 44 2c 20 62 79 20 tr(px,.pw,.ph,.bx.+.BTN_PAD,.by.
1f1e0 2b 20 28 42 41 52 5f 48 20 2d 20 63 65 6c 6c 5f 68 29 20 2f 20 32 2c 20 6c 62 6c 73 5b 69 5d 2c +.(BAR_H.-.cell_h)./.2,.lbls[i],
1f200 20 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 30 73 74 61 .BAR_FG);......}....}.......0sta
1f220 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 72 6f 70 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 tic.void.draw_drop(struct.app.*a
1f240 2c 20 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d ,.MenuId.m).{......void.*px.=.a-
1f260 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 61 2d 3e 77 2c 20 70 68 20 >pixels;......int.pw.=.a->w,.ph.
1f280 3d 20 61 2d 3e 68 3b 00 00 00 3a 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 2c 20 =.a->h;...:..int.by.=.bar_y(a),.
1f2a0 64 77 20 3d 20 64 72 6f 70 5f 77 28 6d 29 2c 20 64 68 20 3d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f dw.=.drop_w(m),.dh.=.drop_total_
1f2c0 68 28 6d 29 3b 00 00 00 27 20 20 69 6e 74 20 64 78 20 3d 20 62 74 6e 5f 78 28 28 69 6e 74 29 6d h(m);...'..int.dx.=.btn_x((int)m
1f2e0 29 2c 20 64 79 20 3d 20 62 79 20 2d 20 64 68 3b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d ),.dy.=.by.-.dh;...-..int.n.=.(m
1f300 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f .==.MENU_FILE).?.N_FILE.:.N_INFO
1f320 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 ;...E..const.MenuItem.*items.=.(
1f340 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 m.==.MENU_FILE).?.file_items.:.i
1f360 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 00 00 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 nfo_items;.......-..frect(px,.pw
1f380 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 64 77 2c 20 64 68 2c 20 44 52 4f 50 5f 42 47 29 3b 00 ,.ph,.dx,.dy,.dw,.dh,.DROP_BG);.
1f3a0 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 64 .....frect(px,.pw,.ph,.dx,.dy,.d
1f3c0 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c w,.1,.SEP_COLOR);......frect(px,
1f3e0 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 31 2c 20 64 68 2c 20 53 45 50 5f 43 4f 4c 4f .pw,.ph,.dx,.dy,.1,.dh,.SEP_COLO
1f400 52 29 3b 00 00 00 37 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 R);...7..frect(px,.pw,.ph,.dx.+.
1f420 64 77 20 2d 20 31 2c 20 64 79 2c 20 31 2c 20 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 dw.-.1,.dy,.1,.dh,.SEP_COLOR);..
1f440 00 37 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 20 2b 20 64 .7..frect(px,.pw,.ph,.dx,.dy.+.d
1f460 68 20 2d 20 31 2c 20 64 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 h.-.1,.dw,.1,.SEP_COLOR);.......
1f480 12 20 20 69 6e 74 20 69 79 20 3d 20 64 79 20 2b 20 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e ...int.iy.=.dy.+.4;......for.(in
1f4a0 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 26 20 20 20 20 62 6f t.i.=.0;.i.<.n;.i++).{...&....bo
1f4c0 6f 6c 20 68 6f 76 20 3d 20 28 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 3d 20 69 29 3b ol.hov.=.(a->hovered_item.==.i);
1f4e0 00 00 00 0c 20 20 20 20 69 66 20 28 68 6f 76 29 00 00 00 3d 20 20 20 20 20 20 66 72 65 63 74 28 ........if.(hov)...=......frect(
1f500 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 31 2c 20 69 79 2c 20 64 77 20 2d 20 32 2c 20 px,.pw,.ph,.dx.+.1,.iy,.dw.-.2,.
1f520 64 69 68 28 29 2c 20 44 52 4f 50 5f 48 4f 56 29 3b 00 00 00 4d 20 20 20 20 64 73 74 72 28 70 78 dih(),.DROP_HOV);...M....dstr(px
1f540 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 42 54 4e 5f 50 41 44 2c 20 69 79 20 2b 20 28 64 69 ,.pw,.ph,.dx.+.BTN_PAD,.iy.+.(di
1f560 68 28 29 20 2d 20 63 65 6c 6c 5f 68 29 20 2f 20 32 2c 20 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 h().-.cell_h)./.2,.items[i].labe
1f580 6c 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 68 6f 76 20 3f 20 28 75 69 6e 74 33 32 5f 74 29 44 l,...:.........hov.?.(uint32_t)D
1f5a0 52 4f 50 5f 48 4f 56 5f 46 47 20 3a 20 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 46 47 29 3b ROP_HOV_FG.:.(uint32_t)DROP_FG);
1f5c0 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 00 1d 20 20 20 20 69 66 20 28 ........iy.+=.dih();........if.(
1f5e0 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 7b 00 00 00 3a 20 20 20 20 20 20 66 items[i].sep_after).{...:......f
1f600 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 34 2c 20 69 79 2c 20 64 77 20 rect(px,.pw,.ph,.dx.+.4,.iy,.dw.
1f620 2d 20 38 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 69 79 20 -.8,.1,.SEP_COLOR);..........iy.
1f640 2b 3d 20 34 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 +=.4;........}......}....}......
1f660 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 .#static.void.redraw(struct.app.
1f680 2a 61 29 20 7b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b *a).{......void.*px.=.a->pixels;
1f6a0 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 ......int.pw.=.a->w,.ph.=.a->h;.
1f6c0 00 00 16 20 20 69 6e 74 20 74 61 68 20 3d 20 74 65 78 74 5f 68 28 61 29 3b 00 00 00 23 20 20 66 .....int.tah.=.text_h(a);...#..f
1f6e0 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 77 20 2a 20 70 68 3b 20 69 2b 2b 29 or.(int.i.=.0;.i.<.pw.*.ph;.i++)
1f700 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 69 5d 20 3d 20 42 47 ...#....((uint32_t.*)px)[i].=.BG
1f720 5f 43 4f 4c 4f 52 3b 00 00 00 00 00 00 00 1f 20 20 69 6e 74 20 73 65 6c 5f 6c 6f 20 3d 20 2d 31 _COLOR;..........int.sel_lo.=.-1
1f740 2c 20 73 65 6c 5f 68 69 20 3d 20 2d 31 3b 00 00 00 18 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 ,.sel_hi.=.-1;......if.(sel_anch
1f760 6f 72 20 3e 3d 20 30 29 20 7b 00 00 00 37 20 20 20 20 73 65 6c 5f 6c 6f 20 3d 20 73 65 6c 5f 61 or.>=.0).{...7....sel_lo.=.sel_a
1f780 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 nchor.<.cursor.?.sel_anchor.:.cu
1f7a0 72 73 6f 72 3b 00 00 00 37 20 20 20 20 73 65 6c 5f 68 69 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 rsor;...7....sel_hi.=.sel_anchor
1f7c0 20 3c 20 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 3b .<.cursor.?.cursor.:.sel_anchor;
1f7e0 00 00 00 03 20 20 7d 00 00 00 17 20 20 69 6e 74 20 63 6f 6c 20 3d 20 30 2c 20 72 6f 77 20 3d 20 ......}......int.col.=.0,.row.=.
1f800 30 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 3d 20 74 6c 65 0;...#..for.(int.i.=.0;.i.<=.tle
1f820 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 20 20 69 6e 74 20 78 20 3d 20 50 41 44 20 2b 20 63 n;.i++).{...7....int.x.=.PAD.+.c
1f840 6f 6c 20 2a 20 63 65 6c 6c 5f 77 2c 20 79 20 3d 20 50 41 44 20 2b 20 72 6f 77 20 2a 20 63 65 6c ol.*.cell_w,.y.=.PAD.+.row.*.cel
1f860 6c 5f 68 3b 00 00 00 19 20 20 20 20 69 66 20 28 79 20 2b 20 63 65 6c 6c 5f 68 20 3e 20 74 61 68 l_h;........if.(y.+.cell_h.>.tah
1f880 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 3a 20 20 20 20 62 6f 6f 6c 20 69 6e )..........break;...:....bool.in
1f8a0 73 20 3d 20 73 65 6c 5f 6c 6f 20 3e 3d 20 30 20 26 26 20 69 20 3e 3d 20 73 65 6c 5f 6c 6f 20 26 s.=.sel_lo.>=.0.&&.i.>=.sel_lo.&
1f8c0 26 20 69 20 3c 20 73 65 6c 5f 68 69 20 26 26 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 &.i.<.sel_hi.&&.................
1f8e0 20 20 28 69 20 3e 3d 20 74 6c 65 6e 20 7c 7c 20 74 65 78 74 5b 69 5d 20 21 3d 20 27 5c 6e 27 29 ..(i.>=.tlen.||.text[i].!=.'\n')
1f900 3b 00 00 00 0c 20 20 20 20 69 66 20 28 69 6e 73 29 00 00 00 39 20 20 20 20 20 20 66 72 65 63 74 ;........if.(ins)...9......frect
1f920 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 63 65 6c 6c 5f 77 2c 20 63 65 6c 6c 5f (px,.pw,.ph,.x,.y,.cell_w,.cell_
1f940 68 2c 20 53 45 4c 5f 43 4f 4c 4f 52 29 3b 00 00 00 14 20 20 20 20 69 66 20 28 69 20 3d 3d 20 63 h,.SEL_COLOR);........if.(i.==.c
1f960 75 72 73 6f 72 29 00 00 00 34 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 ursor)...4......frect(px,.pw,.ph
1f980 2c 20 78 2c 20 79 2c 20 32 2c 20 63 65 6c 6c 5f 68 2c 20 43 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 ,.x,.y,.2,.cell_h,.CUR_COLOR);..
1f9a0 00 13 20 20 20 20 69 66 20 28 69 20 3c 20 74 6c 65 6e 29 20 7b 00 00 00 1c 20 20 20 20 20 20 69 ......if.(i.<.tlen).{..........i
1f9c0 66 20 28 74 65 78 74 5b 69 5d 20 3d 3d 20 27 5c 6e 27 29 20 7b 00 00 00 10 20 20 20 20 20 20 20 f.(text[i].==.'\n').{...........
1f9e0 20 63 6f 6c 20 3d 20 30 3b 00 00 00 0e 20 20 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 0e 20 .col.=.0;............row++;.....
1fa00 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 69 66 20 28 78 20 2b .....}.else.{...$........if.(x.+
1fa20 20 63 65 6c 6c 5f 77 20 3e 20 70 77 20 2d 20 50 41 44 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 .cell_w.>.pw.-.PAD).{...........
1fa40 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 10 20 20 20 20 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 ...col.=.0;..............row++;.
1fa60 00 00 12 20 20 20 20 20 20 20 20 20 20 78 20 3d 20 50 41 44 3b 00 00 00 21 20 20 20 20 20 20 20 .............x.=.PAD;...!.......
1fa80 20 20 20 79 20 3d 20 50 41 44 20 2b 20 72 6f 77 20 2a 20 63 65 6c 6c 5f 68 3b 00 00 00 09 20 20 ...y.=.PAD.+.row.*.cell_h;......
1faa0 20 20 20 20 20 20 7d 00 00 00 1e 20 20 20 20 20 20 20 20 69 66 20 28 79 20 2b 20 63 65 6c 6c 5f ......}............if.(y.+.cell_
1fac0 68 20 3c 3d 20 74 61 68 29 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 64 67 6c 79 70 68 28 70 78 h.<=.tah)...:..........dglyph(px
1fae0 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 74 ,.pw,.ph,.x,.y,.(unsigned.char)t
1fb00 65 78 74 5b 69 5d 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 20 ext[i],...>.................ins.
1fb20 3f 20 28 75 69 6e 74 33 32 5f 74 29 53 45 4c 5f 46 47 20 3a 20 28 75 69 6e 74 33 32 5f 74 29 46 ?.(uint32_t)SEL_FG.:.(uint32_t)F
1fb40 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 07 20 G_COLOR);............col++;.....
1fb60 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0e 20 20 .....}........}......}..........
1fb80 64 72 61 77 5f 62 61 72 28 61 29 3b 00 00 00 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 draw_bar(a);......if.(a->open_me
1fba0 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 00 00 00 1f 20 20 20 20 64 72 61 77 5f 64 72 6f nu.!=.MENU_NONE)........draw_dro
1fbc0 70 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 29 3b 00 00 00 00 00 00 00 30 20 20 77 6c 5f p(a,.a->open_menu);.......0..wl_
1fbe0 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 surface_damage_buffer(a->ws,.0,.
1fc00 30 2c 20 70 77 2c 20 70 68 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 0,.pw,.ph);...)..wl_surface_atta
1fc20 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 6c ch(a->ws,.a->buf,.0,.0);......wl
1fc40 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 _surface_commit(a->ws);....}....
1fc60 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 73 74 72 ...)static.void.redraw_about(str
1fc80 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 uct.app.*a).{......struct.popup.
1fca0 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 1d 20 20 69 66 20 28 21 70 2d 3e 6f 70 65 *p.=.&a->about;......if.(!p->ope
1fcc0 6e 20 7c 7c 20 21 70 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 n.||.!p->pixels)........return;.
1fce0 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 70 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 .....void.*px.=.p->pixels;......
1fd00 69 6e 74 20 70 77 20 3d 20 70 2d 3e 77 2c 20 70 68 20 3d 20 70 2d 3e 68 3b 00 00 00 23 20 20 66 int.pw.=.p->w,.ph.=.p->h;...#..f
1fd20 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 77 20 2a 20 70 68 3b 20 69 2b 2b 29 or.(int.i.=.0;.i.<.pw.*.ph;.i++)
1fd40 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 69 5d 20 3d 20 42 47 ...#....((uint32_t.*)px)[i].=.BG
1fd60 5f 43 4f 4c 4f 52 3b 00 00 00 2c 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 _COLOR;...,..frect(px,.pw,.ph,.0
1fd80 2c 20 30 2c 20 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 31 20 20 66 72 65 ,.0,.pw,.1,.SEP_COLOR);...1..fre
1fda0 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 70 68 20 2d 20 31 2c 20 70 77 2c 20 31 2c ct(px,.pw,.ph,.0,.ph.-.1,.pw,.1,
1fdc0 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2c 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 .SEP_COLOR);...,..frect(px,.pw,.
1fde0 70 68 2c 20 30 2c 20 30 2c 20 31 2c 20 70 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 31 ph,.0,.0,.1,.ph,.SEP_COLOR);...1
1fe00 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 70 77 20 2d 20 31 2c 20 30 2c 20 31 ..frect(px,.pw,.ph,.pw.-.1,.0,.1
1fe20 2c 20 70 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 12 20 20 69 6e 74 20 79 ,.ph,.SEP_COLOR);..........int.y
1fe40 20 3d 20 50 41 44 20 2a 20 32 3b 00 00 00 47 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 .=.PAD.*.2;...G..dstr(px,.pw,.ph
1fe60 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 77 6c 45 44 2c 20 20 77 61 79 6c 61 6e 64 20 74 65 ,.PAD.*.2,.y,."wlED,..wayland.te
1fe80 78 74 20 65 64 69 74 6f 72 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 14 20 20 79 20 2b 3d xt.editor",.FG_COLOR);......y.+=
1fea0 20 63 65 6c 6c 5f 68 20 2b 20 50 41 44 3b 00 00 00 3c 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 .cell_h.+.PAD;...<..frect(px,.pw
1fec0 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 70 77 20 2d 20 50 41 44 20 2a 20 34 2c 20 ,.ph,.PAD.*.2,.y,.pw.-.PAD.*.4,.
1fee0 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 0b 20 20 79 20 2b 3d 20 50 41 44 3b 00 00 00 1,.SEP_COLOR);......y.+=.PAD;...
1ff00 44 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 D..dstr(px,.pw,.ph,.PAD.*.2,.y,.
1ff20 22 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 47 50 4c 20 76 33 2e 30 22 2c 20 46 47 5f 43 4f "licensed.under.GPL.v3.0",.FG_CO
1ff40 4c 4f 52 29 3b 00 00 00 12 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 4d 20 LOR);......y.+=.cell_h.+.6;...M.
1ff60 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 63 .dstr(px,.pw,.ph,.PAD.*.2,.y,."c
1ff80 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 reated.by..git.sr.ht/~coasteen/"
1ffa0 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 12 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 ,.FG_COLOR);......y.+=.cell_h.+.
1ffc0 36 3b 00 00 00 46 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 6;...F..dstr(px,.pw,.ph,.PAD.*.2
1ffe0 2c 20 79 2c 20 22 73 6f 75 72 63 65 3a 20 20 20 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 ,.y,."source:.....git.sr.ht/~coa
20000 73 74 65 65 6e 2f 77 6c 65 64 22 2c 00 00 00 11 20 20 20 20 20 20 20 46 47 5f 43 4f 4c 4f 52 29 steen/wled",...........FG_COLOR)
20020 3b 00 00 00 00 00 00 00 30 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 ;.......0..wl_surface_damage_buf
20040 66 65 72 28 70 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 70 77 2c 20 70 68 29 3b 00 00 00 29 20 20 77 fer(p->ws,.0,.0,.pw,.ph);...)..w
20060 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 70 2d 3e 77 73 2c 20 70 2d 3e 62 75 66 2c 20 l_surface_attach(p->ws,.p->buf,.
20080 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 0,.0);......wl_surface_commit(p-
200a0 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 >ws);....}.......Lstatic.void.ab
200c0 6f 75 74 5f 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 out_xs_cfg(void.*d,.struct.xdg_s
200e0 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 urface.*xs,.uint32_t.serial).{..
20100 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1e 20 20 73 74 72 75 ....struct.app.*a.=.d;......stru
20120 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 28 20 20 78 64 ct.popup.*p.=.&a->about;...(..xd
20140 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 g_surface_ack_configure(xs,.seri
20160 61 6c 29 3b 00 00 00 11 20 20 69 66 20 28 21 70 2d 3e 70 69 78 65 6c 73 29 00 00 00 42 20 20 20 al);......if.(!p->pixels)...B...
20180 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 70 2d 3e 77 2c 20 70 .p->pixels.=.make_shm(a,.p->w,.p
201a0 2d 3e 68 2c 20 26 70 2d 3e 62 75 66 2c 20 26 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 ->h,.&p->buf,.&p->pixels_size);.
201c0 00 00 17 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 12 20 20 .....p->configured.=.true;......
201e0 72 65 64 72 61 77 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 redraw_about(a);....}...Cstatic.
20200 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 const.struct.xdg_surface_listene
20220 72 20 61 62 6f 75 74 5f 78 73 5f 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 00 00 00 49 r.about_xs_l.=.{.configure.=...I
20240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 62 6f 75 74 ...........................about
20280 5f 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f _xs_cfg};.......Pstatic.void.abo
202a0 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f ut_xt_cfg(void.*d,.struct.xdg_to
202c0 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 plevel.*xt,.int32_t.w,.int32_t.h
202e0 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 ,.../.........................st
20300 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 7d 00 00 00 3e 73 74 61 74 69 63 20 76 ruct.wl_array.*s).{}...>static.v
20320 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 oid.about_xt_close(void.*d,.stru
20340 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 14 20 20 73 74 72 75 ct.xdg_toplevel.*xt).{......stru
20360 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 ct.app.*a.=.d;......struct.popup
20380 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 0f 20 20 69 66 20 28 70 2d 3e 62 75 66 .*p.=.&a->about;......if.(p->buf
203a0 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 70 2d 3e ).{........wl_buffer_destroy(p->
203c0 62 75 66 29 3b 00 00 00 12 20 20 20 20 70 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 buf);........p->buf.=.NULL;.....
203e0 20 7d 00 00 00 12 20 20 69 66 20 28 70 2d 3e 70 69 78 65 6c 73 29 20 7b 00 00 00 26 20 20 20 20 .}......if.(p->pixels).{...&....
20400 6d 75 6e 6d 61 70 28 70 2d 3e 70 69 78 65 6c 73 2c 20 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 munmap(p->pixels,.p->pixels_size
20420 29 3b 00 00 00 15 20 20 20 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 );........p->pixels.=.NULL;.....
20440 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 78 74 29 20 7b 00 00 00 20 20 20 20 20 78 64 67 5f .}......if.(p->xt).{........xdg_
20460 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 74 29 3b 00 00 00 11 20 20 20 20 toplevel_destroy(p->xt);........
20480 70 2d 3e 78 74 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d p->xt.=.NULL;......}......if.(p-
204a0 3e 78 73 29 20 7b 00 00 00 1f 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f >xs).{........xdg_surface_destro
204c0 79 28 70 2d 3e 78 73 29 3b 00 00 00 11 20 20 20 20 70 2d 3e 78 73 20 3d 20 4e 55 4c 4c 3b 00 00 y(p->xs);........p->xs.=.NULL;..
204e0 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 77 73 29 20 7b 00 00 00 1e 20 20 20 20 77 ....}......if.(p->ws).{........w
20500 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d 3e 77 73 29 3b 00 00 00 11 20 20 20 l_surface_destroy(p->ws);.......
20520 20 70 2d 3e 77 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 70 2d 3e 6f 70 .p->ws.=.NULL;......}......p->op
20540 65 6e 20 3d 20 66 61 6c 73 65 3b 00 00 00 18 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d en.=.false;......p->configured.=
20560 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 38 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 .false;....}...8static.const.str
20580 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f uct.xdg_toplevel_listener.about_
205a0 78 74 5f 6c 20 3d 20 7b 00 00 00 38 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 61 62 6f xt_l.=.{...8.....configure.=.abo
205c0 75 74 5f 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f ut_xt_cfg,..close.=.about_xt_clo
205e0 73 65 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f se};.......'static.void.open_abo
20600 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 74 72 75 63 74 20 ut(struct.app.*a).{......struct.
20620 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 0e 20 20 69 66 20 28 70 popup.*p.=.&a->about;......if.(p
20640 2d 3e 6f 70 65 6e 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 10 20 20 69 6e 74 20 ->open)........return;......int.
20660 6c 69 6e 65 73 20 3d 20 35 3b 00 00 00 1f 20 20 70 2d 3e 77 20 3d 20 32 32 20 2a 20 63 65 6c 6c lines.=.5;......p->w.=.22.*.cell
20680 5f 77 20 2b 20 50 41 44 20 2a 20 34 3b 00 00 00 31 20 20 70 2d 3e 68 20 3d 20 6c 69 6e 65 73 20 _w.+.PAD.*.4;...1..p->h.=.lines.
206a0 2a 20 28 63 65 6c 6c 5f 68 20 2b 20 36 29 20 2b 20 50 41 44 20 2a 20 34 20 2b 20 63 65 6c 6c 5f *.(cell_h.+.6).+.PAD.*.4.+.cell_
206c0 68 3b 00 00 00 11 20 20 69 66 20 28 70 2d 3e 77 20 3c 20 33 36 30 29 00 00 00 0f 20 20 20 20 70 h;......if.(p->w.<.360)........p
206e0 2d 3e 77 20 3d 20 33 36 30 3b 00 00 00 11 20 20 69 66 20 28 70 2d 3e 68 20 3c 20 31 34 30 29 00 ->w.=.360;......if.(p->h.<.140).
20700 00 00 0f 20 20 20 20 70 2d 3e 68 20 3d 20 31 34 30 3b 00 00 00 11 20 20 70 2d 3e 6f 70 65 6e 20 .......p->h.=.140;......p->open.
20720 3d 20 74 72 75 65 3b 00 00 00 30 20 20 70 2d 3e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 =.true;...0..p->ws.=.wl_composit
20740 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2d 3e 63 6f 6d 70 29 3b 00 00 00 34 20 or_create_surface(a->comp);...4.
20760 20 70 2d 3e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 .p->xs.=.xdg_wm_base_get_xdg_sur
20780 66 61 63 65 28 61 2d 3e 77 6d 2c 20 70 2d 3e 77 73 29 3b 00 00 00 32 20 20 78 64 67 5f 73 75 72 face(a->wm,.p->ws);...2..xdg_sur
207a0 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 73 2c 20 26 61 62 6f 75 74 5f face_add_listener(p->xs,.&about_
207c0 78 73 5f 6c 2c 20 61 29 3b 00 00 00 2a 20 20 70 2d 3e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 xs_l,.a);...*..p->xt.=.xdg_surfa
207e0 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 70 2d 3e 78 73 29 3b 00 00 00 33 20 20 78 64 67 ce_get_toplevel(p->xs);...3..xdg
20800 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 74 2c 20 26 61 _toplevel_add_listener(p->xt,.&a
20820 62 6f 75 74 5f 78 74 5f 6c 2c 20 61 29 3b 00 00 00 2e 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c bout_xt_l,.a);......xdg_toplevel
20840 5f 73 65 74 5f 74 69 74 6c 65 28 70 2d 3e 78 74 2c 20 22 41 62 6f 75 74 20 77 6c 65 64 22 29 3b _set_title(p->xt,."About.wled");
20860 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 .../..xdg_toplevel_set_min_size(
20880 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 p->xt,.p->w,.p->h);.../..xdg_top
208a0 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 level_set_max_size(p->xt,.p->w,.
208c0 70 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d p->h);......wl_surface_commit(p-
208e0 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c >ws);....}.......Pstatic.int.sel
20900 5f 73 74 61 72 74 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 _start(void).{.return.sel_anchor
20920 20 3c 20 63 75 72 73 6f 72 20 3f 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b .<.cursor.?.sel_anchor.:.cursor;
20940 20 7d 00 00 00 1a 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 76 6f 69 64 29 20 7b .}....static.int.sel_len(void).{
20960 00 00 00 49 20 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 ...I..return.sel_anchor.<.cursor
20980 20 3f 20 63 75 72 73 6f 72 20 2d 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 .?.cursor.-.sel_anchor.:.sel_anc
209a0 68 6f 72 20 2d 20 63 75 72 73 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1e 73 74 61 74 69 63 hor.-.cursor;....}........static
209c0 20 76 6f 69 64 20 64 65 6c 65 74 65 5f 73 65 6c 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 69 66 .void.delete_sel(void).{......if
209e0 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b .(sel_anchor.<.0)........return;
20a00 00 00 00 28 20 20 69 6e 74 20 6c 6f 20 3d 20 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c 65 6e 20 ...(..int.lo.=.sel_start(),.len.
20a20 3d 20 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 37 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b =.sel_len();...7..memmove(text.+
20a40 20 6c 6f 2c 20 74 65 78 74 20 2b 20 6c 6f 20 2b 20 6c 65 6e 2c 20 74 6c 65 6e 20 2d 20 6c 6f 20 .lo,.text.+.lo.+.len,.tlen.-.lo.
20a60 2d 20 6c 65 6e 29 3b 00 00 00 0e 20 20 74 6c 65 6e 20 2d 3d 20 6c 65 6e 3b 00 00 00 14 20 20 74 -.len);......tlen.-=.len;......t
20a80 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 0e 20 20 63 75 72 73 6f 72 20 3d 20 ext[tlen].=.'\0';......cursor.=.
20aa0 6c 6f 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 01 7d 00 00 lo;......sel_anchor.=.-1;....}..
20ac0 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 73 28 63 6f 6e 73 74 20 63 68 61 72 .....)static.void.ins(const.char
20ae0 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 1d 20 20 69 66 20 28 74 6c 65 6e 20 2b 20 .*s,.int.len).{......if.(tlen.+.
20b00 6c 65 6e 20 3e 3d 20 4d 41 58 5f 54 45 58 54 29 00 00 00 1e 20 20 20 20 6c 65 6e 20 3d 20 4d 41 len.>=.MAX_TEXT)........len.=.MA
20b20 58 5f 54 45 58 54 20 2d 20 74 6c 65 6e 20 2d 20 31 3b 00 00 00 3d 20 20 6d 65 6d 6d 6f 76 65 28 X_TEXT.-.tlen.-.1;...=..memmove(
20b40 74 65 78 74 20 2b 20 63 75 72 73 6f 72 20 2b 20 6c 65 6e 2c 20 74 65 78 74 20 2b 20 63 75 72 73 text.+.cursor.+.len,.text.+.curs
20b60 6f 72 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 29 3b 00 00 00 20 20 20 6d 65 6d 63 70 79 28 or,.tlen.-.cursor);......memcpy(
20b80 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 73 2c 20 6c 65 6e 29 3b 00 00 00 0e 20 20 74 6c 65 text.+.cursor,.s,.len);......tle
20ba0 6e 20 2b 3d 20 6c 65 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 n.+=.len;......text[tlen].=.'\0'
20bc0 3b 00 00 00 10 20 20 63 75 72 73 6f 72 20 2b 3d 20 6c 65 6e 3b 00 00 00 0f 20 20 64 69 72 74 79 ;......cursor.+=.len;......dirty
20be0 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 .=.true;....}.......%static.void
20c00 20 63 6f 70 79 5f 73 65 6c 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 15 20 20 .copy_sel(struct.app.*a).{......
20c20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 if.(sel_anchor.<.0)........retur
20c40 6e 3b 00 00 00 28 20 20 69 6e 74 20 6c 6f 20 3d 20 73 65 6c 5f 73 74 61 72 74 28 29 2c 20 6c 65 n;...(..int.lo.=.sel_start(),.le
20c60 6e 20 3d 20 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 2a 20 20 69 66 20 28 6c 65 6e 20 3e 20 28 69 n.=.sel_len();...*..if.(len.>.(i
20c80 6e 74 29 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 20 2d 20 31 29 00 00 00 23 nt)sizeof(a->clipboard).-.1)...#
20ca0 20 20 20 20 6c 65 6e 20 3d 20 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 20 2d ....len.=.sizeof(a->clipboard).-
20cc0 20 31 3b 00 00 00 27 20 20 6d 65 6d 63 70 79 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 74 65 .1;...'..memcpy(a->clipboard,.te
20ce0 78 74 20 2b 20 6c 6f 2c 20 6c 65 6e 29 3b 00 00 00 1b 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 xt.+.lo,.len);......a->clipboard
20d00 5b 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 19 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f [len].=.'\0';......a->clipboard_
20d20 6c 65 6e 20 3d 20 6c 65 6e 3b 00 00 00 0e 20 20 69 66 20 28 61 2d 3e 64 73 29 20 7b 00 00 00 22 len.=.len;......if.(a->ds).{..."
20d40 20 20 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 ....wl_data_source_destroy(a->ds
20d60 29 3b 00 00 00 11 20 20 20 20 61 2d 3e 64 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 );........a->ds.=.NULL;......}..
20d80 00 18 20 20 69 66 20 28 21 61 2d 3e 64 64 6d 20 7c 7c 20 21 61 2d 3e 64 64 29 00 00 00 0b 20 20 ....if.(!a->ddm.||.!a->dd)......
20da0 20 20 72 65 74 75 72 6e 3b 00 00 00 3c 20 20 61 2d 3e 64 73 20 3d 20 77 6c 5f 64 61 74 61 5f 64 ..return;...<..a->ds.=.wl_data_d
20dc0 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 63 72 65 61 74 65 5f 64 61 74 61 5f 73 6f 75 72 63 65 evice_manager_create_data_source
20de0 28 61 2d 3e 64 64 6d 29 3b 00 00 00 3a 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 (a->ddm);...:..wl_data_source_of
20e00 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 69 6e 3b 63 68 61 72 73 65 74 3d 75 fer(a->ds,."text/plain;charset=u
20e20 74 66 2d 38 22 29 3b 00 00 00 2c 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 tf-8");...,..wl_data_source_offe
20e40 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 29 3b 00 00 00 2d 20 20 77 6c 5f r(a->ds,."text/plain");...-..wl_
20e60 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 55 54 46 38 5f 53 data_source_offer(a->ds,."UTF8_S
20e80 54 52 49 4e 47 22 29 3b 00 00 00 28 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 TRING");...(..wl_data_source_off
20ea0 65 72 28 61 2d 3e 64 73 2c 20 22 53 54 52 49 4e 47 22 29 3b 00 00 00 3d 20 20 77 6c 5f 64 61 74 er(a->ds,."STRING");...=..wl_dat
20ec0 61 5f 64 65 76 69 63 65 5f 73 65 74 5f 73 65 6c 65 63 74 69 6f 6e 28 61 2d 3e 64 64 2c 20 61 2d a_device_set_selection(a->dd,.a-
20ee0 3e 64 73 2c 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 >ds,.a->last_serial);....}......
20f00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 73 74 72 75 63 74 .6static.void.process_key(struct
20f20 20 61 70 70 20 2a 61 2c 20 75 69 6e 74 33 32 5f 74 20 6b 65 79 29 20 7b 00 00 00 14 20 20 69 66 .app.*a,.uint32_t.key).{......if
20f40 20 28 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 .(!a->xkb_state)........return;.
20f60 00 00 1d 20 20 78 6b 62 5f 6b 65 79 63 6f 64 65 5f 74 20 6b 63 20 3d 20 6b 65 79 20 2b 20 38 3b .....xkb_keycode_t.kc.=.key.+.8;
20f80 00 00 00 41 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 73 79 6d 20 3d 20 78 6b 62 5f 73 74 61 ...A..xkb_keysym_t.sym.=.xkb_sta
20fa0 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e 65 5f 73 79 6d 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c te_key_get_one_sym(a->xkb_state,
20fc0 20 6b 63 29 3b 00 00 00 4a 20 20 69 6e 74 20 63 74 72 6c 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f .kc);...J..int.ctrl.=.xkb_state_
20fe0 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c mod_name_is_active(a->xkb_state,
21000 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 43 54 52 4c 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 .XKB_MOD_NAME_CTRL,...D.........
21020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21040 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 4c 20 .XKB_STATE_MODS_EFFECTIVE);...L.
21060 20 69 6e 74 20 73 68 69 66 74 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f .int.shift.=.xkb_state_mod_name_
21080 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f is_active(a->xkb_state,.XKB_MOD_
210a0 4e 41 4d 45 5f 53 48 49 46 54 2c 00 00 00 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NAME_SHIFT,...E.................
210c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4b 42 5f 53 54 ..........................XKB_ST
210e0 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b 00 00 00 49 20 20 78 6b 62 5f 6c 61 ATE_MODS_EFFECTIVE);...I..xkb_la
21100 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 6c 61 79 6f 75 74 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f yout_index_t.layout.=.xkb_state_
21120 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 74 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 29 key_get_layout(a->xkb_state,.kc)
21140 3b 00 00 00 19 20 20 63 6f 6e 73 74 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 2a 62 73 3b 00 00 ;......const.xkb_keysym_t.*bs;..
21160 00 4e 20 20 69 6e 74 20 6e 20 3d 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 6b 65 79 5f 67 65 74 5f 73 .N..int.n.=.xkb_keymap_key_get_s
21180 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 2c 20 6b 63 2c 20 yms_by_level(a->xkb_keymap,.kc,.
211a0 6c 61 79 6f 75 74 2c 20 30 2c 20 26 62 73 29 3b 00 00 00 2b 20 20 78 6b 62 5f 6b 65 79 73 79 6d layout,.0,.&bs);...+..xkb_keysym
211c0 5f 74 20 70 6c 61 69 6e 20 3d 20 6e 20 3e 20 30 20 3f 20 62 73 5b 30 5d 20 3a 20 73 79 6d 3b 00 _t.plain.=.n.>.0.?.bs[0].:.sym;.
211e0 00 00 00 00 00 00 1e 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 45 73 63 61 .........if.(sym.==.XKB_KEY_Esca
21200 70 65 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d pe).{...$....if.(a->open_menu.!=
21220 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 1f 20 20 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d .MENU_NONE).{..........a->open_m
21240 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 1b 20 20 20 20 20 20 61 2d 3e 68 6f 76 enu.=.MENU_NONE;..........a->hov
21260 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 ered_item.=.-1;..........redraw(
21280 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 a);........}........return;.....
212a0 20 7d 00 00 00 0d 20 20 69 66 20 28 63 74 72 6c 29 20 7b 00 00 00 3a 20 20 20 20 69 66 20 28 70 .}......if.(ctrl).{...:....if.(p
212c0 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 65 71 75 61 6c 20 7c 7c 20 70 6c 61 69 6e 20 3d lain.==.XKB_KEY_equal.||.plain.=
212e0 3d 20 58 4b 42 5f 4b 45 59 5f 70 6c 75 73 29 20 7b 00 00 00 10 20 20 20 20 20 20 66 6f 6e 74 5f =.XKB_KEY_plus).{..........font_
21300 70 74 2b 2b 3b 00 00 00 1c 20 20 20 20 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 pt++;..........update_font_metri
21320 63 73 28 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 cs();..........redraw(a);.......
21340 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 21 20 20 20 20 69 66 20 28 70 ...return;........}...!....if.(p
21360 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 6d 69 6e 75 73 29 20 7b 00 00 00 18 20 20 20 20 lain.==.XKB_KEY_minus).{........
21380 20 20 69 66 20 28 66 6f 6e 74 5f 70 74 20 3e 20 34 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 ..if.(font_pt.>.4).{............
213a0 66 6f 6e 74 5f 70 74 2d 2d 3b 00 00 00 1e 20 20 20 20 20 20 20 20 75 70 64 61 74 65 5f 66 6f 6e font_pt--;............update_fon
213c0 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 12 20 20 20 20 20 20 20 20 72 65 64 72 61 77 28 61 t_metrics();............redraw(a
213e0 29 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 );..........}..........return;..
21400 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f ......}........if.(plain.==.XKB_
21420 4b 45 59 5f 30 29 20 7b 00 00 00 1a 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 KEY_0).{..........font_pt.=.FONT
21440 5f 53 49 5a 45 3b 00 00 00 1c 20 20 20 20 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 _SIZE;..........update_font_metr
21460 69 63 73 28 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 ics();..........redraw(a);......
21480 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 ....return;........}...3....if.(
214a0 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 73 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 plain.==.XKB_KEY_s.||.plain.==.X
214c0 4b 42 5f 4b 45 59 5f 53 29 20 7b 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b KB_KEY_S).{..........do_save(a);
214e0 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 ..........redraw(a);..........re
21500 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 turn;........}...3....if.(plain.
21520 3d 3d 20 58 4b 42 5f 4b 45 59 5f 61 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 ==.XKB_KEY_a.||.plain.==.XKB_KEY
21540 5f 41 29 20 7b 00 00 00 15 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 30 3b 00 00 _A).{..........sel_anchor.=.0;..
21560 00 14 20 20 20 20 20 20 63 75 72 73 6f 72 20 3d 20 74 6c 65 6e 3b 00 00 00 10 20 20 20 20 20 20 ........cursor.=.tlen;..........
21580 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 redraw(a);..........return;.....
215a0 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 ...}...3....if.(plain.==.XKB_KEY
215c0 5f 63 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 43 29 20 7b 00 00 00 12 20 _c.||.plain.==.XKB_KEY_C).{.....
215e0 20 20 20 20 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 .....copy_sel(a);..........retur
21600 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 n;........}...3....if.(plain.==.
21620 58 4b 42 5f 4b 45 59 5f 78 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 58 29 XKB_KEY_x.||.plain.==.XKB_KEY_X)
21640 20 7b 00 00 00 12 20 20 20 20 20 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 00 00 00 13 20 20 20 20 .{..........copy_sel(a);........
21660 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 ..delete_sel();..........redraw(
21680 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 a);..........return;........}...
216a0 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 76 20 7c 7c 20 70 3....if.(plain.==.XKB_KEY_v.||.p
216c0 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 56 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 66 lain.==.XKB_KEY_V).{..........if
216e0 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 15 20 20 20 20 20 20 20 20 64 65 .(sel_anchor.>=.0)............de
21700 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 2a 20 20 20 20 20 20 69 6e 73 28 61 2d 3e 63 6c 69 70 lete_sel();...*......ins(a->clip
21720 62 6f 61 72 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 00 00 00 10 20 20 20 board,.a->clipboard_len);.......
21740 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 ...redraw(a);..........return;..
21760 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 4b 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 ......}......}...K..if.(sym.==.X
21780 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 7c 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 69 KB_KEY_Left.||.sym.==.XKB_KEY_Ri
217a0 67 68 74 20 7c 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 20 7c 7c 00 00 00 ght.||.sym.==.XKB_KEY_Home.||...
217c0 1b 20 20 20 20 20 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 7b 00 00 00 20 .......sym.==.XKB_KEY_End).{....
217e0 20 20 20 20 69 66 20 28 73 68 69 66 74 20 26 26 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 ....if.(shift.&&.sel_anchor.<.0)
21800 00 00 00 1a 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 63 75 72 73 6f 72 3b 00 00 ..........sel_anchor.=.cursor;..
21820 00 14 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 68 69 66 74 29 00 00 00 16 20 20 20 20 20 20 ......else.if.(!shift)..........
21840 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 2a 20 20 20 20 69 66 20 28 73 79 6d 20 sel_anchor.=.-1;...*....if.(sym.
21860 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 26 26 20 63 75 72 73 6f 72 20 3e 20 30 29 00 00 ==.XKB_KEY_Left.&&.cursor.>.0)..
21880 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 2e 20 20 20 20 69 66 20 28 73 79 6d ........cursor--;........if.(sym
218a0 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 26 26 20 63 75 72 73 6f 72 20 3c 20 74 6c .==.XKB_KEY_Right.&&.cursor.<.tl
218c0 65 6e 29 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2b 2b 3b 00 00 00 1e 20 20 20 20 69 66 en)..........cursor++;........if
218e0 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 29 20 7b 00 00 00 34 20 20 20 20 .(sym.==.XKB_KEY_Home).{...4....
21900 20 20 77 68 69 6c 65 20 28 63 75 72 73 6f 72 20 3e 20 30 20 26 26 20 74 65 78 74 5b 63 75 72 73 ..while.(cursor.>.0.&&.text[curs
21920 6f 72 20 2d 20 31 5d 20 21 3d 20 27 5c 6e 27 29 00 00 00 11 20 20 20 20 20 20 20 20 63 75 72 73 or.-.1].!=.'\n')............curs
21940 6f 72 2d 2d 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d or--;........}........if.(sym.==
21960 20 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 7b 00 00 00 33 20 20 20 20 20 20 77 68 69 6c 65 20 28 .XKB_KEY_End).{...3......while.(
21980 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 20 26 26 20 74 65 78 74 5b 63 75 72 73 6f 72 5d 20 21 3d cursor.<.tlen.&&.text[cursor].!=
219a0 20 27 5c 6e 27 29 00 00 00 11 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 2b 2b 3b 00 00 00 05 20 .'\n')............cursor++;.....
219c0 20 20 20 7d 00 00 00 26 20 20 20 20 69 66 20 28 73 68 69 66 74 20 26 26 20 73 65 6c 5f 61 6e 63 ...}...&....if.(shift.&&.sel_anc
219e0 68 6f 72 20 3d 3d 20 63 75 72 73 6f 72 29 00 00 00 16 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 hor.==.cursor)..........sel_anch
21a00 6f 72 20 3d 20 2d 31 3b 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 or.=.-1;........redraw(a);......
21a20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 21 20 20 69 66 20 28 73 79 6d 20 3d 3d ..return;......}...!..if.(sym.==
21a40 20 58 4b 42 5f 4b 45 59 5f 42 61 63 6b 53 70 61 63 65 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 .XKB_KEY_BackSpace).{........if.
21a60 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 (sel_anchor.>=.0)..........delet
21a80 65 5f 73 65 6c 28 29 3b 00 00 00 1a 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 20 e_sel();........else.if.(cursor.
21aa0 3e 20 30 29 20 7b 00 00 00 3f 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 >.0).{...?......memmove(text.+.c
21ac0 75 72 73 6f 72 20 2d 20 31 2c 20 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 6c 65 6e 20 2d ursor.-.1,.text.+.cursor,.tlen.-
21ae0 20 63 75 72 73 6f 72 29 3b 00 00 00 0d 20 20 20 20 20 20 74 6c 65 6e 2d 2d 3b 00 00 00 0f 20 20 .cursor);..........tlen--;......
21b00 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 18 20 20 20 20 20 20 74 65 78 74 5b 74 6c 65 6e ....cursor--;..........text[tlen
21b20 5d 20 3d 20 27 5c 30 27 3b 00 00 00 13 20 20 20 20 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b ].=.'\0';..........dirty.=.true;
21b40 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 ........}........redraw(a);.....
21b60 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 1e 20 20 69 66 20 28 73 79 6d 20 3d ...return;......}......if.(sym.=
21b80 3d 20 58 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 =.XKB_KEY_Delete).{........if.(s
21ba0 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f el_anchor.>=.0)..........delete_
21bc0 73 65 6c 28 29 3b 00 00 00 1d 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 73 6f 72 20 3c 20 sel();........else.if.(cursor.<.
21be0 74 6c 65 6e 29 20 7b 00 00 00 43 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 tlen).{...C......memmove(text.+.
21c00 63 75 72 73 6f 72 2c 20 74 65 78 74 20 2b 20 63 75 72 73 6f 72 20 2b 20 31 2c 20 74 6c 65 6e 20 cursor,.text.+.cursor.+.1,.tlen.
21c20 2d 20 63 75 72 73 6f 72 20 2d 20 31 29 3b 00 00 00 0d 20 20 20 20 20 20 74 6c 65 6e 2d 2d 3b 00 -.cursor.-.1);..........tlen--;.
21c40 00 00 18 20 20 20 20 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 13 20 .........text[tlen].=.'\0';.....
21c60 20 20 20 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 .....dirty.=.true;........}.....
21c80 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 ...redraw(a);........return;....
21ca0 20 20 7d 00 00 00 39 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 65 74 75 ..}...9..if.(sym.==.XKB_KEY_Retu
21cc0 72 6e 20 7c 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4b 50 5f 45 6e 74 65 72 29 20 7b rn.||.sym.==.XKB_KEY_KP_Enter).{
21ce0 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 ........if.(sel_anchor.>=.0)....
21d00 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 11 20 20 20 20 69 6e 73 28 22 ......delete_sel();........ins("
21d20 5c 6e 22 2c 20 31 29 3b 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 \n",.1);........redraw(a);......
21d40 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 63 68 61 72 20 62 75 66 5b 38 ..return;......}......char.buf[8
21d60 5d 3b 00 00 00 46 20 20 69 6e 74 20 6c 65 6e 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f ];...F..int.len.=.xkb_state_key_
21d80 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 2c 20 62 75 66 2c 20 get_utf8(a->xkb_state,.kc,.buf,.
21da0 73 69 7a 65 6f 66 20 62 75 66 29 3b 00 00 00 2f 20 20 69 66 20 28 6c 65 6e 20 3e 20 30 20 26 26 sizeof.buf);.../..if.(len.>.0.&&
21dc0 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b 30 5d 20 3e 3d 20 33 32 29 20 7b 00 .(unsigned.char)buf[0].>=.32).{.
21de0 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 .......if.(sel_anchor.>=.0).....
21e00 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 12 20 20 20 20 69 6e 73 28 62 75 .....delete_sel();........ins(bu
21e20 66 2c 20 6c 65 6e 29 3b 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 03 20 20 f,.len);........redraw(a);......
21e40 7d 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e }....}.......Gstatic.void.wm_pin
21e60 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 g(void.*d,.struct.xdg_wm_base.*w
21e80 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 m,.uint32_t.serial).{......xdg_w
21ea0 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 m_base_pong(wm,.serial);....}...
21ec0 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 Istatic.const.struct.xdg_wm_base
21ee0 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 70 69 6e 67 20 3d _listener.wm_listener.=.{.ping.=
21f00 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c .wm_ping};.......&static.void.al
21f20 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0f 20 20 69 66 loc_buf(struct.app.*a).{......if
21f40 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 .(a->buf).{........wl_buffer_des
21f60 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 12 20 20 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 troy(a->buf);........a->buf.=.NU
21f80 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 29 20 7b LL;......}......if.(a->pixels).{
21fa0 00 00 00 26 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 61 2d 3e 70 69 78 ...&....munmap(a->pixels,.a->pix
21fc0 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 els_size);........a->pixels.=.NU
21fe0 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 40 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 LL;......}...@..a->pixels.=.make
22000 5f 73 68 6d 28 61 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 26 61 2d 3e 62 75 66 2c 20 26 61 2d _shm(a,.a->w,.a->h,.&a->buf,.&a-
22020 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 >pixels_size);....}.......Fstati
22040 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 c.void.xs_cfg(void.*d,.struct.xd
22060 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 g_surface.*xs,.uint32_t.serial).
22080 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 {......struct.app.*a.=.d;...(..x
220a0 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 dg_surface_ack_configure(xs,.ser
220c0 69 61 6c 29 3b 00 00 00 2d 20 20 69 66 20 28 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3e 20 30 20 ial);...-..if.(a->pending_w.>.0.
220e0 26 26 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 20 3e 20 30 29 20 7b 00 00 00 18 20 20 20 20 61 2d &&.a->pending_h.>.0).{........a-
22100 3e 77 20 3d 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3b 00 00 00 18 20 20 20 20 61 2d 3e 68 20 3d >w.=.a->pending_w;........a->h.=
22120 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 .a->pending_h;........a->pending
22140 5f 77 20 3d 20 30 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 20 3d 20 30 3b _w.=.0;........a->pending_h.=.0;
22160 00 00 00 03 20 20 7d 00 00 00 15 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 ......}......if.(!a->configured)
22180 00 00 00 19 20 20 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 ........a->configured.=.true;...
221a0 0f 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 0c 20 20 72 65 64 72 61 77 28 61 29 3b ...alloc_buf(a);......redraw(a);
221c0 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 ....}...Mstatic.const.struct.xdg
221e0 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 _surface_listener.xs_listener.=.
22200 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 4a 73 74 {.configure.=.xs_cfg};.......Jst
22220 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 atic.void.xt_cfg(void.*d,.struct
22240 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e .xdg_toplevel.*xt,.int32_t.w,.in
22260 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 t32_t.h,...(...................s
22280 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 truct.wl_array.*s).{......struct
222a0 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 17 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 .app.*a.=.d;......if.(w.>.0.&&.h
222c0 20 3e 20 30 29 20 7b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3d 20 77 3b .>.0).{........a->pending_w.=.w;
222e0 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 20 3d 20 68 3b 00 00 00 03 20 20 7d ........a->pending_h.=.h;......}
22300 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f ....}...Cstatic.void.xt_close(vo
22320 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 id.*d,.struct.xdg_toplevel.*xt).
22340 7b 20 65 78 69 74 28 30 29 3b 20 7d 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 {.exit(0);.}...Mstatic.const.str
22360 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 uct.xdg_toplevel_listener.xt_lis
22380 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 00 tener.=.{.configure.=.xt_cfg,...
223a0 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 L...............................
223c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 ...........................close
223e0 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 .=.xt_close};.......Jstatic.void
22400 20 64 73 5f 74 61 72 67 65 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 .ds_target(void.*d,.struct.wl_da
22420 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 29 20 7b 7d 00 ta_source.*s,.const.char.*m).{}.
22440 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 73 65 6e 64 28 76 6f 69 64 20 2a 64 2c 20 ..Estatic.void.ds_send(void.*d,.
22460 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 struct.wl_data_source.*s,.const.
22480 63 68 61 72 20 2a 6d 2c 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.*m,...!....................
224a0 69 6e 74 33 32 5f 74 20 66 64 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 int32_t.fd).{......struct.app.*a
224c0 20 3d 20 64 3b 00 00 00 2c 20 20 77 72 69 74 65 28 66 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 .=.d;...,..write(fd,.a->clipboar
224e0 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 d,.a->clipboard_len);......close
22500 28 66 64 29 3b 00 00 00 01 7d 00 00 00 3d 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 63 61 6e (fd);....}...=static.void.ds_can
22520 63 65 6c 6c 65 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 celled(void.*d,.struct.wl_data_s
22540 6f 75 72 63 65 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d ource.*s).{......struct.app.*a.=
22560 20 64 3b 00 00 00 0e 20 20 69 66 20 28 61 2d 3e 64 73 29 20 7b 00 00 00 22 20 20 20 20 77 6c 5f .d;......if.(a->ds).{..."....wl_
22580 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b 00 00 00 11 20 data_source_destroy(a->ds);.....
225a0 20 20 20 61 2d 3e 64 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 3b ...a->ds.=.NULL;......}....}...;
225c0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 static.const.struct.wl_data_sour
225e0 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 73 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 45 20 ce_listener.ds_listener.=.{...E.
22600 20 20 20 2e 74 61 72 67 65 74 20 3d 20 64 73 5f 74 61 72 67 65 74 2c 20 2e 73 65 6e 64 20 3d 20 ....target.=.ds_target,..send.=.
22620 64 73 5f 73 65 6e 64 2c 20 2e 63 61 6e 63 65 6c 6c 65 64 20 3d 20 64 73 5f 63 61 6e 63 65 6c 6c ds_send,..cancelled.=.ds_cancell
22640 65 64 7d 3b 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6f 66 66 65 72 ed};.......8static.void.dd_offer
22660 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 (void.*d,.struct.wl_data_device.
22680 2a 64 64 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 *dd,...0.....................str
226a0 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 44 73 74 61 74 uct.wl_data_offer.*o).{}...Dstat
226c0 69 63 20 76 6f 69 64 20 64 64 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 ic.void.dd_enter(void.*d,.struct
226e0 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c .wl_data_device.*dd,.uint32_t.s,
22700 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 ...G.....................struct.
22720 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c wl_surface.*su,.wl_fixed_t.x,.wl
22740 5f 66 69 78 65 64 5f 74 20 79 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _fixed_t.y,...0.................
22760 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 ....struct.wl_data_offer.*o).{}.
22780 00 00 3b 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c ..;static.void.dd_leave(void.*d,
227a0 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 .struct.wl_data_device.*dd).{}..
227c0 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c .Estatic.void.dd_motion(void.*d,
227e0 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 20 75 69 6e 74 .struct.wl_data_device.*dd,.uint
22800 33 32 5f 74 20 74 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.t,...4.....................
22820 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 .wl_fixed_t.x,.wl_fixed_t.y).{}.
22840 00 00 3a 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 64 72 6f 70 28 76 6f 69 64 20 2a 64 2c 20 ..:static.void.dd_drop(void.*d,.
22860 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 struct.wl_data_device.*dd).{}...
22880 3c 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 28 76 6f 69 64 20 2a <static.void.dd_selection(void.*
228a0 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 00 00 00 d,.struct.wl_data_device.*dd,...
228c0 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 4.........................struct
228e0 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 63 20 .wl_data_offer.*o).{}...;static.
22900 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6c 69 73 74 const.struct.wl_data_device_list
22920 65 6e 65 72 20 64 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 2e 64 61 74 ener.dd_listener.=.{.........dat
22940 61 5f 6f 66 66 65 72 20 3d 20 64 64 5f 6f 66 66 65 72 2c 00 00 00 16 20 20 20 20 2e 65 6e 74 65 a_offer.=.dd_offer,.........ente
22960 72 20 3d 20 64 64 5f 65 6e 74 65 72 2c 00 00 00 16 20 20 20 20 2e 6c 65 61 76 65 20 3d 20 64 64 r.=.dd_enter,.........leave.=.dd
22980 5f 6c 65 61 76 65 2c 00 00 00 18 20 20 20 20 2e 6d 6f 74 69 6f 6e 20 3d 20 64 64 5f 6d 6f 74 69 _leave,.........motion.=.dd_moti
229a0 6f 6e 2c 00 00 00 14 20 20 20 20 2e 64 72 6f 70 20 3d 20 64 64 5f 64 72 6f 70 2c 00 00 00 1f 20 on,.........drop.=.dd_drop,.....
229c0 20 20 20 2e 73 65 6c 65 63 74 69 6f 6e 20 3d 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 7d 3b 00 00 ....selection.=.dd_selection};..
229e0 00 00 00 00 00 40 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 65 6e 74 65 72 28 76 6f 69 64 .....@static.void.ptr_enter(void
22a00 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 .*d,.struct.wl_pointer.*p,.uint3
22a20 32 5f 74 20 73 2c 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2_t.s,...K......................
22a40 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 69 78 65 64 5f struct.wl_surface.*su,.wl_fixed_
22a60 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 40 73 74 61 74 69 63 20 t.x,.wl_fixed_t.y).{}...@static.
22a80 76 6f 69 64 20 70 74 72 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 void.ptr_leave(void.*d,.struct.w
22aa0 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 2f 20 20 20 l_pointer.*p,.uint32_t.s,.../...
22ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 ...................struct.wl_sur
22ae0 66 61 63 65 20 2a 73 75 29 20 7b 7d 00 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f face.*su).{}...Ostatic.void.ptr_
22b00 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 motion(void.*d,.struct.wl_pointe
22b20 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 00 r.*p,.uint32_t.t,.wl_fixed_t.x,.
22b40 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 ..&.......................wl_fix
22b60 65 64 5f 74 20 79 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 ed_t.y).{......struct.app.*a.=.d
22b80 3b 00 00 00 22 20 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3d 20 77 6c 5f 66 69 78 65 64 5f 74 6f 5f ;..."..a->mouse_x.=.wl_fixed_to_
22ba0 69 6e 74 28 78 29 3b 00 00 00 22 20 20 61 2d 3e 6d 6f 75 73 65 5f 79 20 3d 20 77 6c 5f 66 69 78 int(x);..."..a->mouse_y.=.wl_fix
22bc0 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b 00 00 00 22 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d ed_to_int(y);..."..if.(a->open_m
22be0 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 32 20 20 20 20 69 6e 74 20 69 enu.!=.MENU_NONE).{...2....int.i
22c00 74 20 3d 20 69 74 65 6d 5f 61 74 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 61 2d 3e t.=.item_at(a,.a->open_menu,.a->
22c20 6d 6f 75 73 65 5f 79 29 3b 00 00 00 20 20 20 20 20 69 66 20 28 69 74 20 21 3d 20 61 2d 3e 68 6f mouse_y);........if.(it.!=.a->ho
22c40 76 65 72 65 64 5f 69 74 65 6d 29 20 7b 00 00 00 1b 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 vered_item).{..........a->hovere
22c60 64 5f 69 74 65 6d 20 3d 20 69 74 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b d_item.=.it;..........redraw(a);
22c80 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 ..........return;........}......
22ca0 7d 00 00 00 1d 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 61 72 5f 79 28 61 }......if.(a->mouse_y.>=.bar_y(a
22cc0 29 29 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 46 73 74 61 ))........redraw(a);....}...Fsta
22ce0 74 69 63 20 76 6f 69 64 20 70 74 72 5f 62 75 74 74 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 tic.void.ptr_button(void.*d,.str
22d00 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 uct.wl_pointer.*p,.uint32_t.seri
22d20 61 6c 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 al,...B.......................ui
22d40 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 62 74 6e 2c 20 75 69 6e 74 33 32 5f 74 nt32_t.t,.uint32_t.btn,.uint32_t
22d60 20 73 74 61 74 65 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 .state).{......struct.app.*a.=.d
22d80 3b 00 00 00 2f 20 20 69 66 20 28 73 74 61 74 65 20 21 3d 20 57 4c 5f 50 4f 49 4e 54 45 52 5f 42 ;.../..if.(state.!=.WL_POINTER_B
22da0 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 00 00 00 0b 20 20 20 20 72 65 74 75 UTTON_STATE_PRESSED)........retu
22dc0 72 6e 3b 00 00 00 1a 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 20 3d 20 73 65 72 69 61 6c rn;......a->last_serial.=.serial
22de0 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f 79 28 61 29 3b 00 00 00 00 00 00 00 ;......int.by.=.bar_y(a);.......
22e00 22 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 "..if.(a->open_menu.!=.MENU_NONE
22e20 29 20 7b 00 00 00 32 20 20 20 20 69 6e 74 20 69 74 20 3d 20 69 74 65 6d 5f 61 74 28 61 2c 20 61 ).{...2....int.it.=.item_at(a,.a
22e40 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 12 20 20 20 ->open_menu,.a->mouse_y);.......
22e60 20 69 66 20 28 69 74 20 3e 3d 20 30 29 20 7b 00 00 00 25 20 20 20 20 20 20 66 69 72 65 5f 69 74 .if.(it.>=.0).{...%......fire_it
22e80 65 6d 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 69 74 29 3b 00 00 00 0d 20 20 20 20 em(a,.a->open_menu,.it);........
22ea0 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1b 20 20 20 20 69 66 20 28 61 2d ..return;........}........if.(a-
22ec0 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 29 20 7b 00 00 00 23 20 20 20 20 20 20 66 6f 72 20 28 >mouse_y.>=.by).{...#......for.(
22ee0 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 29 20 20 20 20 int.i.=.0;.i.<.2;.i++).{...)....
22f00 20 20 20 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f ....int.bx.=.btn_x(i),.bw.=.btn_
22f20 77 28 69 29 3b 00 00 00 37 20 20 20 20 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 w(i);...7........if.(a->mouse_x.
22f40 3e 3d 20 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 29 20 7b >=.bx.&&.a->mouse_x.<.bx.+.bw).{
22f60 00 00 00 23 20 20 20 20 20 20 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 28 4d 65 ...#..........a->open_menu.=.(Me
22f80 6e 75 49 64 29 69 3b 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f nuId)i;..............a->hovered_
22fa0 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 72 65 64 72 61 77 28 61 item.=.-1;..............redraw(a
22fc0 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 09 20 20 20 20 20 );..............return;.........
22fe0 20 20 20 7d 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 ...}..........}........}........
23000 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 19 20 20 20 a->open_menu.=.MENU_NONE;.......
23020 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 0e 20 20 20 20 72 65 .a->hovered_item.=.-1;........re
23040 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 draw(a);........return;......}..
23060 00 00 00 00 00 19 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 29 20 7b 00 ........if.(a->mouse_y.>=.by).{.
23080 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b ..!....for.(int.i.=.0;.i.<.2;.i+
230a0 2b 29 20 7b 00 00 00 27 20 20 20 20 20 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 29 2c +).{...'......int.bx.=.btn_x(i),
230c0 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 35 20 20 20 20 20 20 69 66 20 28 61 2d 3e .bw.=.btn_w(i);...5......if.(a->
230e0 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c 20 62 78 mouse_x.>=.bx.&&.a->mouse_x.<.bx
23100 20 2b 20 62 77 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 .+.bw).{...!........a->open_menu
23120 20 3d 20 28 4d 65 6e 75 49 64 29 69 3b 00 00 00 1d 20 20 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 .=.(MenuId)i;............a->hove
23140 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 12 20 20 20 20 20 20 20 20 72 65 64 72 61 77 red_item.=.-1;............redraw
23160 28 61 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 07 20 20 20 20 20 (a);............return;.........
23180 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 .}........}........return;......
231a0 7d 00 00 00 00 00 00 00 49 20 20 69 6e 74 20 63 78 20 3d 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 }.......I..int.cx.=.(a->mouse_x.
231c0 2d 20 50 41 44 29 20 2f 20 63 65 6c 6c 5f 77 2c 20 63 79 20 3d 20 28 61 2d 3e 6d 6f 75 73 65 5f -.PAD)./.cell_w,.cy.=.(a->mouse_
231e0 79 20 2d 20 50 41 44 29 20 2f 20 63 65 6c 6c 5f 68 3b 00 00 00 20 20 20 69 6e 74 20 70 6f 73 20 y.-.PAD)./.cell_h;......int.pos.
23200 3d 20 30 2c 20 63 6f 6c 20 3d 20 30 2c 20 72 6f 77 20 3d 20 30 3b 00 00 00 22 20 20 66 6f 72 20 =.0,.col.=.0,.row.=.0;..."..for.
23220 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 6c 65 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 21 (int.i.=.0;.i.<.tlen;.i++).{...!
23240 20 20 20 20 69 66 20 28 72 6f 77 20 3d 3d 20 63 79 20 26 26 20 63 6f 6c 20 3d 3d 20 63 78 29 20 ....if.(row.==.cy.&&.col.==.cx).
23260 7b 00 00 00 0e 20 20 20 20 20 20 70 6f 73 20 3d 20 69 3b 00 00 00 11 20 20 20 20 20 20 67 6f 74 {..........pos.=.i;..........got
23280 6f 20 66 6f 75 6e 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 20 20 69 66 20 28 74 65 78 o.found;........}........if.(tex
232a0 74 5b 69 5d 20 3d 3d 20 27 5c 6e 27 29 20 7b 00 00 00 16 20 20 20 20 20 20 69 66 20 28 72 6f 77 t[i].==.'\n').{..........if.(row
232c0 20 3d 3d 20 63 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 20 20 70 6f 73 20 3d 20 69 3b 00 00 00 .==.cy).{............pos.=.i;...
232e0 13 20 20 20 20 20 20 20 20 67 6f 74 6f 20 66 6f 75 6e 64 3b 00 00 00 07 20 20 20 20 20 20 7d 00 .........goto.found;..........}.
23300 00 00 0e 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 0c 20 20 20 20 20 20 72 6f 77 2b 2b .........col.=.0;..........row++
23320 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 0c 20 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 ;........}.else..........col++;.
23340 00 00 03 20 20 7d 00 00 00 0d 20 20 70 6f 73 20 3d 20 74 6c 65 6e 3b 00 00 00 06 66 6f 75 6e 64 .....}......pos.=.tlen;....found
23360 3a 00 00 00 0f 20 20 63 75 72 73 6f 72 20 3d 20 70 6f 73 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e :......cursor.=.pos;......sel_an
23380 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 0c 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 chor.=.-1;......redraw(a);....}.
233a0 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 28 76 6f 69 64 20 2a 64 2c ..Nstatic.void.ptr_axis(void.*d,
233c0 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 .struct.wl_pointer.*p,.uint32_t.
233e0 74 2c 20 75 69 6e 74 33 32 5f 74 20 61 78 69 73 2c 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 t,.uint32_t.axis,...%...........
23400 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 76 29 20 7b 7d 00 00 00 37 73 74 ..........wl_fixed_t.v).{}...7st
23420 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 66 72 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 atic.void.ptr_frame(void.*d,.str
23440 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 29 20 7b 7d 00 00 00 4b 73 74 61 74 69 63 20 uct.wl_pointer.*p).{}...Kstatic.
23460 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 void.ptr_axis_source(void.*d,.st
23480 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 72 63 ruct.wl_pointer.*p,.uint32_t.src
234a0 29 20 7b 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 73 74 6f ).{}...Dstatic.void.ptr_axis_sto
234c0 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c p(void.*d,.struct.wl_pointer.*p,
234e0 20 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .uint32_t.t,...+................
23500 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 61 78 69 73 29 20 7b 7d 00 00 00 4b 73 ..........uint32_t.axis).{}...Ks
23520 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 64 69 73 63 72 65 74 65 28 76 6f 69 tatic.void.ptr_axis_discrete(voi
23540 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 d.*d,.struct.wl_pointer.*p,.uint
23560 33 32 5f 74 20 61 78 69 73 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.axis,......................
23580 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 64 69 73 63 29 20 7b 7d 00 00 00 38 ............int32_t.disc).{}...8
235a0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 6c static.const.struct.wl_pointer_l
235c0 69 73 74 65 6e 65 72 20 70 74 72 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 17 20 20 20 20 istener.ptr_listener.=.{........
235e0 2e 65 6e 74 65 72 20 3d 20 70 74 72 5f 65 6e 74 65 72 2c 00 00 00 17 20 20 20 20 2e 6c 65 61 76 .enter.=.ptr_enter,.........leav
23600 65 20 3d 20 70 74 72 5f 6c 65 61 76 65 2c 00 00 00 19 20 20 20 20 2e 6d 6f 74 69 6f 6e 20 3d 20 e.=.ptr_leave,.........motion.=.
23620 70 74 72 5f 6d 6f 74 69 6f 6e 2c 00 00 00 19 20 20 20 20 2e 62 75 74 74 6f 6e 20 3d 20 70 74 72 ptr_motion,.........button.=.ptr
23640 5f 62 75 74 74 6f 6e 2c 00 00 00 15 20 20 20 20 2e 61 78 69 73 20 3d 20 70 74 72 5f 61 78 69 73 _button,.........axis.=.ptr_axis
23660 2c 00 00 00 17 20 20 20 20 2e 66 72 61 6d 65 20 3d 20 70 74 72 5f 66 72 61 6d 65 2c 00 00 00 23 ,.........frame.=.ptr_frame,...#
23680 20 20 20 20 2e 61 78 69 73 5f 73 6f 75 72 63 65 20 3d 20 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 .....axis_source.=.ptr_axis_sour
236a0 63 65 2c 00 00 00 1f 20 20 20 20 2e 61 78 69 73 5f 73 74 6f 70 20 3d 20 70 74 72 5f 61 78 69 73 ce,.........axis_stop.=.ptr_axis
236c0 5f 73 74 6f 70 2c 00 00 00 27 20 20 20 20 2e 61 78 69 73 5f 64 69 73 63 72 65 74 65 20 3d 20 70 _stop,...'.....axis_discrete.=.p
236e0 74 72 5f 61 78 69 73 5f 64 69 73 63 72 65 74 65 2c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 50 73 tr_axis_discrete,....};.......Ps
23700 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 6d 61 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 tatic.void.kb_keymap(void.*d,.st
23720 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 66 ruct.wl_keyboard.*kb,.uint32_t.f
23740 6d 74 2c 20 69 6e 74 33 32 5f 74 20 66 64 2c 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 20 mt,.int32_t.fd,...&.............
23760 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 14 20 20 73 .........uint32_t.size).{......s
23780 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 30 20 20 69 66 20 28 66 6d 74 20 21 truct.app.*a.=.d;...0..if.(fmt.!
237a0 3d 20 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 58 4b 42 5f =.WL_KEYBOARD_KEYMAP_FORMAT_XKB_
237c0 56 31 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0b 20 20 20 20 72 V1).{........close(fd);........r
237e0 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 3c 20 20 63 68 61 72 20 2a 73 20 3d 20 6d 6d 61 eturn;......}...<..char.*s.=.mma
23800 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 2c 20 4d 41 50 5f 50 52 49 p(NULL,.size,.PROT_READ,.MAP_PRI
23820 56 41 54 45 2c 20 66 64 2c 20 30 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 VATE,.fd,.0);......close(fd);...
23840 16 20 20 69 66 20 28 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 00 00 00 0b 20 20 20 20 72 ...if.(s.==.MAP_FAILED)........r
23860 65 74 75 72 6e 3b 00 00 00 15 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 7b 00 eturn;......if.(a->xkb_state).{.
23880 00 00 22 20 20 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 73 74 .."....xkb_state_unref(a->xkb_st
238a0 61 74 65 29 3b 00 00 00 18 20 20 20 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 20 3d 20 4e 55 4c 4c ate);........a->xkb_state.=.NULL
238c0 3b 00 00 00 03 20 20 7d 00 00 00 16 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 ;......}......if.(a->xkb_keymap)
238e0 20 7b 00 00 00 24 20 20 20 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 75 6e 72 65 66 28 61 2d 3e 78 6b .{...$....xkb_keymap_unref(a->xk
23900 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 19 20 20 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 20 b_keymap);........a->xkb_keymap.
23920 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2d 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 =.NULL;......}...-..a->xkb_keyma
23940 70 20 3d 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 72 6f 6d 5f 73 74 72 69 6e 67 28 00 p.=.xkb_keymap_new_from_string(.
23960 00 00 4d 20 20 20 20 20 20 61 2d 3e 78 6b 62 5f 63 74 78 2c 20 73 2c 20 58 4b 42 5f 4b 45 59 4d ..M......a->xkb_ctx,.s,.XKB_KEYM
23980 41 50 5f 46 4f 52 4d 41 54 5f 54 45 58 54 5f 56 31 2c 20 58 4b 42 5f 4b 45 59 4d 41 50 5f 43 4f AP_FORMAT_TEXT_V1,.XKB_KEYMAP_CO
239a0 4d 50 49 4c 45 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 12 20 20 6d 75 6e 6d 61 70 28 73 2c 20 MPILE_NO_FLAGS);......munmap(s,.
239c0 73 69 7a 65 29 3b 00 00 00 14 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 00 00 size);......if.(a->xkb_keymap)..
239e0 00 30 20 20 20 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6e .0....a->xkb_state.=.xkb_state_n
23a00 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 01 7d 00 00 00 41 73 74 61 74 69 ew(a->xkb_keymap);....}...Astati
23a20 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 c.void.kb_enter(void.*d,.struct.
23a40 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 42 wl_keyboard.*kb,.uint32_t.s,...B
23a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 .....................struct.wl_s
23a80 75 72 66 61 63 65 20 2a 73 75 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 6b 29 20 urface.*su,.struct.wl_array.*k).
23aa0 7b 7d 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6c 65 61 76 65 28 76 6f 69 64 20 {}...Astatic.void.kb_leave(void.
23ac0 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 *d,.struct.wl_keyboard.*kb,.uint
23ae0 33 32 5f 74 20 73 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32_t.s,...-.....................
23b00 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 00 00 00 14 20 20 73 74 struct.wl_surface.*su).{......st
23b20 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 69 74 69 ruct.app.*a.=.d;......struct.iti
23b40 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 2e 20 20 74 69 6d 65 72 66 64 5f 73 merspec.ts.=.{0};......timerfd_s
23b60 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e 55 4c ettime(a->repeat_fd,.0,.&ts,.NUL
23b80 4c 29 3b 00 00 00 01 7d 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 28 76 L);....}...Pstatic.void.kb_key(v
23ba0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 oid.*d,.struct.wl_keyboard.*kb,.
23bc0 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 32 uint32_t.serial,.uint32_t.t,...2
23be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 6b 65 79 2c ...................uint32_t.key,
23c00 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 .uint32_t.state).{......struct.a
23c20 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1a 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 20 3d pp.*a.=.d;......a->last_serial.=
23c40 20 73 65 72 69 61 6c 3b 00 00 00 2f 20 20 69 66 20 28 73 74 61 74 65 20 3d 3d 20 57 4c 5f 4b 45 .serial;.../..if.(state.==.WL_KE
23c60 59 42 4f 41 52 44 5f 4b 45 59 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 20 7b 00 00 00 18 20 YBOARD_KEY_STATE_PRESSED).{.....
23c80 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 61 2c 20 6b 65 79 29 3b 00 00 00 18 20 20 20 20 61 ...process_key(a,.key);........a
23ca0 2d 3e 72 65 70 65 61 74 5f 6b 65 79 20 3d 20 6b 65 79 3b 00 00 00 1d 20 20 20 20 69 66 20 28 61 ->repeat_key.=.key;........if.(a
23cc0 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 20 3e 20 30 29 20 7b 00 00 00 1e 20 20 20 20 20 20 73 74 ->repeat_rate.>.0).{..........st
23ce0 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 00 00 00 38 20 20 20 20 20 20 ruct.itimerspec.ts.=.{...8......
23d00 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 3d 20 7b 2e 74 76 5f 73 65 63 20 3d 20 61 2d 3e 72 65 .....it_value.=.{.tv_sec.=.a->re
23d20 70 65 61 74 5f 64 65 6c 61 79 20 2f 20 31 30 30 30 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 peat_delay./.1000,...G..........
23d40 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 74 76 5f 6e 73 65 63 20 3d 20 28 61 2d 3e 72 65 70 65 ..............tv_nsec.=.(a->repe
23d60 61 74 5f 64 65 6c 61 79 20 25 20 31 30 30 30 29 20 2a 20 31 30 30 30 30 30 30 4c 7d 2c 00 00 00 at_delay.%.1000).*.1000000L},...
23d80 50 20 20 20 20 20 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 6c 20 3d 20 7b 2e 74 76 5f 73 P...........it_interval.=.{.tv_s
23da0 65 63 20 3d 20 30 2c 20 2e 74 76 5f 6e 73 65 63 20 3d 20 31 30 30 30 30 30 30 30 30 30 4c 20 2f ec.=.0,..tv_nsec.=.1000000000L./
23dc0 20 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 7d 2c 00 00 00 08 20 20 20 20 20 20 7d 3b 00 00 00 .a->repeat_rate},..........};...
23de0 32 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 2......timerfd_settime(a->repeat
23e00 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0a _fd,.0,.&ts,.NULL);........}....
23e20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 1f 20 20 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 ..}.else.{........struct.itimers
23e40 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 30 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 pec.ts.=.{0};...0....timerfd_set
23e60 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 time(a->repeat_fd,.0,.&ts,.NULL)
23e80 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f ;......}....}...Estatic.void.kb_
23ea0 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 modifiers(void.*d,.struct.wl_key
23ec0 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 45 20 20 20 20 20 20 board.*kb,.uint32_t.s,...E......
23ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 64 65 70 2c ...................uint32_t.dep,
23f00 20 75 69 6e 74 33 32 5f 74 20 6c 61 74 2c 20 75 69 6e 74 33 32 5f 74 20 6c 6f 63 6b 65 64 2c 00 .uint32_t.lat,.uint32_t.locked,.
23f20 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 ..(.........................uint
23f40 33 32 5f 74 20 67 72 70 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 32_t.grp).{......struct.app.*a.=
23f60 20 64 3b 00 00 00 13 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 00 00 00 45 20 20 .d;......if.(a->xkb_state)...E..
23f80 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d 61 73 6b 28 61 2d 3e 78 6b 62 5f 73 ..xkb_state_update_mask(a->xkb_s
23fa0 74 61 74 65 2c 20 64 65 70 2c 20 6c 61 74 2c 20 6c 6f 63 6b 65 64 2c 20 30 2c 20 30 2c 20 67 72 tate,.dep,.lat,.locked,.0,.0,.gr
23fc0 70 29 3b 00 00 00 01 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 72 65 70 65 61 p);....}...Dstatic.void.kb_repea
23fe0 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b t(void.*d,.struct.wl_keyboard.*k
24000 62 2c 20 69 6e 74 33 32 5f 74 20 72 61 74 65 2c 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 b,.int32_t.rate,...&............
24020 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 64 65 6c 61 79 29 20 7b 00 00 00 14 20 20 ..........int32_t.delay).{......
24040 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 18 20 20 61 2d 3e 72 65 70 65 61 struct.app.*a.=.d;......a->repea
24060 74 5f 72 61 74 65 20 3d 20 72 61 74 65 3b 00 00 00 1a 20 20 61 2d 3e 72 65 70 65 61 74 5f 64 65 t_rate.=.rate;......a->repeat_de
24080 6c 61 79 20 3d 20 64 65 6c 61 79 3b 00 00 00 01 7d 00 00 00 3e 73 74 61 74 69 63 20 63 6f 6e 73 lay.=.delay;....}...>static.cons
240a0 74 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 6b 65 t.struct.wl_keyboard_listener.ke
240c0 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 18 20 20 20 20 2e 6b 65 79 6d yboard_listener.=.{.........keym
240e0 61 70 20 3d 20 6b 62 5f 6b 65 79 6d 61 70 2c 00 00 00 16 20 20 20 20 2e 65 6e 74 65 72 20 3d 20 ap.=.kb_keymap,.........enter.=.
24100 6b 62 5f 65 6e 74 65 72 2c 00 00 00 16 20 20 20 20 2e 6c 65 61 76 65 20 3d 20 6b 62 5f 6c 65 61 kb_enter,.........leave.=.kb_lea
24120 76 65 2c 00 00 00 12 20 20 20 20 2e 6b 65 79 20 3d 20 6b 62 5f 6b 65 79 2c 00 00 00 1e 20 20 20 ve,.........key.=.kb_key,.......
24140 20 2e 6d 6f 64 69 66 69 65 72 73 20 3d 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 2c 00 00 00 1e 20 ..modifiers.=.kb_modifiers,.....
24160 20 20 20 2e 72 65 70 65 61 74 5f 69 6e 66 6f 20 3d 20 6b 62 5f 72 65 70 65 61 74 7d 3b 00 00 00 ....repeat_info.=.kb_repeat};...
24180 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f 63 61 70 73 28 76 6f 69 64 20 ....Estatic.void.seat_caps(void.
241a0 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 20 75 69 6e 74 33 32 *d,.struct.wl_seat.*seat,.uint32
241c0 5f 74 20 63 61 70 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 _t.caps).{......struct.app.*a.=.
241e0 64 3b 00 00 00 3d 20 20 69 66 20 28 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 41 50 41 d;...=..if.((caps.&.WL_SEAT_CAPA
24200 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 21 61 2d 3e 6b 65 79 62 6f 61 72 64 BILITY_KEYBOARD).&&.!a->keyboard
24220 29 20 7b 00 00 00 2d 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 20 3d 20 77 6c 5f 73 65 61 74 ).{...-....a->keyboard.=.wl_seat
24240 5f 67 65 74 5f 6b 65 79 62 6f 61 72 64 28 73 65 61 74 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 6b _get_keyboard(seat);...A....wl_k
24260 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 6b 65 79 62 6f 61 72 64 eyboard_add_listener(a->keyboard
24280 2c 20 26 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 44 20 20 7d ,.&keyboard_listener,.a);...D..}
242a0 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 .else.if.(!(caps.&.WL_SEAT_CAPAB
242c0 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 61 2d 3e 6b 65 79 62 6f 61 72 64 29 20 ILITY_KEYBOARD).&&.a->keyboard).
242e0 7b 00 00 00 25 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 72 65 6c 65 61 73 65 28 61 2d 3e {...%....wl_keyboard_release(a->
24300 6b 65 79 62 6f 61 72 64 29 3b 00 00 00 17 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 72 64 20 3d 20 keyboard);........a->keyboard.=.
24320 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 3b 20 20 69 66 20 28 28 63 61 70 73 20 26 20 57 4c NULL;......}...;..if.((caps.&.WL
24340 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 20 26 26 20 21 61 2d _SEAT_CAPABILITY_POINTER).&&.!a-
24360 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 2b 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 20 3d 20 >pointer).{...+....a->pointer.=.
24380 77 6c 5f 73 65 61 74 5f 67 65 74 5f 70 6f 69 6e 74 65 72 28 73 65 61 74 29 3b 00 00 00 3a 20 20 wl_seat_get_pointer(seat);...:..
243a0 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 70 6f 69 ..wl_pointer_add_listener(a->poi
243c0 6e 74 65 72 2c 20 26 70 74 72 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 42 20 20 7d 20 nter,.&ptr_listener,.a);...B..}.
243e0 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 else.if.(!(caps.&.WL_SEAT_CAPABI
24400 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 20 26 26 20 61 2d 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 LITY_POINTER).&&.a->pointer).{..
24420 00 23 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 65 6c 65 61 73 65 28 61 2d 3e 70 6f 69 6e .#....wl_pointer_release(a->poin
24440 74 65 72 29 3b 00 00 00 16 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 20 3d 20 4e 55 4c 4c 3b 00 ter);........a->pointer.=.NULL;.
24460 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f .....}....}...Istatic.void.seat_
24480 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 name(void.*d,.struct.wl_seat.*se
244a0 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29 20 7b 7d 00 00 00 50 73 74 61 74 at,.const.char.*name).{}...Pstat
244c0 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 ic.const.struct.wl_seat_listener
244e0 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 61 70 61 62 69 6c 69 74 69 65 73 20 .seat_listener.=.{.capabilities.
24500 3d 20 73 65 61 74 5f 63 61 70 73 2c 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.seat_caps,...I................
24520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24540 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d 20 73 65 61 74 5f 6e 61 6d 65 7d 3b 00 00 00 00 00 00 00 .......name.=.seat_name};.......
24560 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c Cstatic.void.reg_global(void.*d,
24580 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 .struct.wl_registry.*r,.uint32_t
245a0 20 69 64 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 .id,...7.......................c
245c0 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 onst.char.*iface,.uint32_t.v).{.
245e0 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 26 20 20 69 66 20 .....struct.app.*a.=.d;...&..if.
24600 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 (!strcmp(iface,."wl_compositor")
24620 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 )...C....a->comp.=.wl_registry_b
24640 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 ind(r,.id,.&wl_compositor_interf
24660 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.4);...$..else.if.(!strcmp(i
24680 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d face,."wl_shm"))...;....a->shm.=
246a0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d .wl_registry_bind(r,.id,.&wl_shm
246c0 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 20 65 6c 73 65 20 69 66 20 28 21 73 _interface,.1);...+..else.if.(!s
246e0 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 trcmp(iface,."xdg_wm_base")).{..
24700 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .?....a->wm.=.wl_registry_bind(r
24720 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 ,.id,.&xdg_wm_base_interface,.1)
24740 3b 00 00 00 35 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 ;...5....xdg_wm_base_add_listene
24760 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 29 20 20 r(a->wm,.&wm_listener,.a);...)..
24780 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 65 }.else.if.(!strcmp(iface,."wl_se
247a0 61 74 22 29 29 20 7b 00 00 00 3d 20 20 20 20 61 2d 3e 73 65 61 74 20 3d 20 77 6c 5f 72 65 67 69 at")).{...=....a->seat.=.wl_regi
247c0 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 65 61 74 5f 69 6e 74 65 72 66 stry_bind(r,.id,.&wl_seat_interf
247e0 61 63 65 2c 20 35 29 3b 00 00 00 35 20 20 20 20 77 6c 5f 73 65 61 74 5f 61 64 64 5f 6c 69 73 74 ace,.5);...5....wl_seat_add_list
24800 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 20 26 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 2c 20 61 29 ener(a->seat,.&seat_listener,.a)
24820 3b 00 00 00 36 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c ;...6..}.else.if.(!strcmp(iface,
24840 20 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 22 29 29 00 00 00 4b 20 ."wl_data_device_manager"))...K.
24860 20 20 20 61 2d 3e 64 64 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 ...a->ddm.=.wl_registry_bind(r,.
24880 69 64 2c 20 26 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 69 6e 74 65 id,.&wl_data_device_manager_inte
248a0 72 66 61 63 65 2c 20 33 29 3b 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 rface,.3);....}...Fstatic.void.r
248c0 65 67 5f 72 65 6d 6f 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 eg_remove(void.*d,.struct.wl_reg
248e0 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 29 20 7b 7d 00 00 00 39 73 74 61 istry.*r,.uint32_t.id).{}...9sta
24900 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 tic.const.struct.wl_registry_lis
24920 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 37 20 20 20 20 2e 67 tener.reg_listener.=.{...7.....g
24940 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 2c 20 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f lobal.=.reg_global,..global_remo
24960 76 65 20 3d 20 72 65 67 5f 72 65 6d 6f 76 65 7d 3b 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 ve.=.reg_remove};........int.mai
24980 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 6c 6f 61 64 5f 66 6f 6e 74 28 29 29 n(void).{......if.(!load_font())
249a0 20 7b 00 00 00 3c 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 66 61 69 6c 65 .{...<....fprintf(stderr,."faile
249c0 64 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 d.to.load.font:.%s\n",.FONT_NAME
249e0 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 );........return.1;......}......
24a00 00 00 35 81 f5 18 00 00 00 00 10 00 00 00 0a 00 00 00 0e 04 00 00 00 00 00 00 0c 04 00 00 03 00 ..5.............................
24a20 00 00 8e 01 00 00 00 00 00 00 96 75 00 00 00 00 00 00 94 75 00 00 00 00 00 00 35 81 5f d0 00 00 ...........u.......u......5._...
24a40 00 0e 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 04 1d 00 00 00 00 00 00 00 00 ff ff ................................
24a60 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24bc0 69 9f c7 7e 04 01 00 00 00 00 00 f5 18 00 00 04 1e 00 00 04 26 00 00 04 6b 00 00 00 01 00 00 00 i..~................&...k.......
24be0 02 20 20 f5 18 00 00 04 1f 00 00 04 20 00 00 04 6b 00 00 00 00 f5 18 00 00 04 1d 00 00 04 20 00 ................k...............
24c00 00 04 6a 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 04 1d 00 00 04 1f 00 00 04 69 00 00 00 00 35 ..j.......................i....5
24c20 81 f5 18 00 00 00 00 1d 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 23 ...............................#
24c40 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 1d 04 00 w...............................
24c60 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 23 77 00 00 00 00 00 00 02 00 00 .....................#w.........
24c80 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 1d 04 00 00 00 00 00 00 00 00 00 00 00 ................................
24ca0 00 00 00 01 00 00 00 02 00 00 00 23 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ...........#w...................
24cc0 00 00 00 f5 18 00 00 00 00 1e 04 00 00 02 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 ................................
24ce0 00 26 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c3 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .&w......................5._....
24d00 0f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 04 24 00 00 00 0a 00 00 00 00 ff ff ff ....................$...........
24d20 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 24 00 ..............................$.
24e60 00 00 0a 00 00 00 00 00 00 04 24 00 00 00 18 00 00 00 00 00 00 00 76 00 00 00 18 00 00 00 00 69 ..........$...........v........i
24e80 9f c7 87 04 01 00 00 00 00 00 f5 18 00 00 04 23 00 00 04 25 00 00 04 71 00 00 00 01 00 00 00 29 ...............#...%...q.......)
24ea0 20 20 70 72 69 6e 74 66 28 22 46 6f 72 6d 61 74 74 65 64 20 74 69 6d 65 3a 20 25 73 5c 6e 22 2c ..printf("Formatted.time:.%s\n",
24ec0 20 62 75 66 66 65 72 29 3b 35 81 f5 18 00 00 00 00 23 04 00 00 0a 00 00 00 00 00 00 00 0f 00 00 .buffer);5.......#..............
24ee0 00 00 00 00 00 00 00 00 00 be 77 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........w.....................
24f00 00 35 81 5f d0 00 00 00 10 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 11 00 00 04 24 00 00 00 .5._........................$...
24f20 0a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25060 00 00 00 00 00 04 24 00 00 00 0a 00 00 00 00 00 00 04 24 00 00 00 18 00 00 00 00 00 00 00 76 00 ......$...........$...........v.
25080 00 00 18 00 00 00 00 69 9f c7 88 04 01 00 00 00 00 00 f5 18 00 00 04 23 00 00 04 25 00 00 04 71 .......i...............#...%...q
250a0 00 00 00 01 00 00 00 1a 20 20 70 72 69 6e 74 66 28 22 20 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 ..........printf(".%s\n",.buffer
250c0 29 3b 35 81 f5 18 00 00 00 00 23 04 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 );5.......#.....................
250e0 00 00 be 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 35 81 5f d0 00 00 ...w......................5._...
25100 00 11 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 12 00 00 04 24 00 00 00 13 00 00 00 00 ff ff .....................$..........
25120 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
251a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
251c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
251e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 24 ...............................$
25260 00 00 00 0a 00 00 00 00 00 00 04 24 00 00 00 18 00 00 00 00 00 00 00 76 00 00 00 18 00 00 00 00 ...........$...........v........
25280 69 9f c7 8a 04 01 00 00 00 0a 00 f5 18 00 00 04 1e 00 00 04 20 00 00 04 71 00 00 00 01 00 00 00 i.......................q.......
252a0 1c 20 20 20 20 74 69 6d 65 5f 74 20 6e 6f 77 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 35 81 f5 .....time_t.now.=.time(NULL);5..
252c0 18 00 00 00 00 1e 04 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 26 77 00 .............................&w.
252e0 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 12 00 00 00 .....................5._........
25300 14 00 00 00 00 00 00 00 00 00 00 00 13 00 00 04 23 00 00 00 2e 00 00 00 00 ff ff ff ff 00 01 00 ................#...............
25320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 24 00 00 00 0a 00 ..........................$.....
25460 00 00 00 00 00 04 24 00 00 00 18 00 00 00 00 00 00 00 76 00 00 00 18 00 00 00 00 69 9f c7 8d 04 ......$...........v........i....
25480 01 00 00 00 0b 00 f5 18 00 00 04 22 00 00 04 24 00 00 04 71 00 00 00 01 00 00 00 3b 20 20 73 74 ..........."...$...q.......;..st
254a0 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 rftime(buffer,.sizeof(buffer),."
254c0 25 64 2d 25 6d 2d 25 59 20 25 48 3a 25 4d 3a 25 53 22 2c 20 74 29 3b 35 81 f5 18 00 00 00 00 22 %d-%m-%Y.%H:%M:%S",.t);5......."
254e0 04 00 00 2e 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 a4 77 00 00 00 00 00 00 01 ........................w.......
25500 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 13 00 00 00 16 00 00 00 00 00 ...............5._..............
25520 00 00 00 00 00 00 14 00 00 04 23 00 00 00 35 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ..........#...5.................
25540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 24 00 00 00 0a 00 00 00 00 00 00 04 ....................$...........
25680 24 00 00 00 18 00 00 00 00 00 00 00 76 00 00 00 18 00 00 00 00 69 9f c7 90 04 01 00 00 00 0e 00 $...........v........i..........
256a0 f5 18 00 00 04 22 00 00 04 24 00 00 04 71 00 00 00 01 00 00 00 3b 20 20 73 74 72 66 74 69 6d 65 ....."...$...q.......;..strftime
256c0 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d (buffer,.sizeof(buffer),."%d-%m-
256e0 25 59 20 25 49 3a 25 4d 3a 25 53 22 2c 20 74 29 3b 35 81 f5 18 00 00 00 00 22 04 00 00 35 00 00 %Y.%I:%M:%S",.t);5......."...5..
25700 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 ab 77 00 00 00 00 00 00 00 00 00 00 00 00 00 ..................w.............
25720 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 22 04 00 00 36 00 00 00 00 00 00 00 02 00 00 00 00 ..............."...6............
25740 00 00 00 02 00 00 00 ac 77 00 00 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 ........w......................5
25760 81 5f d0 00 00 00 14 00 00 00 17 00 00 00 15 00 00 00 00 00 00 00 16 00 00 04 25 00 00 00 08 00 ._........................%.....
25780 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
257a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
257c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
257e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
258a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
258c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
258e0 00 00 00 00 00 69 9f c7 a3 04 01 00 00 00 10 00 f5 18 00 00 04 24 00 00 04 25 00 00 00 00 00 00 .....i...............$...%......
25900 00 01 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 24 04 00 00 00 00 00 ........return.0;5.......$......
25920 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 da 77 00 00 00 00 00 00 0c 00 00 00 00 00 00 ..................w.............
25940 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 16 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 .........5._....................
25960 17 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
259a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
259c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
259e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cb c3 04 01 00 00 00 00 00 f5 18 00 00 00 00 ...............i................
25ae0 00 00 00 02 00 00 00 00 00 00 04 70 00 00 00 24 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e ...........p...$#include.<waylan
25b00 64 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 3e 00 00 00 1f 23 64 65 66 69 6e 65 20 d-client-protocol.h>....#define.
25b20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 13 23 69 6e 63 6c _POSIX_C_SOURCE.200809L....#incl
25b40 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d ude."config.h"...&#include."xdg-
25b60 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 shell-client-protocol.h"....#inc
25b80 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 lude.<errno.h>....#include.<fcnt
25ba0 6c 2e 68 3e 00 00 00 22 23 69 6e 63 6c 75 64 65 20 3c 66 6f 6e 74 63 6f 6e 66 69 67 2f 66 6f 6e l.h>..."#include.<fontconfig/fon
25bc0 74 63 6f 6e 66 69 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 66 74 32 62 75 69 6c 64 tconfig.h>....#include.<ft2build
25be0 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 14 23 69 6e 63 .h>....#include.<poll.h>....#inc
25c00 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 lude.<stdbool.h>....#include.<st
25c20 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 dint.h>....#include.<stdio.h>...
25c40 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 .#include.<stdlib.h>....#include
25c60 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 .<string.h>....#include.<sys/mma
25c80 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e n.h>....#include.<sys/timerfd.h>
25ca0 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ....#include.<time.h>....#includ
25cc0 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e e.<unistd.h>....#include.<waylan
25ce0 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b 62 63 6f 6d 6d d-client.h>....#include.<xkbcomm
25d00 6f 6e 2f 78 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 46 54 5f 46 on/xkbcommon.h>....#include.FT_F
25d20 52 45 45 54 59 50 45 5f 48 00 00 00 00 00 00 00 16 23 64 65 66 69 6e 65 20 4d 41 58 5f 54 45 58 REETYPE_H........#define.MAX_TEX
25d40 54 20 36 35 35 33 36 00 00 00 10 23 64 65 66 69 6e 65 20 42 41 52 5f 48 20 32 38 00 00 00 12 23 T.65536....#define.BAR_H.28....#
25d60 64 65 66 69 6e 65 20 42 54 4e 5f 50 41 44 20 31 30 00 00 00 0d 23 64 65 66 69 6e 65 20 50 41 44 define.BTN_PAD.10....#define.PAD
25d80 20 38 00 00 00 00 00 00 00 17 23 64 65 66 69 6e 65 20 42 47 5f 43 4f 4c 4f 52 20 43 46 47 5f 42 .8........#define.BG_COLOR.CFG_B
25da0 47 00 00 00 17 23 64 65 66 69 6e 65 20 46 47 5f 43 4f 4c 4f 52 20 43 46 47 5f 46 47 00 00 00 1c G....#define.FG_COLOR.CFG_FG....
25dc0 23 64 65 66 69 6e 65 20 43 55 52 5f 43 4f 4c 4f 52 20 43 46 47 5f 43 55 52 53 4f 52 00 00 00 1c #define.CUR_COLOR.CFG_CURSOR....
25de0 23 64 65 66 69 6e 65 20 53 45 4c 5f 43 4f 4c 4f 52 20 43 46 47 5f 53 45 4c 5f 42 47 00 00 00 19 #define.SEL_COLOR.CFG_SEL_BG....
25e00 23 64 65 66 69 6e 65 20 53 45 4c 5f 46 47 20 43 46 47 5f 53 45 4c 5f 46 47 00 00 00 19 23 64 65 #define.SEL_FG.CFG_SEL_FG....#de
25e20 66 69 6e 65 20 42 41 52 5f 42 47 20 43 46 47 5f 42 41 52 5f 42 47 00 00 00 19 23 64 65 66 69 6e fine.BAR_BG.CFG_BAR_BG....#defin
25e40 65 20 42 41 52 5f 46 47 20 43 46 47 5f 42 41 52 5f 46 47 00 00 00 1b 23 64 65 66 69 6e 65 20 42 e.BAR_FG.CFG_BAR_FG....#define.B
25e60 54 4e 5f 48 4f 56 20 43 46 47 5f 42 54 4e 5f 48 4f 56 00 00 00 1b 23 64 65 66 69 6e 65 20 44 52 TN_HOV.CFG_BTN_HOV....#define.DR
25e80 4f 50 5f 42 47 20 43 46 47 5f 44 52 4f 50 5f 42 47 00 00 00 1b 23 64 65 66 69 6e 65 20 44 52 4f OP_BG.CFG_DROP_BG....#define.DRO
25ea0 50 5f 46 47 20 43 46 47 5f 44 52 4f 50 5f 46 47 00 00 00 1d 23 64 65 66 69 6e 65 20 44 52 4f 50 P_FG.CFG_DROP_FG....#define.DROP
25ec0 5f 48 4f 56 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 00 00 00 23 23 64 65 66 69 6e 65 20 44 52 4f _HOV.CFG_DROP_HOV...##define.DRO
25ee0 50 5f 48 4f 56 5f 46 47 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 5f 46 47 00 00 00 19 23 64 65 66 P_HOV_FG.CFG_DROP_HOV_FG....#def
25f00 69 6e 65 20 53 45 50 5f 43 4f 4c 4f 52 20 43 46 47 5f 53 45 50 00 00 00 00 00 00 00 21 73 74 61 ine.SEP_COLOR.CFG_SEP.......!sta
25f20 74 69 63 20 63 68 61 72 20 74 65 78 74 5b 4d 41 58 5f 54 45 58 54 5d 20 3d 20 7b 30 7d 3b 00 00 tic.char.text[MAX_TEXT].=.{0};..
25f40 00 14 73 74 61 74 69 63 20 69 6e 74 20 74 6c 65 6e 20 3d 20 30 3b 00 00 00 16 73 74 61 74 69 63 ..static.int.tlen.=.0;....static
25f60 20 69 6e 74 20 63 75 72 73 6f 72 20 3d 20 30 3b 00 00 00 1b 73 74 61 74 69 63 20 69 6e 74 20 73 .int.cursor.=.0;....static.int.s
25f80 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 66 el_anchor.=.-1;...!static.char.f
25fa0 69 6c 65 70 61 74 68 5b 34 30 39 36 5d 20 3d 20 7b 30 7d 3b 00 00 00 1a 73 74 61 74 69 63 20 62 ilepath[4096].=.{0};....static.b
25fc0 6f 6f 6c 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 00 00 00 00 19 73 74 61 74 69 63 ool.dirty.=.false;........static
25fe0 20 46 54 5f 4c 69 62 72 61 72 79 20 66 74 5f 6c 69 62 3b 00 00 00 17 73 74 61 74 69 63 20 46 54 .FT_Library.ft_lib;....static.FT
26000 5f 46 61 63 65 20 66 74 5f 66 61 63 65 3b 00 00 00 12 73 74 61 74 69 63 20 69 6e 74 20 63 65 6c _Face.ft_face;....static.int.cel
26020 6c 5f 77 3b 00 00 00 12 73 74 61 74 69 63 20 69 6e 74 20 63 65 6c 6c 5f 68 3b 00 00 00 14 73 74 l_w;....static.int.cell_h;....st
26040 61 74 69 63 20 69 6e 74 20 61 73 63 65 6e 64 65 72 3b 00 00 00 1f 73 74 61 74 69 63 20 69 6e 74 atic.int.ascender;....static.int
26060 20 66 6f 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 00 00 00 00 45 74 79 70 .font_pt.=.FONT_SIZE;.......Etyp
26080 65 64 65 66 20 65 6e 75 6d 20 7b 20 4d 45 4e 55 5f 4e 4f 4e 45 20 3d 20 2d 31 2c 20 4d 45 4e 55 edef.enum.{.MENU_NONE.=.-1,.MENU
260a0 5f 46 49 4c 45 20 3d 20 30 2c 20 4d 45 4e 55 5f 49 4e 46 4f 20 3d 20 31 20 7d 20 4d 65 6e 75 49 _FILE.=.0,.MENU_INFO.=.1.}.MenuI
260c0 64 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 14 20 20 d;........typedef.struct.{......
260e0 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61 62 65 6c 3b 00 00 00 11 20 20 62 6f 6f 6c 20 73 65 70 const.char.*label;......bool.sep
26100 5f 61 66 74 65 72 3b 00 00 00 0b 7d 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 00 00 00 26 73 74 _after;....}.MenuItem;.......&st
26120 61 74 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 74 65 6d 73 5b 5d atic.const.MenuItem.file_items[]
26140 20 3d 20 7b 00 00 00 41 20 20 20 20 7b 22 4e 65 77 22 2c 20 66 61 6c 73 65 7d 2c 20 20 20 20 7b .=.{...A....{"New",.false},....{
26160 22 4f 70 65 6e 22 2c 20 66 61 6c 73 65 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 22 53 61 76 65 22 "Open",.false},..........{"Save"
26180 2c 20 66 61 6c 73 65 7d 2c 00 00 00 41 20 20 20 20 7b 22 53 61 76 65 20 41 73 22 2c 20 74 72 75 ,.false},...A....{"Save.As",.tru
261a0 65 7d 2c 20 7b 22 53 61 76 65 20 61 6e 64 20 51 75 69 74 22 2c 20 66 61 6c 73 65 7d 2c 20 7b 22 e},.{"Save.and.Quit",.false},.{"
261c0 51 75 69 74 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 02 7d 3b 00 00 00 26 73 74 61 74 69 63 20 63 Quit",.false},....};...&static.c
261e0 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 3d 20 7b 00 00 onst.MenuItem.info_items[].=.{..
26200 00 15 20 20 20 20 7b 22 41 62 6f 75 74 22 2c 20 66 61 6c 73 65 7d 2c 00 00 00 02 7d 3b 00 00 00 ......{"About",.false},....};...
26220 3e 23 64 65 66 69 6e 65 20 4e 5f 46 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 66 69 >#define.N_FILE.((int)(sizeof.fi
26240 6c 65 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 66 69 6c 65 5f 69 74 65 6d 73 29 29 00 le_items./.sizeof.*file_items)).
26260 00 00 3e 23 64 65 66 69 6e 65 20 4e 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 ..>#define.N_INFO.((int)(sizeof.
26280 69 6e 66 6f 5f 69 74 65 6d 73 20 2f 20 73 69 7a 65 6f 66 20 2a 69 6e 66 6f 5f 69 74 65 6d 73 29 info_items./.sizeof.*info_items)
262a0 29 00 00 00 00 00 00 00 0e 73 74 72 75 63 74 20 70 6f 70 75 70 20 7b 00 00 00 18 20 20 73 74 72 )........struct.popup.{......str
262c0 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 uct.wl_surface.*ws;......struct.
262e0 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 xdg_surface.*xs;......struct.xdg
26300 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 _toplevel.*xt;......void.*pixels
26320 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 18 20 20 ;......size_t.pixels_size;......
26340 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 struct.wl_buffer.*buf;......int.
26360 77 2c 20 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0c 20 w,.h;......bool.configured;.....
26380 20 62 6f 6f 6c 20 6f 70 65 6e 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 .bool.open;....};........struct.
263a0 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b app.{......struct.wl_display.*d;
263c0 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 ......struct.wl_registry.*reg;..
263e0 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 ....struct.wl_compositor.*comp;.
26400 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 .....struct.wl_shm.*shm;......st
26420 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 ruct.xdg_wm_base.*wm;......struc
26440 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 t.wl_surface.*ws;......struct.xd
26460 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 g_surface.*xs;......struct.xdg_t
26480 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 oplevel.*xt;......struct.wl_seat
264a0 20 2a 73 65 61 74 3b 00 00 00 1f 20 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 .*seat;......struct.wl_keyboard.
264c0 2a 6b 65 79 62 6f 61 72 64 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 *keyboard;......struct.wl_pointe
264e0 72 20 2a 70 6f 69 6e 74 65 72 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f r.*pointer;...%..struct.wl_data_
26500 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 20 2a 64 64 6d 3b 00 00 00 1c 20 20 73 74 72 75 63 74 device_manager.*ddm;......struct
26520 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 3b 00 00 00 1c 20 20 73 74 72 75 63 74 .wl_data_device.*dd;......struct
26540 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 64 73 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a .wl_data_source.*ds;......void.*
26560 70 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b pixels;......size_t.pixels_size;
26580 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 21 ......struct.wl_buffer.*buf;...!
265a0 20 20 69 6e 74 20 77 2c 20 68 2c 20 70 65 6e 64 69 6e 67 5f 77 2c 20 70 65 6e 64 69 6e 67 5f 68 ..int.w,.h,.pending_w,.pending_h
265c0 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 1e 20 20 73 74 72 ;......bool.configured;......str
265e0 75 63 74 20 78 6b 62 5f 63 6f 6e 74 65 78 74 20 2a 78 6b 62 5f 63 74 78 3b 00 00 00 20 20 20 73 uct.xkb_context.*xkb_ctx;......s
26600 74 72 75 63 74 20 78 6b 62 5f 6b 65 79 6d 61 70 20 2a 78 6b 62 5f 6b 65 79 6d 61 70 3b 00 00 00 truct.xkb_keymap.*xkb_keymap;...
26620 1e 20 20 73 74 72 75 63 74 20 78 6b 62 5f 73 74 61 74 65 20 2a 78 6b 62 5f 73 74 61 74 65 3b 00 ...struct.xkb_state.*xkb_state;.
26640 00 00 10 20 20 69 6e 74 20 72 65 70 65 61 74 5f 66 64 3b 00 00 00 16 20 20 75 69 6e 74 33 32 5f .....int.repeat_fd;......uint32_
26660 74 20 72 65 70 65 61 74 5f 6b 65 79 3b 00 00 00 16 20 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 t.repeat_key;......int32_t.repea
26680 74 5f 72 61 74 65 3b 00 00 00 17 20 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 64 65 6c 61 t_rate;......int32_t.repeat_dela
266a0 79 3b 00 00 00 1b 20 20 63 68 61 72 20 63 6c 69 70 62 6f 61 72 64 5b 4d 41 58 5f 54 45 58 54 5d y;......char.clipboard[MAX_TEXT]
266c0 3b 00 00 00 14 20 20 69 6e 74 20 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3b 00 00 00 17 20 20 75 ;......int.clipboard_len;......u
266e0 69 6e 74 33 32 5f 74 20 6c 61 73 74 5f 73 65 72 69 61 6c 3b 00 00 00 17 20 20 69 6e 74 20 6d 6f int32_t.last_serial;......int.mo
26700 75 73 65 5f 78 2c 20 6d 6f 75 73 65 5f 79 3b 00 00 00 13 20 20 4d 65 6e 75 49 64 20 6f 70 65 6e use_x,.mouse_y;......MenuId.open
26720 5f 6d 65 6e 75 3b 00 00 00 13 20 20 69 6e 74 20 68 6f 76 65 72 65 64 5f 69 74 65 6d 3b 00 00 00 _menu;......int.hovered_item;...
26740 15 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 61 62 6f 75 74 3b 00 00 00 02 7d 3b 00 00 00 00 ...struct.popup.about;....};....
26760 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 ...'static.void.update_font_metr
26780 69 63 73 28 76 6f 69 64 29 20 7b 00 00 00 35 20 20 46 54 5f 53 65 74 5f 43 68 61 72 5f 53 69 7a ics(void).{...5..FT_Set_Char_Siz
267a0 65 28 66 74 5f 66 61 63 65 2c 20 30 2c 20 66 6f 6e 74 5f 70 74 20 2a 20 36 34 2c 20 39 36 2c 20 e(ft_face,.0,.font_pt.*.64,.96,.
267c0 39 36 29 3b 00 00 00 33 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 20 96);...3..FT_Load_Char(ft_face,.
267e0 27 30 27 2c 20 46 54 5f 4c 4f 41 44 5f 41 44 56 41 4e 43 45 5f 4f 4e 4c 59 29 3b 00 00 00 38 20 '0',.FT_LOAD_ADVANCE_ONLY);...8.
26800 20 63 65 6c 6c 5f 77 20 3d 20 28 69 6e 74 29 28 28 66 74 5f 66 61 63 65 2d 3e 67 6c 79 70 68 2d .cell_w.=.(int)((ft_face->glyph-
26820 3e 61 64 76 61 6e 63 65 2e 78 20 2b 20 33 32 29 20 3e 3e 20 36 29 3b 00 00 00 39 20 20 61 73 63 >advance.x.+.32).>>.6);...9..asc
26840 65 6e 64 65 72 20 3d 20 28 69 6e 74 29 28 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 ender.=.(int)(ft_face->size->met
26860 72 69 63 73 2e 61 73 63 65 6e 64 65 72 20 3e 3e 20 36 29 3b 00 00 00 42 20 20 69 6e 74 20 64 65 rics.ascender.>>.6);...B..int.de
26880 73 63 20 3d 20 28 69 6e 74 29 28 28 2d 66 74 5f 66 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 sc.=.(int)((-ft_face->size->metr
268a0 69 63 73 2e 64 65 73 63 65 6e 64 65 72 20 2b 20 36 33 29 20 3e 3e 20 36 29 3b 00 00 00 1b 20 20 ics.descender.+.63).>>.6);......
268c0 63 65 6c 6c 5f 68 20 3d 20 61 73 63 65 6e 64 65 72 20 2b 20 64 65 73 63 3b 00 00 00 11 20 20 69 cell_h.=.ascender.+.desc;......i
268e0 66 20 28 63 65 6c 6c 5f 77 20 3c 20 31 29 00 00 00 0f 20 20 20 20 63 65 6c 6c 5f 77 20 3d 20 31 f.(cell_w.<.1)........cell_w.=.1
26900 3b 00 00 00 11 20 20 69 66 20 28 63 65 6c 6c 5f 68 20 3c 20 31 29 00 00 00 0f 20 20 20 20 63 65 ;......if.(cell_h.<.1)........ce
26920 6c 6c 5f 68 20 3d 20 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 62 6f 6f ll_h.=.1;....}........static.boo
26940 6c 20 6c 6f 61 64 5f 66 6f 6e 74 28 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 49 6e 69 74 28 l.load_font(void).{......FcInit(
26960 29 3b 00 00 00 35 20 20 46 63 50 61 74 74 65 72 6e 20 2a 70 61 74 20 3d 20 46 63 4e 61 6d 65 50 );...5..FcPattern.*pat.=.FcNameP
26980 61 72 73 65 28 28 46 63 43 68 61 72 38 20 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 30 20 arse((FcChar8.*)FONT_NAME);...0.
269a0 20 46 63 43 6f 6e 66 69 67 53 75 62 73 74 69 74 75 74 65 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 46 .FcConfigSubstitute(NULL,.pat,.F
269c0 63 4d 61 74 63 68 50 61 74 74 65 72 6e 29 3b 00 00 00 1b 20 20 46 63 44 65 66 61 75 6c 74 53 75 cMatchPattern);......FcDefaultSu
269e0 62 73 74 69 74 75 74 65 28 70 61 74 29 3b 00 00 00 0f 20 20 46 63 52 65 73 75 6c 74 20 72 65 73 bstitute(pat);......FcResult.res
26a00 3b 00 00 00 32 20 20 46 63 50 61 74 74 65 72 6e 20 2a 6d 61 74 63 68 20 3d 20 46 63 46 6f 6e 74 ;...2..FcPattern.*match.=.FcFont
26a20 4d 61 74 63 68 28 4e 55 4c 4c 2c 20 70 61 74 2c 20 26 72 65 73 29 3b 00 00 00 18 20 20 46 63 50 Match(NULL,.pat,.&res);......FcP
26a40 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 70 61 74 29 3b 00 00 00 0d 20 20 69 66 20 28 21 6d 61 atternDestroy(pat);......if.(!ma
26a60 74 63 68 29 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 17 20 20 46 tch)........return.false;......F
26a80 63 43 68 61 72 38 20 2a 70 61 74 68 20 3d 20 4e 55 4c 4c 3b 00 00 00 46 20 20 69 66 20 28 46 63 cChar8.*path.=.NULL;...F..if.(Fc
26aa0 50 61 74 74 65 72 6e 47 65 74 53 74 72 69 6e 67 28 6d 61 74 63 68 2c 20 46 43 5f 46 49 4c 45 2c PatternGetString(match,.FC_FILE,
26ac0 20 30 2c 20 26 70 61 74 68 29 20 21 3d 20 46 63 52 65 73 75 6c 74 4d 61 74 63 68 29 20 7b 00 00 .0,.&path).!=.FcResultMatch).{..
26ae0 00 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 ......FcPatternDestroy(match);..
26b00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 22 20 20 ......return.false;......}..."..
26b20 69 66 20 28 46 54 5f 49 6e 69 74 5f 46 72 65 65 54 79 70 65 28 26 66 74 5f 6c 69 62 29 29 20 7b if.(FT_Init_FreeType(&ft_lib)).{
26b40 00 00 00 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b ........FcPatternDestroy(match);
26b60 00 00 00 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 3d ........return.false;......}...=
26b80 20 20 69 66 20 28 46 54 5f 4e 65 77 5f 46 61 63 65 28 66 74 5f 6c 69 62 2c 20 28 63 6f 6e 73 74 ..if.(FT_New_Face(ft_lib,.(const
26ba0 20 63 68 61 72 20 2a 29 70 61 74 68 2c 20 30 2c 20 26 66 74 5f 66 61 63 65 29 29 20 7b 00 00 00 .char.*)path,.0,.&ft_face)).{...
26bc0 1c 20 20 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 .....FcPatternDestroy(match);...
26be0 11 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 46 .....return.false;......}......F
26c00 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 20 20 75 70 64 cPatternDestroy(match);......upd
26c20 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 74 75 72 6e 20 ate_font_metrics();......return.
26c40 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 70 73 true;....}.......Fstatic.void.ps
26c60 65 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 et(void.*px,.int.pw,.int.ph,.int
26c80 20 78 2c 20 69 6e 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 2b 20 20 69 66 .x,.int.y,.uint32_t.c).{...+..if
26ca0 20 28 78 20 3e 3d 20 30 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 70 77 20 26 26 20 .(x.>=.0.&&.y.>=.0.&&.x.<.pw.&&.
26cc0 79 20 3c 20 70 68 29 00 00 00 25 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b y.<.ph)...%....((uint32_t.*)px)[
26ce0 79 20 2a 20 70 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 y.*.pw.+.x].=.c;....}.......Gsta
26d00 74 69 63 20 76 6f 69 64 20 66 72 65 63 74 28 76 6f 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c tic.void.frect(void.*px,.int.pw,
26d20 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e .int.ph,.int.x,.int.y,.int.w,.in
26d40 74 20 68 2c 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 t.h,......................uint32
26d60 5f 74 20 63 29 20 7b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 64 79 20 3d 20 30 3b 20 64 79 _t.c).{......for.(int.dy.=.0;.dy
26d80 20 3c 20 68 3b 20 64 79 2b 2b 29 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 20 64 78 20 3d .<.h;.dy++)..."....for.(int.dx.=
26da0 20 30 3b 20 64 78 20 3c 20 77 3b 20 64 78 2b 2b 29 00 00 00 2a 20 20 20 20 20 20 70 73 65 74 28 .0;.dx.<.w;.dx++)...*......pset(
26dc0 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 20 2b 20 64 78 2c 20 79 20 2b 20 64 79 2c 20 63 29 3b 00 px,.pw,.ph,.x.+.dx,.y.+.dy,.c);.
26de0 00 00 01 7d 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 62 70 69 78 28 76 6f 69 ...}.......Estatic.void.bpix(voi
26e00 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 6e d.*px,.int.pw,.int.ph,.int.x,.in
26e20 74 20 79 2c 20 75 69 6e 74 33 32 5f 74 20 66 67 2c 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 20 t.y,.uint32_t.fg,...............
26e40 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 29 20 7b 00 00 00 2b 20 20 69 66 20 28 78 20 3c 20 ......uint8_t.a).{...+..if.(x.<.
26e60 30 20 7c 7c 20 79 20 3c 20 30 20 7c 7c 20 78 20 3e 3d 20 70 77 20 7c 7c 20 79 20 3e 3d 20 70 68 0.||.y.<.0.||.x.>=.pw.||.y.>=.ph
26e80 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 30 20 20 75 69 6e 74 33 32 5f 74 20 2a )........return;...0..uint32_t.*
26ea0 64 73 74 20 3d 20 26 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 78 29 5b 79 20 2a 20 70 77 20 2b dst.=.&((uint32_t.*)px)[y.*.pw.+
26ec0 20 78 5d 3b 00 00 00 15 20 20 75 69 6e 74 33 32 5f 74 20 62 67 20 3d 20 2a 64 73 74 3b 00 00 00 .x];......uint32_t.bg.=.*dst;...
26ee0 4d 20 20 75 69 6e 74 33 32 5f 74 20 72 20 3d 20 28 28 66 67 20 3e 3e 20 31 36 20 26 20 30 78 46 M..uint32_t.r.=.((fg.>>.16.&.0xF
26f00 46 29 20 2a 20 61 20 2b 20 28 62 67 20 3e 3e 20 31 36 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 F).*.a.+.(bg.>>.16.&.0xFF).*.(25
26f20 35 20 2d 20 61 29 29 20 2f 20 32 35 35 3b 00 00 00 4b 20 20 75 69 6e 74 33 32 5f 74 20 67 20 3d 5.-.a))./.255;...K..uint32_t.g.=
26f40 20 28 28 66 67 20 3e 3e 20 38 20 26 20 30 78 46 46 29 20 2a 20 61 20 2b 20 28 62 67 20 3e 3e 20 .((fg.>>.8.&.0xFF).*.a.+.(bg.>>.
26f60 38 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 35 3b 00 00 00 8.&.0xFF).*.(255.-.a))./.255;...
26f80 41 20 20 75 69 6e 74 33 32 5f 74 20 62 20 3d 20 28 28 66 67 20 26 20 30 78 46 46 29 20 2a 20 61 A..uint32_t.b.=.((fg.&.0xFF).*.a
26fa0 20 2b 20 28 62 67 20 26 20 30 78 46 46 29 20 2a 20 28 32 35 35 20 2d 20 61 29 29 20 2f 20 32 35 .+.(bg.&.0xFF).*.(255.-.a))./.25
26fc0 35 3b 00 00 00 2f 20 20 2a 64 73 74 20 3d 20 30 78 46 46 30 30 30 30 30 30 20 7c 20 28 72 20 3c 5;.../..*dst.=.0xFF000000.|.(r.<
26fe0 3c 20 31 36 29 20 7c 20 28 67 20 3c 3c 20 38 29 20 7c 20 62 3b 00 00 00 01 7d 00 00 00 00 00 00 <.16).|.(g.<<.8).|.b;....}......
27000 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 67 6c 79 70 68 28 76 6f 69 64 20 2a 70 78 2c 20 69 .Istatic.void.dglyph(void.*px,.i
27020 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 75 nt.pw,.int.ph,.int.cx,.int.cy,.u
27040 69 6e 74 33 32 5f 74 20 63 70 2c 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int32_t.cp,...$.................
27060 20 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2c 20 20 46 54 5f 4c 6f 61 64 ..uint32_t.color).{...,..FT_Load
27080 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 20 63 70 2c 20 46 54 5f 4c 4f 41 44 5f 52 45 4e 44 45 _Char(ft_face,.cp,.FT_LOAD_RENDE
270a0 52 29 3b 00 00 00 25 20 20 46 54 5f 47 6c 79 70 68 53 6c 6f 74 20 73 6c 6f 74 20 3d 20 66 74 5f R);...%..FT_GlyphSlot.slot.=.ft_
270c0 66 61 63 65 2d 3e 67 6c 79 70 68 3b 00 00 00 20 20 20 46 54 5f 42 69 74 6d 61 70 20 2a 62 6d 20 face->glyph;......FT_Bitmap.*bm.
270e0 3d 20 26 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 3b 00 00 00 1d 20 20 69 6e 74 20 6f 78 20 3d 20 73 =.&slot->bitmap;......int.ox.=.s
27100 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 6c 65 66 74 3b 00 00 00 2c 20 20 69 6e 74 20 6f 79 20 3d 20 lot->bitmap_left;...,..int.oy.=.
27120 63 79 20 2b 20 61 73 63 65 6e 64 65 72 20 2d 20 73 6c 6f 74 2d 3e 62 69 74 6d 61 70 5f 74 6f 70 cy.+.ascender.-.slot->bitmap_top
27140 3b 00 00 00 2f 20 20 66 6f 72 20 28 69 6e 74 20 72 6f 77 20 3d 20 30 3b 20 72 6f 77 20 3c 20 28 ;.../..for.(int.row.=.0;.row.<.(
27160 69 6e 74 29 62 6d 2d 3e 72 6f 77 73 3b 20 72 6f 77 2b 2b 29 00 00 00 34 20 20 20 20 66 6f 72 20 int)bm->rows;.row++)...4....for.
27180 28 69 6e 74 20 63 6f 6c 20 3d 20 30 3b 20 63 6f 6c 20 3c 20 28 69 6e 74 29 62 6d 2d 3e 77 69 64 (int.col.=.0;.col.<.(int)bm->wid
271a0 74 68 3b 20 63 6f 6c 2b 2b 29 20 7b 00 00 00 35 20 20 20 20 20 20 75 69 6e 74 38 5f 74 20 61 76 th;.col++).{...5......uint8_t.av
271c0 20 3d 20 62 6d 2d 3e 62 75 66 66 65 72 5b 72 6f 77 20 2a 20 62 6d 2d 3e 70 69 74 63 68 20 2b 20 .=.bm->buffer[row.*.bm->pitch.+.
271e0 63 6f 6c 5d 3b 00 00 00 0d 20 20 20 20 20 20 69 66 20 28 61 76 29 00 00 00 3d 20 20 20 20 20 20 col];..........if.(av)...=......
27200 20 20 62 70 69 78 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 63 78 20 2b 20 6f 78 20 2b 20 63 6f 6c ..bpix(px,.pw,.ph,.cx.+.ox.+.col
27220 2c 20 6f 79 20 2b 20 72 6f 77 2c 20 63 6f 6c 6f 72 2c 20 61 76 29 3b 00 00 00 05 20 20 20 20 7d ,.oy.+.row,.color,.av);........}
27240 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 74 72 28 76 6f ....}.......Gstatic.void.dstr(vo
27260 69 64 20 2a 70 78 2c 20 69 6e 74 20 70 77 2c 20 69 6e 74 20 70 68 2c 20 69 6e 74 20 78 2c 20 69 id.*px,.int.pw,.int.ph,.int.x,.i
27280 6e 74 20 79 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 00 00 00 22 20 20 20 20 20 20 20 20 nt.y,.const.char.*s,..."........
272a0 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 .........uint32_t.color).{.../..
272c0 66 6f 72 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 20 3d 20 73 3b 20 2a 70 3b 20 70 2b 2b 2c for.(const.char.*p.=.s;.*p;.p++,
272e0 20 78 20 2b 3d 20 63 65 6c 6c 5f 77 29 00 00 00 37 20 20 20 20 64 67 6c 79 70 68 28 70 78 2c 20 .x.+=.cell_w)...7....dglyph(px,.
27300 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 2a 70 2c pw,.ph,.x,.y,.(unsigned.char)*p,
27320 20 63 6f 6c 6f 72 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 69 6e 74 20 .color);....}.......Astatic.int.
27340 73 70 77 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29 20 7b 20 72 65 74 75 72 6e 20 28 69 6e 74 spw(const.char.*s).{.return.(int
27360 29 73 74 72 6c 65 6e 28 73 29 20 2a 20 63 65 6c 6c 5f 77 3b 20 7d 00 00 00 00 00 00 00 4b 73 74 )strlen(s).*.cell_w;.}.......Kst
27380 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 6b 65 5f 73 68 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a atic.void.*make_shm(struct.app.*
273a0 61 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 a,.int.w,.int.h,.struct.wl_buffe
273c0 72 20 2a 2a 6f 62 75 66 2c 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.**obuf,...$...................
273e0 20 20 20 73 69 7a 65 5f 74 20 2a 6f 73 7a 29 20 7b 00 00 00 20 20 20 73 69 7a 65 5f 74 20 73 7a ...size_t.*osz).{......size_t.sz
27400 20 3d 20 28 73 69 7a 65 5f 74 29 77 20 2a 20 68 20 2a 20 34 3b 00 00 00 23 20 20 63 68 61 72 20 .=.(size_t)w.*.h.*.4;...#..char.
27420 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 58 58 58 58 58 58 22 3b 00 00 00 16 t[].=."/tmp/wayland-XXXXXX";....
27440 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 0c 20 20 75 6e 6c 69 ..int.fd.=.mkstemp(t);......unli
27460 6e 6b 28 74 29 3b 00 00 00 28 20 20 69 66 20 28 66 64 20 3c 20 30 20 7c 7c 20 66 74 72 75 6e 63 nk(t);...(..if.(fd.<.0.||.ftrunc
27480 61 74 65 28 66 64 2c 20 73 7a 29 20 3c 20 30 29 20 7b 00 00 00 12 20 20 20 20 70 65 72 72 6f 72 ate(fd,.sz).<.0).{........perror
274a0 28 22 73 68 6d 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 ("shm");........exit(1);......}.
274c0 00 00 47 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 7a 2c 20 50 ..G..void.*px.=.mmap(NULL,.sz,.P
274e0 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 ROT_READ.|.PROT_WRITE,.MAP_SHARE
27500 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 19 20 20 69 66 20 28 70 78 20 3d 3d 20 4d 41 50 5f 46 41 D,.fd,.0);......if.(px.==.MAP_FA
27520 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 ILED).{........perror("mmap");..
27540 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 40 20 20 73 74 72 75 63 ......exit(1);......}...@..struc
27560 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 t.wl_shm_pool.*pool.=.wl_shm_cre
27580 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 7a 29 3b 00 00 00 09 20 20 2a ate_pool(a->shm,.fd,.sz);......*
275a0 6f 62 75 66 20 3d 00 00 00 4e 20 20 20 20 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 obuf.=...N......wl_shm_pool_crea
275c0 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 2c 20 68 2c 20 77 20 2a 20 34 2c 20 te_buffer(pool,.0,.w,.h,.w.*.4,.
275e0 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 1c 20 20 77 6c WL_SHM_FORMAT_ARGB8888);......wl
27600 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c _shm_pool_destroy(pool);......cl
27620 6f 73 65 28 66 64 29 3b 00 00 00 0a 20 20 69 66 20 28 6f 73 7a 29 00 00 00 0e 20 20 20 20 2a 6f ose(fd);......if.(osz)........*o
27640 73 7a 20 3d 20 73 7a 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 70 78 3b 00 00 00 01 7d 00 00 00 sz.=.sz;......return.px;....}...
27660 00 00 00 00 38 73 74 61 74 69 63 20 69 6e 74 20 62 61 72 5f 79 28 73 74 72 75 63 74 20 61 70 70 ....8static.int.bar_y(struct.app
27680 20 2a 61 29 20 7b 20 72 65 74 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 .*a).{.return.a->h.-.BAR_H;.}...
276a0 39 73 74 61 74 69 63 20 69 6e 74 20 74 65 78 74 5f 68 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 9static.int.text_h(struct.app.*a
276c0 29 20 7b 20 72 65 74 75 72 6e 20 61 2d 3e 68 20 2d 20 42 41 52 5f 48 3b 20 7d 00 00 00 00 00 00 ).{.return.a->h.-.BAR_H;.}......
276e0 00 19 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 78 28 69 6e 74 20 69 29 20 7b 00 00 00 0e 20 ..static.int.btn_x(int.i).{.....
27700 20 69 6e 74 20 78 20 3d 20 50 41 44 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c .int.x.=.PAD;...(..const.char.*l
27720 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 00 1d 20 20 66 bls[].=.{"File",."Info"};......f
27740 6f 72 20 28 69 6e 74 20 6a 20 3d 20 30 3b 20 6a 20 3c 20 69 3b 20 6a 2b 2b 29 00 00 00 24 20 20 or.(int.j.=.0;.j.<.i;.j++)...$..
27760 20 20 78 20 2b 3d 20 73 70 77 28 6c 62 6c 73 5b 6a 5d 29 20 2b 20 42 54 4e 5f 50 41 44 20 2a 20 ..x.+=.spw(lbls[j]).+.BTN_PAD.*.
27780 32 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 78 3b 00 00 00 01 7d 00 00 00 4f 73 74 61 74 69 63 2;......return.x;....}...Ostatic
277a0 20 69 6e 74 20 62 74 6e 5f 77 28 69 6e 74 20 69 29 20 7b 20 72 65 74 75 72 6e 20 73 70 77 28 69 .int.btn_w(int.i).{.return.spw(i
277c0 20 3d 3d 20 30 20 3f 20 22 46 69 6c 65 22 20 3a 20 22 49 6e 66 6f 22 29 20 2b 20 42 54 4e 5f 50 .==.0.?."File".:."Info").+.BTN_P
277e0 41 44 20 2a 20 32 3b 20 7d 00 00 00 00 00 00 00 2b 73 74 61 74 69 63 20 69 6e 74 20 64 69 68 28 AD.*.2;.}.......+static.int.dih(
27800 76 6f 69 64 29 20 7b 20 72 65 74 75 72 6e 20 63 65 6c 6c 5f 68 20 2b 20 38 3b 20 7d 00 00 00 00 void).{.return.cell_h.+.8;.}....
27820 00 00 00 23 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 4d 65 6e 75 ...#static.int.drop_total_h(Menu
27840 49 64 20 6d 29 20 7b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f Id.m).{...-..int.n.=.(m.==.MENU_
27860 46 49 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f FILE).?.N_FILE.:.N_INFO;...E..co
27880 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 nst.MenuItem.*items.=.(m.==.MENU
278a0 5f 46 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 _FILE).?.file_items.:.info_items
278c0 3b 00 00 00 18 20 20 69 6e 74 20 68 20 3d 20 6e 20 2a 20 64 69 68 28 29 20 2b 20 34 3b 00 00 00 ;......int.h.=.n.*.dih().+.4;...
278e0 1d 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 00 00 ...for.(int.i.=.0;.i.<.n;.i++)..
27900 00 1b 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 00 00 00 ......if.(items[i].sep_after)...
27920 0d 20 20 20 20 20 20 68 20 2b 3d 20 34 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 68 3b 00 00 00 .......h.+=.4;......return.h;...
27940 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 77 28 4d 65 6e 75 .}........static.int.drop_w(Menu
27960 49 64 20 6d 29 20 7b 00 00 00 10 20 20 69 6e 74 20 6d 61 78 77 20 3d 20 38 30 3b 00 00 00 2d 20 Id.m).{......int.maxw.=.80;...-.
27980 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 49 .int.n.=.(m.==.MENU_FILE).?.N_FI
279a0 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d LE.:.N_INFO;...E..const.MenuItem
279c0 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 6c .*items.=.(m.==.MENU_FILE).?.fil
279e0 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 1f 20 20 66 6f 72 20 28 e_items.:.info_items;......for.(
27a00 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 int.i.=.0;.i.<.n;.i++).{........
27a20 69 6e 74 20 77 20 3d 20 73 70 77 28 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 29 20 2b 20 42 54 int.w.=.spw(items[i].label).+.BT
27a40 4e 5f 50 41 44 20 2a 20 32 3b 00 00 00 11 20 20 20 20 69 66 20 28 77 20 3e 20 6d 61 78 77 29 00 N_PAD.*.2;........if.(w.>.maxw).
27a60 00 00 0f 20 20 20 20 20 20 6d 61 78 77 20 3d 20 77 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 72 .........maxw.=.w;......}......r
27a80 65 74 75 72 6e 20 6d 61 78 77 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 69 eturn.maxw;....}.......5static.i
27aa0 6e 74 20 69 74 65 6d 5f 61 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 nt.item_at(struct.app.*a,.MenuId
27ac0 20 6d 2c 20 69 6e 74 20 6d 79 29 20 7b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f .m,.int.my).{......int.by.=.bar_
27ae0 79 28 61 29 3b 00 00 00 2d 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 y(a);...-..int.n.=.(m.==.MENU_FI
27b00 4c 45 29 20 3f 20 4e 5f 46 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 LE).?.N_FILE.:.N_INFO;...E..cons
27b20 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 t.MenuItem.*items.=.(m.==.MENU_F
27b40 49 4c 45 29 20 3f 20 66 69 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 ILE).?.file_items.:.info_items;.
27b60 00 00 24 20 20 69 6e 74 20 69 79 20 3d 20 62 79 20 2d 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 ..$..int.iy.=.by.-.drop_total_h(
27b80 6d 29 20 2b 20 34 3b 00 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c m).+.4;......for.(int.i.=.0;.i.<
27ba0 20 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 6d 79 20 3e 3d 20 69 79 20 26 .n;.i++).{...$....if.(my.>=.iy.&
27bc0 26 20 6d 79 20 3c 20 69 79 20 2b 20 64 69 68 28 29 29 00 00 00 0f 20 20 20 20 20 20 72 65 74 75 &.my.<.iy.+.dih())..........retu
27be0 72 6e 20 69 3b 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 69 68 28 29 3b 00 00 00 1b 20 20 20 rn.i;........iy.+=.dih();.......
27c00 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 00 00 00 0e 20 20 20 20 .if.(items[i].sep_after)........
27c20 20 20 69 79 20 2b 3d 20 34 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 2d 31 ..iy.+=.4;......}......return.-1
27c40 3b 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 ;....}.......#static.void.do_sav
27c60 65 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 e(struct.app.*a);..."static.void
27c80 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 23 73 74 61 74 69 .do_new(struct.app.*a);...#stati
27ca0 63 20 76 6f 69 64 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 c.void.do_open(struct.app.*a);..
27cc0 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 .&static.void.open_about(struct.
27ce0 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 app.*a);..."static.void.redraw(s
27d00 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 truct.app.*a);.......#static.voi
27d20 64 20 64 6f 5f 6e 65 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1f 20 20 6d d.do_new(struct.app.*a).{......m
27d40 65 6d 73 65 74 28 74 65 78 74 2c 20 30 2c 20 73 69 7a 65 6f 66 20 74 65 78 74 29 3b 00 00 00 0b emset(text,.0,.sizeof.text);....
27d60 20 20 74 6c 65 6e 20 3d 20 30 3b 00 00 00 0d 20 20 63 75 72 73 6f 72 20 3d 20 30 3b 00 00 00 12 ..tlen.=.0;......cursor.=.0;....
27d80 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 15 20 20 66 69 6c 65 70 61 74 68 ..sel_anchor.=.-1;......filepath
27da0 5b 30 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 [0].=.'\0';......dirty.=.false;.
27dc0 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 6f 5f 73 61 76 65 28 ...}.......$static.void.do_save(
27de0 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 66 69 6c 65 70 struct.app.*a).{......if.(!filep
27e00 61 74 68 5b 30 5d 29 20 7b 00 00 00 23 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d ath[0]).{...#....const.char.*h.=
27e20 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 00 4b 20 20 20 20 73 6e 70 72 69 6e 74 66 .getenv("HOME");...K....snprintf
27e40 28 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f (filepath,.sizeof.filepath,."%s/
27e60 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 untitled.txt",.h.?.h.:."/tmp");.
27e80 00 00 03 20 20 7d 00 00 00 3e 20 20 69 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 66 69 6c 65 70 61 .....}...>..int.fd.=.open(filepa
27ea0 74 68 2c 20 4f 5f 57 52 4f 4e 4c 59 20 7c 20 4f 5f 43 52 45 41 54 20 7c 20 4f 5f 54 52 55 4e 43 th,.O_WRONLY.|.O_CREAT.|.O_TRUNC
27ec0 2c 20 30 36 34 34 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 13 20 ,.0644);......if.(fd.<.0).{.....
27ee0 20 20 20 70 65 72 72 6f 72 28 22 73 61 76 65 22 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e ...perror("save");........return
27f00 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 77 72 69 74 65 28 66 64 2c 20 74 65 78 74 2c 20 74 6c ;......}......write(fd,.text,.tl
27f20 65 6e 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 10 20 20 64 69 72 74 79 20 en);......close(fd);......dirty.
27f40 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 =.false;....}.......$static.void
27f60 20 64 6f 5f 6f 70 65 6e 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 21 20 20 63 .do_open(struct.app.*a).{...!..c
27f80 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 00 onst.char.*h.=.getenv("HOME");..
27fa0 00 12 20 20 63 68 61 72 20 70 61 74 68 5b 34 30 39 36 5d 3b 00 00 00 41 20 20 73 6e 70 72 69 6e ....char.path[4096];...A..snprin
27fc0 74 66 28 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c tf(path,.sizeof.path,."%s/untitl
27fe0 65 64 2e 74 78 74 22 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 00 20 20 20 69 ed.txt",.h.?.h.:."/tmp");......i
28000 6e 74 20 66 64 20 3d 20 6f 70 65 6e 28 70 61 74 68 2c 20 4f 5f 52 44 4f 4e 4c 59 29 3b 00 00 00 nt.fd.=.open(path,.O_RDONLY);...
28020 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 ...if.(fd.<.0)........return;...
28040 2b 20 20 73 73 69 7a 65 5f 74 20 6e 20 3d 20 72 65 61 64 28 66 64 2c 20 74 65 78 74 2c 20 4d 41 +..ssize_t.n.=.read(fd,.text,.MA
28060 58 5f 54 45 58 54 20 2d 20 31 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0c X_TEXT.-.1);......close(fd);....
28080 20 20 69 66 20 28 6e 20 3c 20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 10 20 ..if.(n.<.0)........return;.....
280a0 20 74 6c 65 6e 20 3d 20 28 69 6e 74 29 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 .tlen.=.(int)n;......text[tlen].
280c0 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 63 75 72 73 6f 72 20 3d 20 74 6c 65 6e 3b 00 00 00 12 20 =.'\0';......cursor.=.tlen;.....
280e0 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 32 20 20 73 6e 70 72 69 6e 74 66 28 .sel_anchor.=.-1;...2..snprintf(
28100 66 69 6c 65 70 61 74 68 2c 20 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 22 2c filepath,.sizeof.filepath,."%s",
28120 20 70 61 74 68 29 3b 00 00 00 10 20 20 64 69 72 74 79 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d .path);......dirty.=.false;....}
28140 00 00 00 00 00 00 00 39 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 74 .......9static.void.fire_item(st
28160 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 2c 20 69 6e 74 20 69 64 78 29 20 ruct.app.*a,.MenuId.m,.int.idx).
28180 7b 00 00 00 1b 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b {......a->open_menu.=.MENU_NONE;
281a0 00 00 00 17 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 17 20 ......a->hovered_item.=.-1;.....
281c0 20 69 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 7b 00 00 00 12 20 20 20 20 73 77 .if.(m.==.MENU_FILE).{........sw
281e0 69 74 63 68 20 28 69 64 78 29 20 7b 00 00 00 0b 20 20 20 20 63 61 73 65 20 30 3a 00 00 00 10 20 itch.(idx).{........case.0:.....
28200 20 20 20 20 20 64 6f 5f 6e 65 77 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 .....do_new(a);..........break;.
28220 00 00 0b 20 20 20 20 63 61 73 65 20 31 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 6f 70 65 6e 28 .......case.1:..........do_open(
28240 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0b 20 20 20 20 63 61 73 65 20 a);..........break;........case.
28260 32 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 0c 20 20 20 20 20 2:..........do_save(a);.........
28280 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 63 61 73 65 20 33 3a 20 7b 00 00 00 25 20 20 20 20 .break;........case.3:.{...%....
282a0 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 20 3d 20 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 ..const.char.*h.=.getenv("HOME")
282c0 3b 00 00 00 4d 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 20 73 69 ;...M......snprintf(filepath,.si
282e0 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 20 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 zeof.filepath,."%s/untitled.txt"
28300 2c 20 68 20 3f 20 68 20 3a 20 22 2f 74 6d 70 22 29 3b 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 ,.h.?.h.:."/tmp");..........do_s
28320 61 76 65 28 61 29 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d ave(a);..........break;........}
28340 00 00 00 0b 20 20 20 20 63 61 73 65 20 34 3a 00 00 00 11 20 20 20 20 20 20 64 6f 5f 73 61 76 65 ........case.4:..........do_save
28360 28 61 29 3b 00 00 00 0e 20 20 20 20 20 20 65 78 69 74 28 30 29 3b 00 00 00 0b 20 20 20 20 63 61 (a);..........exit(0);........ca
28380 73 65 20 35 3a 00 00 00 0e 20 20 20 20 20 20 65 78 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d se.5:..........exit(0);........}
283a0 00 00 00 1e 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 49 4e 46 4f 29 ......}.else.if.(m.==.MENU_INFO)
283c0 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 69 64 78 20 3d 3d 20 30 29 00 00 00 14 20 20 20 20 20 .{........if.(idx.==.0).........
283e0 20 6f 70 65 6e 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 64 72 .open_about(a);......}......redr
28400 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 64 aw(a);....}.......%static.void.d
28420 72 61 77 5f 62 61 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 17 20 20 76 6f raw_bar(struct.app.*a).{......vo
28440 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 id.*px.=.a->pixels;......int.pw.
28460 3d 20 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d =.a->w,.ph.=.a->h;......int.by.=
28480 20 62 61 72 5f 79 28 61 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 .bar_y(a);......frect(px,.pw,.ph
284a0 2c 20 30 2c 20 62 79 2c 20 70 77 2c 20 42 41 52 5f 48 2c 20 42 41 52 5f 42 47 29 3b 00 00 00 2d ,.0,.by,.pw,.BAR_H,.BAR_BG);...-
284c0 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 62 79 2c 20 70 77 2c 20 31 ..frect(px,.pw,.ph,.0,.by,.pw,.1
284e0 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 28 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c ,.SEP_COLOR);...(..const.char.*l
28500 62 6c 73 5b 5d 20 3d 20 7b 22 46 69 6c 65 22 2c 20 22 49 6e 66 6f 22 7d 3b 00 00 00 1f 20 20 66 bls[].=.{"File",."Info"};......f
28520 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 25 or.(int.i.=.0;.i.<.2;.i++).{...%
28540 20 20 20 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f ....int.bx.=.btn_x(i),.bw.=.btn_
28560 77 28 69 29 3b 00 00 00 4c 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 61 2d 3e 6d 6f 75 73 65 w(i);...L....bool.hov.=.a->mouse
28580 5f 79 20 3e 3d 20 62 79 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 _y.>=.by.&&.a->mouse_x.>=.bx.&&.
285a0 61 2d 3e 6d 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 3b 00 00 00 29 20 20 20 20 69 66 20 a->mouse_x.<.bx.+.bw;...)....if.
285c0 28 68 6f 76 20 7c 7c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 3d 20 28 4d 65 6e 75 49 64 29 (hov.||.a->open_menu.==.(MenuId)
285e0 69 29 00 00 00 3c 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 62 78 i)...<......frect(px,.pw,.ph,.bx
28600 2c 20 62 79 20 2b 20 31 2c 20 62 77 2c 20 42 41 52 5f 48 20 2d 20 31 2c 20 42 54 4e 5f 48 4f 56 ,.by.+.1,.bw,.BAR_H.-.1,.BTN_HOV
28620 29 3b 00 00 00 4f 20 20 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 62 78 20 2b 20 );...O....dstr(px,.pw,.ph,.bx.+.
28640 42 54 4e 5f 50 41 44 2c 20 62 79 20 2b 20 28 42 41 52 5f 48 20 2d 20 63 65 6c 6c 5f 68 29 20 2f BTN_PAD,.by.+.(BAR_H.-.cell_h)./
28660 20 32 2c 20 6c 62 6c 73 5b 69 5d 2c 20 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 7d 00 00 00 01 .2,.lbls[i],.BAR_FG);......}....
28680 7d 00 00 00 00 00 00 00 30 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 72 6f 70 28 73 }.......0static.void.draw_drop(s
286a0 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 4d 65 6e 75 49 64 20 6d 29 20 7b 00 00 00 17 20 20 76 truct.app.*a,.MenuId.m).{......v
286c0 6f 69 64 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 oid.*px.=.a->pixels;......int.pw
286e0 20 3d 20 61 2d 3e 77 2c 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 3a 20 20 69 6e 74 20 62 79 20 .=.a->w,.ph.=.a->h;...:..int.by.
28700 3d 20 62 61 72 5f 79 28 61 29 2c 20 64 77 20 3d 20 64 72 6f 70 5f 77 28 6d 29 2c 20 64 68 20 3d =.bar_y(a),.dw.=.drop_w(m),.dh.=
28720 20 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 3b 00 00 00 27 20 20 69 6e 74 20 64 78 20 3d 20 .drop_total_h(m);...'..int.dx.=.
28740 62 74 6e 5f 78 28 28 69 6e 74 29 6d 29 2c 20 64 79 20 3d 20 62 79 20 2d 20 64 68 3b 00 00 00 2d btn_x((int)m),.dy.=.by.-.dh;...-
28760 20 20 69 6e 74 20 6e 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 4e 5f 46 ..int.n.=.(m.==.MENU_FILE).?.N_F
28780 49 4c 45 20 3a 20 4e 5f 49 4e 46 4f 3b 00 00 00 45 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 ILE.:.N_INFO;...E..const.MenuIte
287a0 6d 20 2a 69 74 65 6d 73 20 3d 20 28 6d 20 3d 3d 20 4d 45 4e 55 5f 46 49 4c 45 29 20 3f 20 66 69 m.*items.=.(m.==.MENU_FILE).?.fi
287c0 6c 65 5f 69 74 65 6d 73 20 3a 20 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 00 00 00 00 2d 20 20 le_items.:.info_items;.......-..
287e0 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 64 77 2c 20 64 68 frect(px,.pw,.ph,.dx,.dy,.dw,.dh
28800 2c 20 44 52 4f 50 5f 42 47 29 3b 00 00 00 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 ,.DROP_BG);......frect(px,.pw,.p
28820 68 2c 20 64 78 2c 20 64 79 2c 20 64 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 h,.dx,.dy,.dw,.1,.SEP_COLOR);...
28840 2e 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 2c 20 64 79 2c 20 31 2c 20 ...frect(px,.pw,.ph,.dx,.dy,.1,.
28860 64 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 37 20 20 66 72 65 63 74 28 70 78 2c 20 70 dh,.SEP_COLOR);...7..frect(px,.p
28880 77 2c 20 70 68 2c 20 64 78 20 2b 20 64 77 20 2d 20 31 2c 20 64 79 2c 20 31 2c 20 64 68 2c 20 53 w,.ph,.dx.+.dw.-.1,.dy,.1,.dh,.S
288a0 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 37 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 EP_COLOR);...7..frect(px,.pw,.ph
288c0 2c 20 64 78 2c 20 64 79 20 2b 20 64 68 20 2d 20 31 2c 20 64 77 2c 20 31 2c 20 53 45 50 5f 43 4f ,.dx,.dy.+.dh.-.1,.dw,.1,.SEP_CO
288e0 4c 4f 52 29 3b 00 00 00 00 00 00 00 12 20 20 69 6e 74 20 69 79 20 3d 20 64 79 20 2b 20 34 3b 00 LOR);..........int.iy.=.dy.+.4;.
28900 00 00 1f 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 .....for.(int.i.=.0;.i.<.n;.i++)
28920 20 7b 00 00 00 26 20 20 20 20 62 6f 6f 6c 20 68 6f 76 20 3d 20 28 61 2d 3e 68 6f 76 65 72 65 64 .{...&....bool.hov.=.(a->hovered
28940 5f 69 74 65 6d 20 3d 3d 20 69 29 3b 00 00 00 0c 20 20 20 20 69 66 20 28 68 6f 76 29 00 00 00 3d _item.==.i);........if.(hov)...=
28960 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 31 2c 20 ......frect(px,.pw,.ph,.dx.+.1,.
28980 69 79 2c 20 64 77 20 2d 20 32 2c 20 64 69 68 28 29 2c 20 44 52 4f 50 5f 48 4f 56 29 3b 00 00 00 iy,.dw.-.2,.dih(),.DROP_HOV);...
289a0 4d 20 20 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 2b 20 42 54 4e 5f 50 M....dstr(px,.pw,.ph,.dx.+.BTN_P
289c0 41 44 2c 20 69 79 20 2b 20 28 64 69 68 28 29 20 2d 20 63 65 6c 6c 5f 68 29 20 2f 20 32 2c 20 69 AD,.iy.+.(dih().-.cell_h)./.2,.i
289e0 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 68 6f 76 20 3f tems[i].label,...:.........hov.?
28a00 20 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 48 4f 56 5f 46 47 20 3a 20 28 75 69 6e 74 33 32 .(uint32_t)DROP_HOV_FG.:.(uint32
28a20 5f 74 29 44 52 4f 50 5f 46 47 29 3b 00 00 00 10 20 20 20 20 69 79 20 2b 3d 20 64 69 68 28 29 3b _t)DROP_FG);........iy.+=.dih();
28a40 00 00 00 1d 20 20 20 20 69 66 20 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 ........if.(items[i].sep_after).
28a60 7b 00 00 00 3a 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 64 78 20 {...:......frect(px,.pw,.ph,.dx.
28a80 2b 20 34 2c 20 69 79 2c 20 64 77 20 2d 20 38 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 +.4,.iy,.dw.-.8,.1,.SEP_COLOR);.
28aa0 00 00 0e 20 20 20 20 20 20 69 79 20 2b 3d 20 34 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 .........iy.+=.4;........}......
28ac0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 }....}.......#static.void.redraw
28ae0 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 (struct.app.*a).{......void.*px.
28b00 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 61 2d 3e 77 2c =.a->pixels;......int.pw.=.a->w,
28b20 20 70 68 20 3d 20 61 2d 3e 68 3b 00 00 00 16 20 20 69 6e 74 20 74 61 68 20 3d 20 74 65 78 74 5f .ph.=.a->h;......int.tah.=.text_
28b40 68 28 61 29 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 h(a);...#..for.(int.i.=.0;.i.<.p
28b60 77 20 2a 20 70 68 3b 20 69 2b 2b 29 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a w.*.ph;.i++)...#....((uint32_t.*
28b80 29 70 78 29 5b 69 5d 20 3d 20 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 00 00 00 00 1f 20 20 69 6e 74 )px)[i].=.BG_COLOR;..........int
28ba0 20 73 65 6c 5f 6c 6f 20 3d 20 2d 31 2c 20 73 65 6c 5f 68 69 20 3d 20 2d 31 3b 00 00 00 18 20 20 .sel_lo.=.-1,.sel_hi.=.-1;......
28bc0 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 20 7b 00 00 00 37 20 20 20 20 73 65 if.(sel_anchor.>=.0).{...7....se
28be0 6c 5f 6c 6f 20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 73 65 6c l_lo.=.sel_anchor.<.cursor.?.sel
28c00 5f 61 6e 63 68 6f 72 20 3a 20 63 75 72 73 6f 72 3b 00 00 00 37 20 20 20 20 73 65 6c 5f 68 69 20 _anchor.:.cursor;...7....sel_hi.
28c20 3d 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 3a =.sel_anchor.<.cursor.?.cursor.:
28c40 20 73 65 6c 5f 61 6e 63 68 6f 72 3b 00 00 00 03 20 20 7d 00 00 00 17 20 20 69 6e 74 20 63 6f 6c .sel_anchor;......}......int.col
28c60 20 3d 20 30 2c 20 72 6f 77 20 3d 20 30 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d .=.0,.row.=.0;...#..for.(int.i.=
28c80 20 30 3b 20 69 20 3c 3d 20 74 6c 65 6e 3b 20 69 2b 2b 29 20 7b 00 00 00 37 20 20 20 20 69 6e 74 .0;.i.<=.tlen;.i++).{...7....int
28ca0 20 78 20 3d 20 50 41 44 20 2b 20 63 6f 6c 20 2a 20 63 65 6c 6c 5f 77 2c 20 79 20 3d 20 50 41 44 .x.=.PAD.+.col.*.cell_w,.y.=.PAD
28cc0 20 2b 20 72 6f 77 20 2a 20 63 65 6c 6c 5f 68 3b 00 00 00 19 20 20 20 20 69 66 20 28 79 20 2b 20 .+.row.*.cell_h;........if.(y.+.
28ce0 63 65 6c 6c 5f 68 20 3e 20 74 61 68 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 cell_h.>.tah)..........break;...
28d00 3a 20 20 20 20 62 6f 6f 6c 20 69 6e 73 20 3d 20 73 65 6c 5f 6c 6f 20 3e 3d 20 30 20 26 26 20 69 :....bool.ins.=.sel_lo.>=.0.&&.i
28d20 20 3e 3d 20 73 65 6c 5f 6c 6f 20 26 26 20 69 20 3c 20 73 65 6c 5f 68 69 20 26 26 00 00 00 2e 20 .>=.sel_lo.&&.i.<.sel_hi.&&.....
28d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 20 3e 3d 20 74 6c 65 6e 20 7c 7c 20 74 65 78 74 ..............(i.>=.tlen.||.text
28d60 5b 69 5d 20 21 3d 20 27 5c 6e 27 29 3b 00 00 00 0c 20 20 20 20 69 66 20 28 69 6e 73 29 00 00 00 [i].!=.'\n');........if.(ins)...
28d80 39 20 20 20 20 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 63 9......frect(px,.pw,.ph,.x,.y,.c
28da0 65 6c 6c 5f 77 2c 20 63 65 6c 6c 5f 68 2c 20 53 45 4c 5f 43 4f 4c 4f 52 29 3b 00 00 00 14 20 20 ell_w,.cell_h,.SEL_COLOR);......
28dc0 20 20 69 66 20 28 69 20 3d 3d 20 63 75 72 73 6f 72 29 00 00 00 34 20 20 20 20 20 20 66 72 65 63 ..if.(i.==.cursor)...4......frec
28de0 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 32 2c 20 63 65 6c 6c 5f 68 2c 20 43 t(px,.pw,.ph,.x,.y,.2,.cell_h,.C
28e00 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 00 13 20 20 20 20 69 66 20 28 69 20 3c 20 74 6c 65 6e 29 20 UR_COLOR);........if.(i.<.tlen).
28e20 7b 00 00 00 1c 20 20 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 20 3d 3d 20 27 5c 6e 27 29 20 {..........if.(text[i].==.'\n').
28e40 7b 00 00 00 10 20 20 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 0e 20 20 20 20 20 20 20 {............col.=.0;...........
28e60 20 72 6f 77 2b 2b 3b 00 00 00 0e 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 24 20 20 20 .row++;..........}.else.{...$...
28e80 20 20 20 20 20 69 66 20 28 78 20 2b 20 63 65 6c 6c 5f 77 20 3e 20 70 77 20 2d 20 50 41 44 29 20 .....if.(x.+.cell_w.>.pw.-.PAD).
28ea0 7b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 10 20 20 20 20 20 {..............col.=.0;.........
28ec0 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 78 20 3d 20 50 41 44 .....row++;..............x.=.PAD
28ee0 3b 00 00 00 21 20 20 20 20 20 20 20 20 20 20 79 20 3d 20 50 41 44 20 2b 20 72 6f 77 20 2a 20 63 ;...!..........y.=.PAD.+.row.*.c
28f00 65 6c 6c 5f 68 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 1e 20 20 20 20 20 20 20 20 69 ell_h;............}............i
28f20 66 20 28 79 20 2b 20 63 65 6c 6c 5f 68 20 3c 3d 20 74 61 68 29 00 00 00 3a 20 20 20 20 20 20 20 f.(y.+.cell_h.<=.tah)...:.......
28f40 20 20 20 64 67 6c 79 70 68 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 78 2c 20 79 2c 20 28 75 6e 73 ...dglyph(px,.pw,.ph,.x,.y,.(uns
28f60 69 67 6e 65 64 20 63 68 61 72 29 74 65 78 74 5b 69 5d 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 igned.char)text[i],...>.........
28f80 20 20 20 20 20 20 20 20 69 6e 73 20 3f 20 28 75 69 6e 74 33 32 5f 74 29 53 45 4c 5f 46 47 20 3a ........ins.?.(uint32_t)SEL_FG.:
28fa0 20 28 75 69 6e 74 33 32 5f 74 29 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 20 .(uint32_t)FG_COLOR);...........
28fc0 20 63 6f 6c 2b 2b 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 .col++;..........}........}.....
28fe0 20 7d 00 00 00 00 00 00 00 0e 20 20 64 72 61 77 5f 62 61 72 28 61 29 3b 00 00 00 20 20 20 69 66 .}..........draw_bar(a);......if
29000 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 00 00 00 1f .(a->open_menu.!=.MENU_NONE)....
29020 20 20 20 20 64 72 61 77 5f 64 72 6f 70 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 29 3b 00 ....draw_drop(a,.a->open_menu);.
29040 00 00 00 00 00 00 30 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 ......0..wl_surface_damage_buffe
29060 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 70 77 2c 20 70 68 29 3b 00 00 00 29 20 20 77 6c 5f r(a->ws,.0,.0,.pw,.ph);...)..wl_
29080 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c surface_attach(a->ws,.a->buf,.0,
290a0 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 .0);......wl_surface_commit(a->w
290c0 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 s);....}.......)static.void.redr
290e0 61 77 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 1e 20 20 73 aw_about(struct.app.*a).{......s
29100 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 1d 20 truct.popup.*p.=.&a->about;.....
29120 20 69 66 20 28 21 70 2d 3e 6f 70 65 6e 20 7c 7c 20 21 70 2d 3e 70 69 78 65 6c 73 29 00 00 00 0b .if.(!p->open.||.!p->pixels)....
29140 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 17 20 20 76 6f 69 64 20 2a 70 78 20 3d 20 70 2d 3e 70 ....return;......void.*px.=.p->p
29160 69 78 65 6c 73 3b 00 00 00 1b 20 20 69 6e 74 20 70 77 20 3d 20 70 2d 3e 77 2c 20 70 68 20 3d 20 ixels;......int.pw.=.p->w,.ph.=.
29180 70 2d 3e 68 3b 00 00 00 23 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 p->h;...#..for.(int.i.=.0;.i.<.p
291a0 77 20 2a 20 70 68 3b 20 69 2b 2b 29 00 00 00 23 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a w.*.ph;.i++)...#....((uint32_t.*
291c0 29 70 78 29 5b 69 5d 20 3d 20 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 2c 20 20 66 72 65 63 74 28 70 )px)[i].=.BG_COLOR;...,..frect(p
291e0 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 30 2c 20 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f x,.pw,.ph,.0,.0,.pw,.1,.SEP_COLO
29200 52 29 3b 00 00 00 31 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 70 68 R);...1..frect(px,.pw,.ph,.0,.ph
29220 20 2d 20 31 2c 20 70 77 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2c 20 20 66 72 .-.1,.pw,.1,.SEP_COLOR);...,..fr
29240 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 30 2c 20 30 2c 20 31 2c 20 70 68 2c 20 53 45 50 ect(px,.pw,.ph,.0,.0,.1,.ph,.SEP
29260 5f 43 4f 4c 4f 52 29 3b 00 00 00 31 20 20 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 _COLOR);...1..frect(px,.pw,.ph,.
29280 70 77 20 2d 20 31 2c 20 30 2c 20 31 2c 20 70 68 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 pw.-.1,.0,.1,.ph,.SEP_COLOR);...
292a0 00 00 00 00 12 20 20 69 6e 74 20 79 20 3d 20 50 41 44 20 2a 20 32 3b 00 00 00 47 20 20 64 73 74 .......int.y.=.PAD.*.2;...G..dst
292c0 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 77 6c 45 44 2c r(px,.pw,.ph,.PAD.*.2,.y,."wlED,
292e0 20 20 77 61 79 6c 61 6e 64 20 74 65 78 74 20 65 64 69 74 6f 72 22 2c 20 46 47 5f 43 4f 4c 4f 52 ..wayland.text.editor",.FG_COLOR
29300 29 3b 00 00 00 14 20 20 79 20 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 50 41 44 3b 00 00 00 3c 20 20 );......y.+=.cell_h.+.PAD;...<..
29320 66 72 65 63 74 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 70 77 frect(px,.pw,.ph,.PAD.*.2,.y,.pw
29340 20 2d 20 50 41 44 20 2a 20 34 2c 20 31 2c 20 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 0b 20 20 .-.PAD.*.4,.1,.SEP_COLOR);......
29360 79 20 2b 3d 20 50 41 44 3b 00 00 00 44 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 y.+=.PAD;...D..dstr(px,.pw,.ph,.
29380 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 47 50 4c 20 PAD.*.2,.y,."licensed.under.GPL.
293a0 76 33 2e 30 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 12 20 20 79 20 2b 3d 20 63 65 6c 6c v3.0",.FG_COLOR);......y.+=.cell
293c0 5f 68 20 2b 20 36 3b 00 00 00 4d 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c 20 70 68 2c 20 50 41 _h.+.6;...M..dstr(px,.pw,.ph,.PA
293e0 44 20 2a 20 32 2c 20 79 2c 20 22 63 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 D.*.2,.y,."created.by..git.sr.ht
29400 2f 7e 63 6f 61 73 74 65 65 6e 2f 22 2c 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 12 20 20 79 20 /~coasteen/",.FG_COLOR);......y.
29420 2b 3d 20 63 65 6c 6c 5f 68 20 2b 20 36 3b 00 00 00 46 20 20 64 73 74 72 28 70 78 2c 20 70 77 2c +=.cell_h.+.6;...F..dstr(px,.pw,
29440 20 70 68 2c 20 50 41 44 20 2a 20 32 2c 20 79 2c 20 22 73 6f 75 72 63 65 3a 20 20 20 20 20 67 69 .ph,.PAD.*.2,.y,."source:.....gi
29460 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 77 6c 65 64 22 2c 00 00 00 11 20 20 20 20 t.sr.ht/~coasteen/wled",........
29480 20 20 20 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 30 20 20 77 6c 5f 73 75 72 66 61 63 ...FG_COLOR);.......0..wl_surfac
294a0 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 70 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 70 77 2c e_damage_buffer(p->ws,.0,.0,.pw,
294c0 20 70 68 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 70 2d 3e .ph);...)..wl_surface_attach(p->
294e0 77 73 2c 20 70 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 ws,.p->buf,.0,.0);......wl_surfa
29500 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4c 73 74 ce_commit(p->ws);....}.......Lst
29520 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 atic.void.about_xs_cfg(void.*d,.
29540 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 struct.xdg_surface.*xs,.uint32_t
29560 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 .serial).{......struct.app.*a.=.
29580 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 d;......struct.popup.*p.=.&a->ab
295a0 6f 75 74 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 out;...(..xdg_surface_ack_config
295c0 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 11 20 20 69 66 20 28 21 70 2d 3e 70 69 ure(xs,.serial);......if.(!p->pi
295e0 78 65 6c 73 29 00 00 00 42 20 20 20 20 70 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 xels)...B....p->pixels.=.make_sh
29600 6d 28 61 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 2c 20 26 70 2d 3e 62 75 66 2c 20 26 70 2d 3e 70 69 m(a,.p->w,.p->h,.&p->buf,.&p->pi
29620 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 17 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d xels_size);......p->configured.=
29640 20 74 72 75 65 3b 00 00 00 12 20 20 72 65 64 72 61 77 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 01 .true;......redraw_about(a);....
29660 7d 00 00 00 43 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 }...Cstatic.const.struct.xdg_sur
29680 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 73 5f 6c 20 3d 20 7b 2e 63 6f 6e face_listener.about_xs_l.=.{.con
296a0 66 69 67 75 72 65 20 3d 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 figure.=...I....................
296c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
296e0 20 20 20 20 20 20 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 7d 3b 00 00 00 00 00 00 00 50 73 74 61 .......about_xs_cfg};.......Psta
29700 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 tic.void.about_xt_cfg(void.*d,.s
29720 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 truct.xdg_toplevel.*xt,.int32_t.
29740 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 w,.int32_t.h,.../...............
29760 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 7d ..........struct.wl_array.*s).{}
29780 00 00 00 3e 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 28 76 ...>static.void.about_xt_close(v
297a0 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 oid.*d,.struct.xdg_toplevel.*xt)
297c0 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1e 20 20 .{......struct.app.*a.=.d;......
297e0 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 0f struct.popup.*p.=.&a->about;....
29800 20 20 69 66 20 28 70 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 ..if.(p->buf).{........wl_buffer
29820 5f 64 65 73 74 72 6f 79 28 70 2d 3e 62 75 66 29 3b 00 00 00 12 20 20 20 20 70 2d 3e 62 75 66 20 _destroy(p->buf);........p->buf.
29840 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 69 66 20 28 70 2d 3e 70 69 78 65 6c =.NULL;......}......if.(p->pixel
29860 73 29 20 7b 00 00 00 26 20 20 20 20 6d 75 6e 6d 61 70 28 70 2d 3e 70 69 78 65 6c 73 2c 20 70 2d s).{...&....munmap(p->pixels,.p-
29880 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 15 20 20 20 20 70 2d 3e 70 69 78 65 6c 73 20 >pixels_size);........p->pixels.
298a0 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 78 74 29 20 7b =.NULL;......}......if.(p->xt).{
298c0 00 00 00 20 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 70 2d 3e ........xdg_toplevel_destroy(p->
298e0 78 74 29 3b 00 00 00 11 20 20 20 20 70 2d 3e 78 74 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d xt);........p->xt.=.NULL;......}
29900 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 78 73 29 20 7b 00 00 00 1f 20 20 20 20 78 64 67 5f 73 75 ......if.(p->xs).{........xdg_su
29920 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d 3e 78 73 29 3b 00 00 00 11 20 20 20 20 70 2d 3e rface_destroy(p->xs);........p->
29940 78 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 77 73 xs.=.NULL;......}......if.(p->ws
29960 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 70 2d ).{........wl_surface_destroy(p-
29980 3e 77 73 29 3b 00 00 00 11 20 20 20 20 70 2d 3e 77 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 >ws);........p->ws.=.NULL;......
299a0 7d 00 00 00 12 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 66 61 6c 73 65 3b 00 00 00 18 20 20 70 2d 3e }......p->open.=.false;......p->
299c0 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 38 73 74 61 74 configured.=.false;....}...8stat
299e0 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 ic.const.struct.xdg_toplevel_lis
29a00 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 74 5f 6c 20 3d 20 7b 00 00 00 38 20 20 20 20 2e 63 6f 6e tener.about_xt_l.=.{...8.....con
29a20 66 69 67 75 72 65 20 3d 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 figure.=.about_xt_cfg,..close.=.
29a40 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 about_xt_close};.......'static.v
29a60 6f 69 64 20 6f 70 65 6e 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 oid.open_about(struct.app.*a).{.
29a80 00 00 1e 20 20 73 74 72 75 63 74 20 70 6f 70 75 70 20 2a 70 20 3d 20 26 61 2d 3e 61 62 6f 75 74 .....struct.popup.*p.=.&a->about
29aa0 3b 00 00 00 0e 20 20 69 66 20 28 70 2d 3e 6f 70 65 6e 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 ;......if.(p->open)........retur
29ac0 6e 3b 00 00 00 10 20 20 69 6e 74 20 6c 69 6e 65 73 20 3d 20 35 3b 00 00 00 1f 20 20 70 2d 3e 77 n;......int.lines.=.5;......p->w
29ae0 20 3d 20 32 32 20 2a 20 63 65 6c 6c 5f 77 20 2b 20 50 41 44 20 2a 20 34 3b 00 00 00 31 20 20 70 .=.22.*.cell_w.+.PAD.*.4;...1..p
29b00 2d 3e 68 20 3d 20 6c 69 6e 65 73 20 2a 20 28 63 65 6c 6c 5f 68 20 2b 20 36 29 20 2b 20 50 41 44 ->h.=.lines.*.(cell_h.+.6).+.PAD
29b20 20 2a 20 34 20 2b 20 63 65 6c 6c 5f 68 3b 00 00 00 11 20 20 69 66 20 28 70 2d 3e 77 20 3c 20 33 .*.4.+.cell_h;......if.(p->w.<.3
29b40 36 30 29 00 00 00 0f 20 20 20 20 70 2d 3e 77 20 3d 20 33 36 30 3b 00 00 00 11 20 20 69 66 20 28 60)........p->w.=.360;......if.(
29b60 70 2d 3e 68 20 3c 20 31 34 30 29 00 00 00 0f 20 20 20 20 70 2d 3e 68 20 3d 20 31 34 30 3b 00 00 p->h.<.140)........p->h.=.140;..
29b80 00 11 20 20 70 2d 3e 6f 70 65 6e 20 3d 20 74 72 75 65 3b 00 00 00 30 20 20 70 2d 3e 77 73 20 3d ....p->open.=.true;...0..p->ws.=
29ba0 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2d .wl_compositor_create_surface(a-
29bc0 3e 63 6f 6d 70 29 3b 00 00 00 34 20 20 70 2d 3e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 >comp);...4..p->xs.=.xdg_wm_base
29be0 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2d 3e 77 6d 2c 20 70 2d 3e 77 73 29 3b 00 _get_xdg_surface(a->wm,.p->ws);.
29c00 00 00 32 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d ..2..xdg_surface_add_listener(p-
29c20 3e 78 73 2c 20 26 61 62 6f 75 74 5f 78 73 5f 6c 2c 20 61 29 3b 00 00 00 2a 20 20 70 2d 3e 78 74 >xs,.&about_xs_l,.a);...*..p->xt
29c40 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 70 2d 3e 78 .=.xdg_surface_get_toplevel(p->x
29c60 73 29 3b 00 00 00 33 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e s);...3..xdg_toplevel_add_listen
29c80 65 72 28 70 2d 3e 78 74 2c 20 26 61 62 6f 75 74 5f 78 74 5f 6c 2c 20 61 29 3b 00 00 00 2e 20 20 er(p->xt,.&about_xt_l,.a);......
29ca0 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 70 2d 3e 78 74 2c 20 22 41 xdg_toplevel_set_title(p->xt,."A
29cc0 62 6f 75 74 20 77 6c 65 64 22 29 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 bout.wled");.../..xdg_toplevel_s
29ce0 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 et_min_size(p->xt,.p->w,.p->h);.
29d00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 70 ../..xdg_toplevel_set_max_size(p
29d20 2d 3e 78 74 2c 20 70 2d 3e 77 2c 20 70 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 ->xt,.p->w,.p->h);......wl_surfa
29d40 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 ce_commit(p->ws);....}.......Pst
29d60 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 73 74 61 72 74 28 76 6f 69 64 29 20 7b 20 72 65 74 75 72 atic.int.sel_start(void).{.retur
29d80 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 73 65 6c 5f 61 6e 63 68 n.sel_anchor.<.cursor.?.sel_anch
29da0 6f 72 20 3a 20 63 75 72 73 6f 72 3b 20 7d 00 00 00 1a 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c or.:.cursor;.}....static.int.sel
29dc0 5f 6c 65 6e 28 76 6f 69 64 29 20 7b 00 00 00 49 20 20 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 _len(void).{...I..return.sel_anc
29de0 68 6f 72 20 3c 20 63 75 72 73 6f 72 20 3f 20 63 75 72 73 6f 72 20 2d 20 73 65 6c 5f 61 6e 63 68 hor.<.cursor.?.cursor.-.sel_anch
29e00 6f 72 20 3a 20 73 65 6c 5f 61 6e 63 68 6f 72 20 2d 20 63 75 72 73 6f 72 3b 00 00 00 01 7d 00 00 or.:.sel_anchor.-.cursor;....}..
29e20 00 00 00 00 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 6c 65 74 65 5f 73 65 6c 28 76 6f 69 ......static.void.delete_sel(voi
29e40 64 29 20 7b 00 00 00 15 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 00 00 d).{......if.(sel_anchor.<.0)...
29e60 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 28 20 20 69 6e 74 20 6c 6f 20 3d 20 73 65 6c 5f 73 .....return;...(..int.lo.=.sel_s
29e80 74 61 72 74 28 29 2c 20 6c 65 6e 20 3d 20 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 37 20 20 6d 65 tart(),.len.=.sel_len();...7..me
29ea0 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 6c 6f 2c 20 74 65 78 74 20 2b 20 6c 6f 20 2b 20 6c 65 6e mmove(text.+.lo,.text.+.lo.+.len
29ec0 2c 20 74 6c 65 6e 20 2d 20 6c 6f 20 2d 20 6c 65 6e 29 3b 00 00 00 0e 20 20 74 6c 65 6e 20 2d 3d ,.tlen.-.lo.-.len);......tlen.-=
29ee0 20 6c 65 6e 3b 00 00 00 14 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 .len;......text[tlen].=.'\0';...
29f00 0e 20 20 63 75 72 73 6f 72 20 3d 20 6c 6f 3b 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 ...cursor.=.lo;......sel_anchor.
29f20 3d 20 2d 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e =.-1;....}.......)static.void.in
29f40 73 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6c 65 6e 29 20 7b 00 00 00 1d 20 s(const.char.*s,.int.len).{.....
29f60 20 69 66 20 28 74 6c 65 6e 20 2b 20 6c 65 6e 20 3e 3d 20 4d 41 58 5f 54 45 58 54 29 00 00 00 1e .if.(tlen.+.len.>=.MAX_TEXT)....
29f80 20 20 20 20 6c 65 6e 20 3d 20 4d 41 58 5f 54 45 58 54 20 2d 20 74 6c 65 6e 20 2d 20 31 3b 00 00 ....len.=.MAX_TEXT.-.tlen.-.1;..
29fa0 00 3d 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 20 2b 20 6c 65 6e 2c .=..memmove(text.+.cursor.+.len,
29fc0 20 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 29 3b 00 .text.+.cursor,.tlen.-.cursor);.
29fe0 00 00 20 20 20 6d 65 6d 63 70 79 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 73 2c 20 6c 65 .....memcpy(text.+.cursor,.s,.le
2a000 6e 29 3b 00 00 00 0e 20 20 74 6c 65 6e 20 2b 3d 20 6c 65 6e 3b 00 00 00 14 20 20 74 65 78 74 5b n);......tlen.+=.len;......text[
2a020 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 10 20 20 63 75 72 73 6f 72 20 2b 3d 20 6c 65 6e tlen].=.'\0';......cursor.+=.len
2a040 3b 00 00 00 0f 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ;......dirty.=.true;....}.......
2a060 25 73 74 61 74 69 63 20 76 6f 69 64 20 63 6f 70 79 5f 73 65 6c 28 73 74 72 75 63 74 20 61 70 70 %static.void.copy_sel(struct.app
2a080 20 2a 61 29 20 7b 00 00 00 15 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 .*a).{......if.(sel_anchor.<.0).
2a0a0 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 28 20 20 69 6e 74 20 6c 6f 20 3d 20 73 65 6c .......return;...(..int.lo.=.sel
2a0c0 5f 73 74 61 72 74 28 29 2c 20 6c 65 6e 20 3d 20 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 2a 20 20 _start(),.len.=.sel_len();...*..
2a0e0 69 66 20 28 6c 65 6e 20 3e 20 28 69 6e 74 29 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 if.(len.>.(int)sizeof(a->clipboa
2a100 72 64 29 20 2d 20 31 29 00 00 00 23 20 20 20 20 6c 65 6e 20 3d 20 73 69 7a 65 6f 66 28 61 2d 3e rd).-.1)...#....len.=.sizeof(a->
2a120 63 6c 69 70 62 6f 61 72 64 29 20 2d 20 31 3b 00 00 00 27 20 20 6d 65 6d 63 70 79 28 61 2d 3e 63 clipboard).-.1;...'..memcpy(a->c
2a140 6c 69 70 62 6f 61 72 64 2c 20 74 65 78 74 20 2b 20 6c 6f 2c 20 6c 65 6e 29 3b 00 00 00 1b 20 20 lipboard,.text.+.lo,.len);......
2a160 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5b 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 19 20 20 61 a->clipboard[len].=.'\0';......a
2a180 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 20 3d 20 6c 65 6e 3b 00 00 00 0e 20 20 69 66 20 28 ->clipboard_len.=.len;......if.(
2a1a0 61 2d 3e 64 73 29 20 7b 00 00 00 22 20 20 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 a->ds).{..."....wl_data_source_d
2a1c0 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b 00 00 00 11 20 20 20 20 61 2d 3e 64 73 20 3d 20 4e 55 estroy(a->ds);........a->ds.=.NU
2a1e0 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 66 20 28 21 61 2d 3e 64 64 6d 20 7c 7c 20 21 LL;......}......if.(!a->ddm.||.!
2a200 61 2d 3e 64 64 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 3c 20 20 61 2d 3e 64 73 a->dd)........return;...<..a->ds
2a220 20 3d 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 63 72 65 61 74 65 .=.wl_data_device_manager_create
2a240 5f 64 61 74 61 5f 73 6f 75 72 63 65 28 61 2d 3e 64 64 6d 29 3b 00 00 00 3a 20 20 77 6c 5f 64 61 _data_source(a->ddm);...:..wl_da
2a260 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 ta_source_offer(a->ds,."text/pla
2a280 69 6e 3b 63 68 61 72 73 65 74 3d 75 74 66 2d 38 22 29 3b 00 00 00 2c 20 20 77 6c 5f 64 61 74 61 in;charset=utf-8");...,..wl_data
2a2a0 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 74 65 78 74 2f 70 6c 61 69 6e _source_offer(a->ds,."text/plain
2a2c0 22 29 3b 00 00 00 2d 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d ");...-..wl_data_source_offer(a-
2a2e0 3e 64 73 2c 20 22 55 54 46 38 5f 53 54 52 49 4e 47 22 29 3b 00 00 00 28 20 20 77 6c 5f 64 61 74 >ds,."UTF8_STRING");...(..wl_dat
2a300 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 20 22 53 54 52 49 4e 47 22 29 3b a_source_offer(a->ds,."STRING");
2a320 00 00 00 3d 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 73 65 74 5f 73 65 6c 65 63 74 69 ...=..wl_data_device_set_selecti
2a340 6f 6e 28 61 2d 3e 64 64 2c 20 61 2d 3e 64 73 2c 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 29 on(a->dd,.a->ds,.a->last_serial)
2a360 3b 00 00 00 01 7d 00 00 00 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 ;....}.......6static.void.proces
2a380 73 5f 6b 65 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 20 75 69 6e 74 33 32 5f 74 20 6b 65 s_key(struct.app.*a,.uint32_t.ke
2a3a0 79 29 20 7b 00 00 00 14 20 20 69 66 20 28 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 00 00 00 0b y).{......if.(!a->xkb_state)....
2a3c0 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 1d 20 20 78 6b 62 5f 6b 65 79 63 6f 64 65 5f 74 20 6b ....return;......xkb_keycode_t.k
2a3e0 63 20 3d 20 6b 65 79 20 2b 20 38 3b 00 00 00 41 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 73 c.=.key.+.8;...A..xkb_keysym_t.s
2a400 79 6d 20 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e 65 5f 73 79 6d 28 61 ym.=.xkb_state_key_get_one_sym(a
2a420 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 4a 20 20 69 6e 74 20 63 74 72 6c 20 ->xkb_state,.kc);...J..int.ctrl.
2a440 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 =.xkb_state_mod_name_is_active(a
2a460 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 43 54 52 4c 2c 00 ->xkb_state,.XKB_MOD_NAME_CTRL,.
2a480 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..D.............................
2a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 .............XKB_STATE_MODS_EFFE
2a4c0 43 54 49 56 45 29 3b 00 00 00 4c 20 20 69 6e 74 20 73 68 69 66 74 20 3d 20 78 6b 62 5f 73 74 61 CTIVE);...L..int.shift.=.xkb_sta
2a4e0 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 te_mod_name_is_active(a->xkb_sta
2a500 74 65 2c 20 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f 53 48 49 46 54 2c 00 00 00 45 20 20 20 20 20 te,.XKB_MOD_NAME_SHIFT,...E.....
2a520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a540 20 20 20 20 20 20 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b ......XKB_STATE_MODS_EFFECTIVE);
2a560 00 00 00 49 20 20 78 6b 62 5f 6c 61 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 6c 61 79 6f 75 74 20 ...I..xkb_layout_index_t.layout.
2a580 3d 20 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 74 28 61 2d 3e 78 6b =.xkb_state_key_get_layout(a->xk
2a5a0 62 5f 73 74 61 74 65 2c 20 6b 63 29 3b 00 00 00 19 20 20 63 6f 6e 73 74 20 78 6b 62 5f 6b 65 79 b_state,.kc);......const.xkb_key
2a5c0 73 79 6d 5f 74 20 2a 62 73 3b 00 00 00 4e 20 20 69 6e 74 20 6e 20 3d 20 78 6b 62 5f 6b 65 79 6d sym_t.*bs;...N..int.n.=.xkb_keym
2a5e0 61 70 5f 6b 65 79 5f 67 65 74 5f 73 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 61 2d 3e 78 6b 62 5f ap_key_get_syms_by_level(a->xkb_
2a600 6b 65 79 6d 61 70 2c 20 6b 63 2c 20 6c 61 79 6f 75 74 2c 20 30 2c 20 26 62 73 29 3b 00 00 00 2b keymap,.kc,.layout,.0,.&bs);...+
2a620 20 20 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 70 6c 61 69 6e 20 3d 20 6e 20 3e 20 30 20 3f 20 62 ..xkb_keysym_t.plain.=.n.>.0.?.b
2a640 73 5b 30 5d 20 3a 20 73 79 6d 3b 00 00 00 00 00 00 00 1e 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 s[0].:.sym;..........if.(sym.==.
2a660 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 65 29 20 7b 00 00 00 24 20 20 20 20 69 66 20 28 61 2d 3e XKB_KEY_Escape).{...$....if.(a->
2a680 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 1f 20 20 20 open_menu.!=.MENU_NONE).{.......
2a6a0 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 3b 00 00 00 1b ...a->open_menu.=.MENU_NONE;....
2a6c0 20 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 10 20 ......a->hovered_item.=.-1;.....
2a6e0 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 .....redraw(a);........}........
2a700 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 69 66 20 28 63 74 72 6c 29 20 7b 00 return;......}......if.(ctrl).{.
2a720 00 00 3a 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 65 71 75 61 ..:....if.(plain.==.XKB_KEY_equa
2a740 6c 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 70 6c 75 73 29 20 7b 00 00 00 l.||.plain.==.XKB_KEY_plus).{...
2a760 10 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 2b 2b 3b 00 00 00 1c 20 20 20 20 20 20 75 70 64 61 74 .......font_pt++;..........updat
2a780 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 e_font_metrics();..........redra
2a7a0 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 w(a);..........return;........}.
2a7c0 00 00 21 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 6d 69 6e 75 ..!....if.(plain.==.XKB_KEY_minu
2a7e0 73 29 20 7b 00 00 00 18 20 20 20 20 20 20 69 66 20 28 66 6f 6e 74 5f 70 74 20 3e 20 34 29 20 7b s).{..........if.(font_pt.>.4).{
2a800 00 00 00 12 20 20 20 20 20 20 20 20 66 6f 6e 74 5f 70 74 2d 2d 3b 00 00 00 1e 20 20 20 20 20 20 ............font_pt--;..........
2a820 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 12 20 20 20 20 ..update_font_metrics();........
2a840 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0d 20 20 20 ....redraw(a);..........}.......
2a860 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 70 ...return;........}........if.(p
2a880 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 30 29 20 7b 00 00 00 1a 20 20 20 20 20 20 66 6f lain.==.XKB_KEY_0).{..........fo
2a8a0 6e 74 5f 70 74 20 3d 20 46 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 1c 20 20 20 20 20 20 75 70 64 61 nt_pt.=.FONT_SIZE;..........upda
2a8c0 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 te_font_metrics();..........redr
2a8e0 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d aw(a);..........return;........}
2a900 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 73 20 7c ...3....if.(plain.==.XKB_KEY_s.|
2a920 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 53 29 20 7b 00 00 00 11 20 20 20 20 20 |.plain.==.XKB_KEY_S).{.........
2a940 20 64 6f 5f 73 61 76 65 28 61 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b .do_save(a);..........redraw(a);
2a960 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 ..........return;........}...3..
2a980 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 61 20 7c 7c 20 70 6c 61 69 ..if.(plain.==.XKB_KEY_a.||.plai
2a9a0 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 41 29 20 7b 00 00 00 15 20 20 20 20 20 20 73 65 6c 5f 61 n.==.XKB_KEY_A).{..........sel_a
2a9c0 6e 63 68 6f 72 20 3d 20 30 3b 00 00 00 14 20 20 20 20 20 20 63 75 72 73 6f 72 20 3d 20 74 6c 65 nchor.=.0;..........cursor.=.tle
2a9e0 6e 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 n;..........redraw(a);..........
2aa00 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 return;........}...3....if.(plai
2aa20 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 63 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b n.==.XKB_KEY_c.||.plain.==.XKB_K
2aa40 45 59 5f 43 29 20 7b 00 00 00 12 20 20 20 20 20 20 63 6f 70 79 5f 73 65 6c 28 61 29 3b 00 00 00 EY_C).{..........copy_sel(a);...
2aa60 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 .......return;........}...3....i
2aa80 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 78 20 7c 7c 20 70 6c 61 69 6e 20 3d f.(plain.==.XKB_KEY_x.||.plain.=
2aaa0 3d 20 58 4b 42 5f 4b 45 59 5f 58 29 20 7b 00 00 00 12 20 20 20 20 20 20 63 6f 70 79 5f 73 65 6c =.XKB_KEY_X).{..........copy_sel
2aac0 28 61 29 3b 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 10 20 (a);..........delete_sel();.....
2aae0 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b .....redraw(a);..........return;
2ab00 00 00 00 05 20 20 20 20 7d 00 00 00 33 20 20 20 20 69 66 20 28 70 6c 61 69 6e 20 3d 3d 20 58 4b ........}...3....if.(plain.==.XK
2ab20 42 5f 4b 45 59 5f 76 20 7c 7c 20 70 6c 61 69 6e 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 56 29 20 7b B_KEY_v.||.plain.==.XKB_KEY_V).{
2ab40 00 00 00 1a 20 20 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 ..........if.(sel_anchor.>=.0)..
2ab60 00 15 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 2a 20 20 20 20 20 ..........delete_sel();...*.....
2ab80 20 69 6e 73 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f .ins(a->clipboard,.a->clipboard_
2aba0 6c 65 6e 29 3b 00 00 00 10 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 len);..........redraw(a);.......
2abc0 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 4b 20 20 ...return;........}......}...K..
2abe0 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 7c 7c 20 73 79 6d 20 3d if.(sym.==.XKB_KEY_Left.||.sym.=
2ac00 3d 20 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 7c 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 =.XKB_KEY_Right.||.sym.==.XKB_KE
2ac20 59 5f 48 6f 6d 65 20 7c 7c 00 00 00 1b 20 20 20 20 20 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 Y_Home.||..........sym.==.XKB_KE
2ac40 59 5f 45 6e 64 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 73 68 69 66 74 20 26 26 20 73 65 6c Y_End).{........if.(shift.&&.sel
2ac60 5f 61 6e 63 68 6f 72 20 3c 20 30 29 00 00 00 1a 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 _anchor.<.0)..........sel_anchor
2ac80 20 3d 20 63 75 72 73 6f 72 3b 00 00 00 14 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 68 69 66 .=.cursor;........else.if.(!shif
2aca0 74 29 00 00 00 16 20 20 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 2a t)..........sel_anchor.=.-1;...*
2acc0 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 20 26 26 20 63 ....if.(sym.==.XKB_KEY_Left.&&.c
2ace0 75 72 73 6f 72 20 3e 20 30 29 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 ursor.>.0)..........cursor--;...
2ad00 2e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 20 26 26 .....if.(sym.==.XKB_KEY_Right.&&
2ad20 20 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 29 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2b .cursor.<.tlen)..........cursor+
2ad40 2b 3b 00 00 00 1e 20 20 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 48 6f 6d +;........if.(sym.==.XKB_KEY_Hom
2ad60 65 29 20 7b 00 00 00 34 20 20 20 20 20 20 77 68 69 6c 65 20 28 63 75 72 73 6f 72 20 3e 20 30 20 e).{...4......while.(cursor.>.0.
2ad80 26 26 20 74 65 78 74 5b 63 75 72 73 6f 72 20 2d 20 31 5d 20 21 3d 20 27 5c 6e 27 29 00 00 00 11 &&.text[cursor.-.1].!=.'\n')....
2ada0 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 ........cursor--;........}......
2adc0 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 7b 00 00 00 33 20 ..if.(sym.==.XKB_KEY_End).{...3.
2ade0 20 20 20 20 20 77 68 69 6c 65 20 28 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 20 26 26 20 74 65 78 .....while.(cursor.<.tlen.&&.tex
2ae00 74 5b 63 75 72 73 6f 72 5d 20 21 3d 20 27 5c 6e 27 29 00 00 00 11 20 20 20 20 20 20 20 20 63 75 t[cursor].!=.'\n')............cu
2ae20 72 73 6f 72 2b 2b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 26 20 20 20 20 69 66 20 28 73 68 69 66 rsor++;........}...&....if.(shif
2ae40 74 20 26 26 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 3d 20 63 75 72 73 6f 72 29 00 00 00 16 20 20 t.&&.sel_anchor.==.cursor)......
2ae60 20 20 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 0e 20 20 20 20 72 65 64 72 ....sel_anchor.=.-1;........redr
2ae80 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 21 aw(a);........return;......}...!
2aea0 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 42 61 63 6b 53 70 61 63 65 29 20 ..if.(sym.==.XKB_KEY_BackSpace).
2aec0 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 {........if.(sel_anchor.>=.0)...
2aee0 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 1a 20 20 20 20 65 6c 73 65 .......delete_sel();........else
2af00 20 69 66 20 28 63 75 72 73 6f 72 20 3e 20 30 29 20 7b 00 00 00 3f 20 20 20 20 20 20 6d 65 6d 6d .if.(cursor.>.0).{...?......memm
2af20 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 20 2d 20 31 2c 20 74 65 78 74 20 2b 20 63 75 ove(text.+.cursor.-.1,.text.+.cu
2af40 72 73 6f 72 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 29 3b 00 00 00 0d 20 20 20 20 20 20 74 rsor,.tlen.-.cursor);..........t
2af60 6c 65 6e 2d 2d 3b 00 00 00 0f 20 20 20 20 20 20 63 75 72 73 6f 72 2d 2d 3b 00 00 00 18 20 20 20 len--;..........cursor--;.......
2af80 20 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 13 20 20 20 20 20 20 64 ...text[tlen].=.'\0';..........d
2afa0 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 72 65 64 irty.=.true;........}........red
2afc0 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 raw(a);........return;......}...
2afe0 1e 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 20 7b 00 ...if.(sym.==.XKB_KEY_Delete).{.
2b000 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 .......if.(sel_anchor.>=.0).....
2b020 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 1d 20 20 20 20 65 6c 73 65 20 69 .....delete_sel();........else.i
2b040 66 20 28 63 75 72 73 6f 72 20 3c 20 74 6c 65 6e 29 20 7b 00 00 00 43 20 20 20 20 20 20 6d 65 6d f.(cursor.<.tlen).{...C......mem
2b060 6d 6f 76 65 28 74 65 78 74 20 2b 20 63 75 72 73 6f 72 2c 20 74 65 78 74 20 2b 20 63 75 72 73 6f move(text.+.cursor,.text.+.curso
2b080 72 20 2b 20 31 2c 20 74 6c 65 6e 20 2d 20 63 75 72 73 6f 72 20 2d 20 31 29 3b 00 00 00 0d 20 20 r.+.1,.tlen.-.cursor.-.1);......
2b0a0 20 20 20 20 74 6c 65 6e 2d 2d 3b 00 00 00 18 20 20 20 20 20 20 74 65 78 74 5b 74 6c 65 6e 5d 20 ....tlen--;..........text[tlen].
2b0c0 3d 20 27 5c 30 27 3b 00 00 00 13 20 20 20 20 20 20 64 69 72 74 79 20 3d 20 74 72 75 65 3b 00 00 =.'\0';..........dirty.=.true;..
2b0e0 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 ......}........redraw(a);.......
2b100 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 39 20 20 69 66 20 28 73 79 6d 20 3d 3d 20 .return;......}...9..if.(sym.==.
2b120 58 4b 42 5f 4b 45 59 5f 52 65 74 75 72 6e 20 7c 7c 20 73 79 6d 20 3d 3d 20 58 4b 42 5f 4b 45 59 XKB_KEY_Return.||.sym.==.XKB_KEY
2b140 5f 4b 50 5f 45 6e 74 65 72 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 _KP_Enter).{........if.(sel_anch
2b160 6f 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 or.>=.0)..........delete_sel();.
2b180 00 00 11 20 20 20 20 69 6e 73 28 22 5c 6e 22 2c 20 31 29 3b 00 00 00 0e 20 20 20 20 72 65 64 72 .......ins("\n",.1);........redr
2b1a0 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0e aw(a);........return;......}....
2b1c0 20 20 63 68 61 72 20 62 75 66 5b 38 5d 3b 00 00 00 46 20 20 69 6e 74 20 6c 65 6e 20 3d 20 78 6b ..char.buf[8];...F..int.len.=.xk
2b1e0 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 b_state_key_get_utf8(a->xkb_stat
2b200 65 2c 20 6b 63 2c 20 62 75 66 2c 20 73 69 7a 65 6f 66 20 62 75 66 29 3b 00 00 00 2f 20 20 69 66 e,.kc,.buf,.sizeof.buf);.../..if
2b220 20 28 6c 65 6e 20 3e 20 30 20 26 26 20 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b .(len.>.0.&&.(unsigned.char)buf[
2b240 30 5d 20 3e 3d 20 33 32 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 73 65 6c 5f 61 6e 63 68 6f 0].>=.32).{........if.(sel_ancho
2b260 72 20 3e 3d 20 30 29 00 00 00 13 20 20 20 20 20 20 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 r.>=.0)..........delete_sel();..
2b280 00 12 20 20 20 20 69 6e 73 28 62 75 66 2c 20 6c 65 6e 29 3b 00 00 00 0e 20 20 20 20 72 65 64 72 ......ins(buf,.len);........redr
2b2a0 61 77 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 aw(a);......}....}.......Gstatic
2b2c0 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 .void.wm_ping(void.*d,.struct.xd
2b2e0 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 g_wm_base.*wm,.uint32_t.serial).
2b300 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 {......xdg_wm_base_pong(wm,.seri
2b320 61 6c 29 3b 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 al);....}...Istatic.const.struct
2b340 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 .xdg_wm_base_listener.wm_listene
2b360 72 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 26 73 74 r.=.{.ping.=.wm_ping};.......&st
2b380 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a atic.void.alloc_buf(struct.app.*
2b3a0 61 29 20 7b 00 00 00 0f 20 20 69 66 20 28 61 2d 3e 62 75 66 29 20 7b 00 00 00 1e 20 20 20 20 77 a).{......if.(a->buf).{........w
2b3c0 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 12 20 20 20 l_buffer_destroy(a->buf);.......
2b3e0 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 12 20 20 69 66 20 28 .a->buf.=.NULL;......}......if.(
2b400 61 2d 3e 70 69 78 65 6c 73 29 20 7b 00 00 00 26 20 20 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 a->pixels).{...&....munmap(a->pi
2b420 78 65 6c 73 2c 20 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 15 20 20 20 20 61 2d xels,.a->pixels_size);........a-
2b440 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 40 20 20 61 2d 3e 70 >pixels.=.NULL;......}...@..a->p
2b460 69 78 65 6c 73 20 3d 20 6d 61 6b 65 5f 73 68 6d 28 61 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 ixels.=.make_shm(a,.a->w,.a->h,.
2b480 26 61 2d 3e 62 75 66 2c 20 26 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 01 7d 00 &a->buf,.&a->pixels_size);....}.
2b4a0 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a ......Fstatic.void.xs_cfg(void.*
2b4c0 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 d,.struct.xdg_surface.*xs,.uint3
2b4e0 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 2_t.serial).{......struct.app.*a
2b500 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 .=.d;...(..xdg_surface_ack_confi
2b520 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 2d 20 20 69 66 20 28 61 2d 3e 70 65 gure(xs,.serial);...-..if.(a->pe
2b540 6e 64 69 6e 67 5f 77 20 3e 20 30 20 26 26 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 20 3e 20 30 29 nding_w.>.0.&&.a->pending_h.>.0)
2b560 20 7b 00 00 00 18 20 20 20 20 61 2d 3e 77 20 3d 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3b 00 00 .{........a->w.=.a->pending_w;..
2b580 00 18 20 20 20 20 61 2d 3e 68 20 3d 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3b 00 00 00 15 20 20 ......a->h.=.a->pending_h;......
2b5a0 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 20 3d 20 30 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 ..a->pending_w.=.0;........a->pe
2b5c0 6e 64 69 6e 67 5f 68 20 3d 20 30 3b 00 00 00 03 20 20 7d 00 00 00 15 20 20 69 66 20 28 21 61 2d nding_h.=.0;......}......if.(!a-
2b5e0 3e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 19 20 20 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 >configured)........a->configure
2b600 64 20 3d 20 74 72 75 65 3b 00 00 00 0f 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 0c d.=.true;......alloc_buf(a);....
2b620 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 ..redraw(a);....}...Mstatic.cons
2b640 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 t.struct.xdg_surface_listener.xs
2b660 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 _listener.=.{.configure.=.xs_cfg
2b680 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 };.......Jstatic.void.xt_cfg(voi
2b6a0 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 d.*d,.struct.xdg_toplevel.*xt,.i
2b6c0 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 nt32_t.w,.int32_t.h,...(........
2b6e0 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b ...........struct.wl_array.*s).{
2b700 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 17 20 20 69 66 ......struct.app.*a.=.d;......if
2b720 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 29 20 7b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 .(w.>.0.&&.h.>.0).{........a->pe
2b740 6e 64 69 6e 67 5f 77 20 3d 20 77 3b 00 00 00 15 20 20 20 20 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 nding_w.=.w;........a->pending_h
2b760 20 3d 20 68 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 .=.h;......}....}...Cstatic.void
2b780 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f .xt_close(void.*d,.struct.xdg_to
2b7a0 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 65 78 69 74 28 30 29 3b 20 7d 00 00 00 4d 73 74 61 74 plevel.*xt).{.exit(0);.}...Mstat
2b7c0 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 ic.const.struct.xdg_toplevel_lis
2b7e0 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 tener.xt_listener.=.{.configure.
2b800 3d 20 78 74 5f 63 66 67 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.xt_cfg,...L...................
2b820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b840 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 .......close.=.xt_close};.......
2b860 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 74 61 72 67 65 74 28 76 6f 69 64 20 2a 64 2c 20 Jstatic.void.ds_target(void.*d,.
2b880 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 20 63 6f 6e 73 74 20 struct.wl_data_source.*s,.const.
2b8a0 63 68 61 72 20 2a 6d 29 20 7b 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 73 65 char.*m).{}...Estatic.void.ds_se
2b8c0 6e 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 nd(void.*d,.struct.wl_data_sourc
2b8e0 65 20 2a 73 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 2c 00 00 00 21 20 20 20 20 20 20 20 20 e.*s,.const.char.*m,...!........
2b900 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 66 64 29 20 7b 00 00 00 14 20 20 73 ............int32_t.fd).{......s
2b920 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 2c 20 20 77 72 69 74 65 28 66 64 2c truct.app.*a.=.d;...,..write(fd,
2b940 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 .a->clipboard,.a->clipboard_len)
2b960 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 3d 73 74 61 74 69 63 ;......close(fd);....}...=static
2b980 20 76 6f 69 64 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 .void.ds_cancelled(void.*d,.stru
2b9a0 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 ct.wl_data_source.*s).{......str
2b9c0 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 0e 20 20 69 66 20 28 61 2d 3e 64 73 29 20 uct.app.*a.=.d;......if.(a->ds).
2b9e0 7b 00 00 00 22 20 20 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 {..."....wl_data_source_destroy(
2ba00 61 2d 3e 64 73 29 3b 00 00 00 11 20 20 20 20 61 2d 3e 64 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 a->ds);........a->ds.=.NULL;....
2ba20 20 20 7d 00 00 00 01 7d 00 00 00 3b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ..}....}...;static.const.struct.
2ba40 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 73 5f 6c 69 73 74 65 wl_data_source_listener.ds_liste
2ba60 6e 65 72 20 3d 20 7b 00 00 00 45 20 20 20 20 2e 74 61 72 67 65 74 20 3d 20 64 73 5f 74 61 72 67 ner.=.{...E.....target.=.ds_targ
2ba80 65 74 2c 20 2e 73 65 6e 64 20 3d 20 64 73 5f 73 65 6e 64 2c 20 2e 63 61 6e 63 65 6c 6c 65 64 20 et,..send.=.ds_send,..cancelled.
2baa0 3d 20 64 73 5f 63 61 6e 63 65 6c 6c 65 64 7d 3b 00 00 00 00 00 00 00 38 73 74 61 74 69 63 20 76 =.ds_cancelled};.......8static.v
2bac0 6f 69 64 20 64 64 5f 6f 66 66 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f oid.dd_offer(void.*d,.struct.wl_
2bae0 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 data_device.*dd,...0............
2bb00 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f .........struct.wl_data_offer.*o
2bb20 29 20 7b 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 65 6e 74 65 72 28 76 6f 69 ).{}...Dstatic.void.dd_enter(voi
2bb40 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c d.*d,.struct.wl_data_device.*dd,
2bb60 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .uint32_t.s,...G................
2bb80 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 77 6c 5f 66 .....struct.wl_surface.*su,.wl_f
2bba0 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 2c 00 00 00 30 20 20 20 20 20 ixed_t.x,.wl_fixed_t.y,...0.....
2bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f ................struct.wl_data_o
2bbe0 66 66 65 72 20 2a 6f 29 20 7b 7d 00 00 00 3b 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6c 65 ffer.*o).{}...;static.void.dd_le
2bc00 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 ave(void.*d,.struct.wl_data_devi
2bc20 63 65 20 2a 64 64 29 20 7b 7d 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 6d 6f 74 ce.*dd).{}...Estatic.void.dd_mot
2bc40 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 ion(void.*d,.struct.wl_data_devi
2bc60 63 65 20 2a 64 64 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 ce.*dd,.uint32_t.t,...4.........
2bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 .............wl_fixed_t.x,.wl_fi
2bca0 78 65 64 5f 74 20 79 29 20 7b 7d 00 00 00 3a 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 64 72 xed_t.y).{}...:static.void.dd_dr
2bcc0 6f 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 op(void.*d,.struct.wl_data_devic
2bce0 65 20 2a 64 64 29 20 7b 7d 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 73 65 6c 65 e.*dd).{}...<static.void.dd_sele
2bd00 63 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 ction(void.*d,.struct.wl_data_de
2bd20 76 69 63 65 20 2a 64 64 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vice.*dd,...4...................
2bd40 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 20 7b ......struct.wl_data_offer.*o).{
2bd60 7d 00 00 00 3b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 }...;static.const.struct.wl_data
2bd80 5f 64 65 76 69 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b _device_listener.dd_listener.=.{
2bda0 00 00 00 1b 20 20 20 20 2e 64 61 74 61 5f 6f 66 66 65 72 20 3d 20 64 64 5f 6f 66 66 65 72 2c 00 .........data_offer.=.dd_offer,.
2bdc0 00 00 16 20 20 20 20 2e 65 6e 74 65 72 20 3d 20 64 64 5f 65 6e 74 65 72 2c 00 00 00 16 20 20 20 ........enter.=.dd_enter,.......
2bde0 20 2e 6c 65 61 76 65 20 3d 20 64 64 5f 6c 65 61 76 65 2c 00 00 00 18 20 20 20 20 2e 6d 6f 74 69 ..leave.=.dd_leave,.........moti
2be00 6f 6e 20 3d 20 64 64 5f 6d 6f 74 69 6f 6e 2c 00 00 00 14 20 20 20 20 2e 64 72 6f 70 20 3d 20 64 on.=.dd_motion,.........drop.=.d
2be20 64 5f 64 72 6f 70 2c 00 00 00 1f 20 20 20 20 2e 73 65 6c 65 63 74 69 6f 6e 20 3d 20 64 64 5f 73 d_drop,.........selection.=.dd_s
2be40 65 6c 65 63 74 69 6f 6e 7d 3b 00 00 00 00 00 00 00 40 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 election};.......@static.void.pt
2be60 72 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 r_enter(void.*d,.struct.wl_point
2be80 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 4b 20 20 20 20 20 20 20 20 20 20 er.*p,.uint32_t.s,...K..........
2bea0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 ............struct.wl_surface.*s
2bec0 75 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b u,.wl_fixed_t.x,.wl_fixed_t.y).{
2bee0 7d 00 00 00 40 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6c 65 61 76 65 28 76 6f 69 64 20 }...@static.void.ptr_leave(void.
2bf00 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 *d,.struct.wl_pointer.*p,.uint32
2bf20 5f 74 20 73 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 _t.s,.../......................s
2bf40 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 20 7b 7d 00 00 00 4f 73 74 61 74 truct.wl_surface.*su).{}...Ostat
2bf60 69 63 20 76 6f 69 64 20 70 74 72 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 ic.void.ptr_motion(void.*d,.stru
2bf80 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 77 6c ct.wl_pointer.*p,.uint32_t.t,.wl
2bfa0 5f 66 69 78 65 64 5f 74 20 78 2c 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _fixed_t.x,...&.................
2bfc0 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 ......wl_fixed_t.y).{......struc
2bfe0 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 3d 20 t.app.*a.=.d;..."..a->mouse_x.=.
2c000 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 78 29 3b 00 00 00 22 20 20 61 2d 3e 6d 6f 75 73 wl_fixed_to_int(x);..."..a->mous
2c020 65 5f 79 20 3d 20 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b 00 00 00 22 20 20 69 e_y.=.wl_fixed_to_int(y);..."..i
2c040 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 f.(a->open_menu.!=.MENU_NONE).{.
2c060 00 00 32 20 20 20 20 69 6e 74 20 69 74 20 3d 20 69 74 65 6d 5f 61 74 28 61 2c 20 61 2d 3e 6f 70 ..2....int.it.=.item_at(a,.a->op
2c080 65 6e 5f 6d 65 6e 75 2c 20 61 2d 3e 6d 6f 75 73 65 5f 79 29 3b 00 00 00 20 20 20 20 20 69 66 20 en_menu,.a->mouse_y);........if.
2c0a0 28 69 74 20 21 3d 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 29 20 7b 00 00 00 1b 20 20 20 (it.!=.a->hovered_item).{.......
2c0c0 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 69 74 3b 00 00 00 10 20 20 20 20 ...a->hovered_item.=.it;........
2c0e0 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 ..redraw(a);..........return;...
2c100 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 1d 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f .....}......}......if.(a->mouse_
2c120 79 20 3e 3d 20 62 61 72 5f 79 28 61 29 29 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b y.>=.bar_y(a))........redraw(a);
2c140 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 62 75 74 74 6f 6e 28 ....}...Fstatic.void.ptr_button(
2c160 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 void.*d,.struct.wl_pointer.*p,.u
2c180 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 int32_t.serial,...B.............
2c1a0 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 62 ..........uint32_t.t,.uint32_t.b
2c1c0 74 6e 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 tn,.uint32_t.state).{......struc
2c1e0 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 2f 20 20 69 66 20 28 73 74 61 74 65 20 21 3d 20 t.app.*a.=.d;.../..if.(state.!=.
2c200 57 4c 5f 50 4f 49 4e 54 45 52 5f 42 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 WL_POINTER_BUTTON_STATE_PRESSED)
2c220 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 ........return;......a->last_ser
2c240 69 61 6c 20 3d 20 73 65 72 69 61 6c 3b 00 00 00 14 20 20 69 6e 74 20 62 79 20 3d 20 62 61 72 5f ial.=.serial;......int.by.=.bar_
2c260 79 28 61 29 3b 00 00 00 00 00 00 00 22 20 20 69 66 20 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 y(a);......."..if.(a->open_menu.
2c280 21 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 29 20 7b 00 00 00 32 20 20 20 20 69 6e 74 20 69 74 20 3d 20 !=.MENU_NONE).{...2....int.it.=.
2c2a0 69 74 65 6d 5f 61 74 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 61 2d 3e 6d 6f 75 73 item_at(a,.a->open_menu,.a->mous
2c2c0 65 5f 79 29 3b 00 00 00 12 20 20 20 20 69 66 20 28 69 74 20 3e 3d 20 30 29 20 7b 00 00 00 25 20 e_y);........if.(it.>=.0).{...%.
2c2e0 20 20 20 20 20 66 69 72 65 5f 69 74 65 6d 28 61 2c 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 20 .....fire_item(a,.a->open_menu,.
2c300 69 74 29 3b 00 00 00 0d 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 20 7d 00 00 it);..........return;........}..
2c320 00 1b 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 3e 3d 20 62 79 29 20 7b 00 00 00 ......if.(a->mouse_y.>=.by).{...
2c340 23 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b #......for.(int.i.=.0;.i.<.2;.i+
2c360 2b 29 20 7b 00 00 00 29 20 20 20 20 20 20 20 20 69 6e 74 20 62 78 20 3d 20 62 74 6e 5f 78 28 69 +).{...)........int.bx.=.btn_x(i
2c380 29 2c 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 37 20 20 20 20 20 20 20 20 69 66 20 ),.bw.=.btn_w(i);...7........if.
2c3a0 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 61 2d 3e 6d 6f 75 73 65 5f 78 20 (a->mouse_x.>=.bx.&&.a->mouse_x.
2c3c0 3c 20 62 78 20 2b 20 62 77 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 20 20 61 2d 3e 6f 70 65 <.bx.+.bw).{...#..........a->ope
2c3e0 6e 5f 6d 65 6e 75 20 3d 20 28 4d 65 6e 75 49 64 29 69 3b 00 00 00 1f 20 20 20 20 20 20 20 20 20 n_menu.=.(MenuId)i;.............
2c400 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 14 20 20 20 20 20 20 .a->hovered_item.=.-1;..........
2c420 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ....redraw(a);..............retu
2c440 72 6e 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 rn;............}..........}.....
2c460 20 20 20 7d 00 00 00 1d 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f ...}........a->open_menu.=.MENU_
2c480 4e 4f 4e 45 3b 00 00 00 19 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d NONE;........a->hovered_item.=.-
2c4a0 31 3b 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 1;........redraw(a);........retu
2c4c0 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 19 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 rn;......}..........if.(a->mouse
2c4e0 5f 79 20 3e 3d 20 62 79 29 20 7b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 _y.>=.by).{...!....for.(int.i.=.
2c500 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b 29 20 7b 00 00 00 27 20 20 20 20 20 20 69 6e 74 20 62 78 0;.i.<.2;.i++).{...'......int.bx
2c520 20 3d 20 62 74 6e 5f 78 28 69 29 2c 20 62 77 20 3d 20 62 74 6e 5f 77 28 69 29 3b 00 00 00 35 20 .=.btn_x(i),.bw.=.btn_w(i);...5.
2c540 20 20 20 20 20 69 66 20 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 3e 3d 20 62 78 20 26 26 20 61 2d 3e .....if.(a->mouse_x.>=.bx.&&.a->
2c560 6d 6f 75 73 65 5f 78 20 3c 20 62 78 20 2b 20 62 77 29 20 7b 00 00 00 21 20 20 20 20 20 20 20 20 mouse_x.<.bx.+.bw).{...!........
2c580 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 28 4d 65 6e 75 49 64 29 69 3b 00 00 00 1d 20 20 20 a->open_menu.=.(MenuId)i;.......
2c5a0 20 20 20 20 20 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 12 20 20 .....a->hovered_item.=.-1;......
2c5c0 20 20 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 00 00 00 0f 20 20 20 20 20 20 20 20 72 65 74 75 ......redraw(a);............retu
2c5e0 72 6e 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 72 rn;..........}........}........r
2c600 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 49 20 20 69 6e 74 20 63 78 20 3d 20 eturn;......}.......I..int.cx.=.
2c620 28 61 2d 3e 6d 6f 75 73 65 5f 78 20 2d 20 50 41 44 29 20 2f 20 63 65 6c 6c 5f 77 2c 20 63 79 20 (a->mouse_x.-.PAD)./.cell_w,.cy.
2c640 3d 20 28 61 2d 3e 6d 6f 75 73 65 5f 79 20 2d 20 50 41 44 29 20 2f 20 63 65 6c 6c 5f 68 3b 00 00 =.(a->mouse_y.-.PAD)./.cell_h;..
2c660 00 20 20 20 69 6e 74 20 70 6f 73 20 3d 20 30 2c 20 63 6f 6c 20 3d 20 30 2c 20 72 6f 77 20 3d 20 ....int.pos.=.0,.col.=.0,.row.=.
2c680 30 3b 00 00 00 22 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 6c 65 6e 0;..."..for.(int.i.=.0;.i.<.tlen
2c6a0 3b 20 69 2b 2b 29 20 7b 00 00 00 21 20 20 20 20 69 66 20 28 72 6f 77 20 3d 3d 20 63 79 20 26 26 ;.i++).{...!....if.(row.==.cy.&&
2c6c0 20 63 6f 6c 20 3d 3d 20 63 78 29 20 7b 00 00 00 0e 20 20 20 20 20 20 70 6f 73 20 3d 20 69 3b 00 .col.==.cx).{..........pos.=.i;.
2c6e0 00 00 11 20 20 20 20 20 20 67 6f 74 6f 20 66 6f 75 6e 64 3b 00 00 00 05 20 20 20 20 7d 00 00 00 .........goto.found;........}...
2c700 1a 20 20 20 20 69 66 20 28 74 65 78 74 5b 69 5d 20 3d 3d 20 27 5c 6e 27 29 20 7b 00 00 00 16 20 .....if.(text[i].==.'\n').{.....
2c720 20 20 20 20 20 69 66 20 28 72 6f 77 20 3d 3d 20 63 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 20 .....if.(row.==.cy).{...........
2c740 20 70 6f 73 20 3d 20 69 3b 00 00 00 13 20 20 20 20 20 20 20 20 67 6f 74 6f 20 66 6f 75 6e 64 3b .pos.=.i;............goto.found;
2c760 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 0e 20 20 20 20 20 20 63 6f 6c 20 3d 20 30 3b 00 00 00 ..........}..........col.=.0;...
2c780 0c 20 20 20 20 20 20 72 6f 77 2b 2b 3b 00 00 00 0a 20 20 20 20 7d 20 65 6c 73 65 00 00 00 0c 20 .......row++;........}.else.....
2c7a0 20 20 20 20 20 63 6f 6c 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 0d 20 20 70 6f 73 20 3d 20 74 6c .....col++;......}......pos.=.tl
2c7c0 65 6e 3b 00 00 00 06 66 6f 75 6e 64 3a 00 00 00 0f 20 20 63 75 72 73 6f 72 20 3d 20 70 6f 73 3b en;....found:......cursor.=.pos;
2c7e0 00 00 00 12 20 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b 00 00 00 0c 20 20 72 65 64 72 ......sel_anchor.=.-1;......redr
2c800 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 aw(a);....}...Nstatic.void.ptr_a
2c820 78 69 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a xis(void.*d,.struct.wl_pointer.*
2c840 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 20 75 69 6e 74 33 32 5f 74 20 61 78 69 73 2c 00 00 00 p,.uint32_t.t,.uint32_t.axis,...
2c860 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 %.....................wl_fixed_t
2c880 20 76 29 20 7b 7d 00 00 00 37 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 66 72 61 6d 65 28 .v).{}...7static.void.ptr_frame(
2c8a0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 29 20 7b void.*d,.struct.wl_pointer.*p).{
2c8c0 7d 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 }...Kstatic.void.ptr_axis_source
2c8e0 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 (void.*d,.struct.wl_pointer.*p,.
2c900 75 69 6e 74 33 32 5f 74 20 73 72 63 29 20 7b 7d 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 uint32_t.src).{}...Dstatic.void.
2c920 70 74 72 5f 61 78 69 73 5f 73 74 6f 70 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c ptr_axis_stop(void.*d,.struct.wl
2c940 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 2b 20 20 20 20 _pointer.*p,.uint32_t.t,...+....
2c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 61 ......................uint32_t.a
2c980 78 69 73 29 20 7b 7d 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f xis).{}...Kstatic.void.ptr_axis_
2c9a0 64 69 73 63 72 65 74 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e discrete(void.*d,.struct.wl_poin
2c9c0 74 65 72 20 2a 70 2c 20 75 69 6e 74 33 32 5f 74 20 61 78 69 73 2c 00 00 00 2e 20 20 20 20 20 20 ter.*p,.uint32_t.axis,..........
2c9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 ........................int32_t.
2ca00 64 69 73 63 29 20 7b 7d 00 00 00 38 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 disc).{}...8static.const.struct.
2ca20 77 6c 5f 70 6f 69 6e 74 65 72 5f 6c 69 73 74 65 6e 65 72 20 70 74 72 5f 6c 69 73 74 65 6e 65 72 wl_pointer_listener.ptr_listener
2ca40 20 3d 20 7b 00 00 00 17 20 20 20 20 2e 65 6e 74 65 72 20 3d 20 70 74 72 5f 65 6e 74 65 72 2c 00 .=.{.........enter.=.ptr_enter,.
2ca60 00 00 17 20 20 20 20 2e 6c 65 61 76 65 20 3d 20 70 74 72 5f 6c 65 61 76 65 2c 00 00 00 19 20 20 ........leave.=.ptr_leave,......
2ca80 20 20 2e 6d 6f 74 69 6f 6e 20 3d 20 70 74 72 5f 6d 6f 74 69 6f 6e 2c 00 00 00 19 20 20 20 20 2e ...motion.=.ptr_motion,.........
2caa0 62 75 74 74 6f 6e 20 3d 20 70 74 72 5f 62 75 74 74 6f 6e 2c 00 00 00 15 20 20 20 20 2e 61 78 69 button.=.ptr_button,.........axi
2cac0 73 20 3d 20 70 74 72 5f 61 78 69 73 2c 00 00 00 17 20 20 20 20 2e 66 72 61 6d 65 20 3d 20 70 74 s.=.ptr_axis,.........frame.=.pt
2cae0 72 5f 66 72 61 6d 65 2c 00 00 00 23 20 20 20 20 2e 61 78 69 73 5f 73 6f 75 72 63 65 20 3d 20 70 r_frame,...#.....axis_source.=.p
2cb00 74 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 2c 00 00 00 1f 20 20 20 20 2e 61 78 69 73 5f 73 74 6f tr_axis_source,.........axis_sto
2cb20 70 20 3d 20 70 74 72 5f 61 78 69 73 5f 73 74 6f 70 2c 00 00 00 27 20 20 20 20 2e 61 78 69 73 5f p.=.ptr_axis_stop,...'.....axis_
2cb40 64 69 73 63 72 65 74 65 20 3d 20 70 74 72 5f 61 78 69 73 5f 64 69 73 63 72 65 74 65 2c 00 00 00 discrete.=.ptr_axis_discrete,...
2cb60 02 7d 3b 00 00 00 00 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 6d 61 70 .};.......Pstatic.void.kb_keymap
2cb80 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 (void.*d,.struct.wl_keyboard.*kb
2cba0 2c 20 75 69 6e 74 33 32 5f 74 20 66 6d 74 2c 20 69 6e 74 33 32 5f 74 20 66 64 2c 00 00 00 26 20 ,.uint32_t.fmt,.int32_t.fd,...&.
2cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 69 .....................uint32_t.si
2cbe0 7a 65 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 ze).{......struct.app.*a.=.d;...
2cc00 30 20 20 69 66 20 28 66 6d 74 20 21 3d 20 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 4d 41 50 0..if.(fmt.!=.WL_KEYBOARD_KEYMAP
2cc20 5f 46 4f 52 4d 41 54 5f 58 4b 42 5f 56 31 29 20 7b 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 _FORMAT_XKB_V1).{........close(f
2cc40 64 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 3c 20 20 63 d);........return;......}...<..c
2cc60 68 61 72 20 2a 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 har.*s.=.mmap(NULL,.size,.PROT_R
2cc80 45 41 44 2c 20 4d 41 50 5f 50 52 49 56 41 54 45 2c 20 66 64 2c 20 30 29 3b 00 00 00 0c 20 20 63 EAD,.MAP_PRIVATE,.fd,.0);......c
2cca0 6c 6f 73 65 28 66 64 29 3b 00 00 00 16 20 20 69 66 20 28 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c lose(fd);......if.(s.==.MAP_FAIL
2ccc0 45 44 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 15 20 20 69 66 20 28 61 2d 3e 78 ED)........return;......if.(a->x
2cce0 6b 62 5f 73 74 61 74 65 29 20 7b 00 00 00 22 20 20 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 6e 72 kb_state).{..."....xkb_state_unr
2cd00 65 66 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 3b 00 00 00 18 20 20 20 20 61 2d 3e 78 6b 62 5f ef(a->xkb_state);........a->xkb_
2cd20 73 74 61 74 65 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 16 20 20 69 66 20 28 61 2d state.=.NULL;......}......if.(a-
2cd40 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 20 7b 00 00 00 24 20 20 20 20 78 6b 62 5f 6b 65 79 6d 61 70 >xkb_keymap).{...$....xkb_keymap
2cd60 5f 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 00 19 20 20 20 20 61 2d _unref(a->xkb_keymap);........a-
2cd80 3e 78 6b 62 5f 6b 65 79 6d 61 70 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 2d 20 20 >xkb_keymap.=.NULL;......}...-..
2cda0 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 20 3d 20 78 6b 62 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 a->xkb_keymap.=.xkb_keymap_new_f
2cdc0 72 6f 6d 5f 73 74 72 69 6e 67 28 00 00 00 4d 20 20 20 20 20 20 61 2d 3e 78 6b 62 5f 63 74 78 2c rom_string(...M......a->xkb_ctx,
2cde0 20 73 2c 20 58 4b 42 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 54 45 58 54 5f 56 31 2c 20 58 .s,.XKB_KEYMAP_FORMAT_TEXT_V1,.X
2ce00 4b 42 5f 4b 45 59 4d 41 50 5f 43 4f 4d 50 49 4c 45 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 12 KB_KEYMAP_COMPILE_NO_FLAGS);....
2ce20 20 20 6d 75 6e 6d 61 70 28 73 2c 20 73 69 7a 65 29 3b 00 00 00 14 20 20 69 66 20 28 61 2d 3e 78 ..munmap(s,.size);......if.(a->x
2ce40 6b 62 5f 6b 65 79 6d 61 70 29 00 00 00 30 20 20 20 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 20 3d kb_keymap)...0....a->xkb_state.=
2ce60 20 78 6b 62 5f 73 74 61 74 65 5f 6e 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 00 00 .xkb_state_new(a->xkb_keymap);..
2ce80 00 01 7d 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 72 28 76 6f 69 64 ..}...Astatic.void.kb_enter(void
2cea0 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e .*d,.struct.wl_keyboard.*kb,.uin
2cec0 74 33 32 5f 74 20 73 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t32_t.s,...B....................
2cee0 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 2c 20 73 74 72 75 63 74 20 77 .struct.wl_surface.*su,.struct.w
2cf00 6c 5f 61 72 72 61 79 20 2a 6b 29 20 7b 7d 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 l_array.*k).{}...Astatic.void.kb
2cf20 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 _leave(void.*d,.struct.wl_keyboa
2cf40 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 rd.*kb,.uint32_t.s,...-.........
2cf60 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 ............struct.wl_surface.*s
2cf80 75 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1d u).{......struct.app.*a.=.d;....
2cfa0 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 ..struct.itimerspec.ts.=.{0};...
2cfc0 2e 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c ...timerfd_settime(a->repeat_fd,
2cfe0 20 30 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 01 7d 00 00 00 50 73 74 61 74 69 63 20 76 .0,.&ts,.NULL);....}...Pstatic.v
2d000 6f 69 64 20 6b 62 5f 6b 65 79 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 oid.kb_key(void.*d,.struct.wl_ke
2d020 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 20 75 69 6e yboard.*kb,.uint32_t.serial,.uin
2d040 74 33 32 5f 74 20 74 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 t32_t.t,...2...................u
2d060 69 6e 74 33 32 5f 74 20 6b 65 79 2c 20 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 20 7b 00 00 int32_t.key,.uint32_t.state).{..
2d080 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 1a 20 20 61 2d 3e 6c ....struct.app.*a.=.d;......a->l
2d0a0 61 73 74 5f 73 65 72 69 61 6c 20 3d 20 73 65 72 69 61 6c 3b 00 00 00 2f 20 20 69 66 20 28 73 74 ast_serial.=.serial;.../..if.(st
2d0c0 61 74 65 20 3d 3d 20 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 5f 53 54 41 54 45 5f 50 52 45 ate.==.WL_KEYBOARD_KEY_STATE_PRE
2d0e0 53 53 45 44 29 20 7b 00 00 00 18 20 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 61 2c 20 6b 65 SSED).{........process_key(a,.ke
2d100 79 29 3b 00 00 00 18 20 20 20 20 61 2d 3e 72 65 70 65 61 74 5f 6b 65 79 20 3d 20 6b 65 79 3b 00 y);........a->repeat_key.=.key;.
2d120 00 00 1d 20 20 20 20 69 66 20 28 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 20 3e 20 30 29 20 7b .......if.(a->repeat_rate.>.0).{
2d140 00 00 00 1e 20 20 20 20 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d ..........struct.itimerspec.ts.=
2d160 20 7b 00 00 00 38 20 20 20 20 20 20 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 3d 20 7b 2e 74 76 .{...8...........it_value.=.{.tv
2d180 5f 73 65 63 20 3d 20 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 20 2f 20 31 30 30 30 2c 00 00 _sec.=.a->repeat_delay./.1000,..
2d1a0 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 74 76 5f 6e 73 65 .G........................tv_nse
2d1c0 63 20 3d 20 28 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 20 25 20 31 30 30 30 29 20 2a 20 31 c.=.(a->repeat_delay.%.1000).*.1
2d1e0 30 30 30 30 30 30 4c 7d 2c 00 00 00 50 20 20 20 20 20 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 000000L},...P...........it_inter
2d200 76 61 6c 20 3d 20 7b 2e 74 76 5f 73 65 63 20 3d 20 30 2c 20 2e 74 76 5f 6e 73 65 63 20 3d 20 31 val.=.{.tv_sec.=.0,..tv_nsec.=.1
2d220 30 30 30 30 30 30 30 30 30 4c 20 2f 20 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 7d 2c 00 00 00 000000000L./.a->repeat_rate},...
2d240 08 20 20 20 20 20 20 7d 3b 00 00 00 32 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 .......};...2......timerfd_setti
2d260 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 3b 00 me(a->repeat_fd,.0,.&ts,.NULL);.
2d280 00 00 05 20 20 20 20 7d 00 00 00 0a 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 1f 20 20 20 20 73 74 .......}......}.else.{........st
2d2a0 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 20 3d 20 7b 30 7d 3b 00 00 00 30 20 20 20 ruct.itimerspec.ts.=.{0};...0...
2d2c0 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 20 30 .timerfd_settime(a->repeat_fd,.0
2d2e0 2c 20 26 74 73 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 45 73 74 61 ,.&ts,.NULL);......}....}...Esta
2d300 74 69 63 20 76 6f 69 64 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 64 20 2a 64 2c 20 73 tic.void.kb_modifiers(void.*d,.s
2d320 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 75 69 6e 74 33 32 5f 74 20 truct.wl_keyboard.*kb,.uint32_t.
2d340 73 2c 00 00 00 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 s,...E.........................u
2d360 69 6e 74 33 32 5f 74 20 64 65 70 2c 20 75 69 6e 74 33 32 5f 74 20 6c 61 74 2c 20 75 69 6e 74 33 int32_t.dep,.uint32_t.lat,.uint3
2d380 32 5f 74 20 6c 6f 63 6b 65 64 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2_t.locked,...(.................
2d3a0 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 67 72 70 29 20 7b 00 00 00 14 20 20 73 74 72 ........uint32_t.grp).{......str
2d3c0 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 13 20 20 69 66 20 28 61 2d 3e 78 6b 62 5f uct.app.*a.=.d;......if.(a->xkb_
2d3e0 73 74 61 74 65 29 00 00 00 45 20 20 20 20 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d state)...E....xkb_state_update_m
2d400 61 73 6b 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 20 64 65 70 2c 20 6c 61 74 2c 20 6c 6f 63 6b ask(a->xkb_state,.dep,.lat,.lock
2d420 65 64 2c 20 30 2c 20 30 2c 20 67 72 70 29 3b 00 00 00 01 7d 00 00 00 44 73 74 61 74 69 63 20 76 ed,.0,.0,.grp);....}...Dstatic.v
2d440 6f 69 64 20 6b 62 5f 72 65 70 65 61 74 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c oid.kb_repeat(void.*d,.struct.wl
2d460 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 20 69 6e 74 33 32 5f 74 20 72 61 74 65 2c 00 00 00 26 _keyboard.*kb,.int32_t.rate,...&
2d480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 64 65 ......................int32_t.de
2d4a0 6c 61 79 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 lay).{......struct.app.*a.=.d;..
2d4c0 00 18 20 20 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 20 3d 20 72 61 74 65 3b 00 00 00 1a 20 20 ....a->repeat_rate.=.rate;......
2d4e0 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 20 3d 20 64 65 6c 61 79 3b 00 00 00 01 7d 00 00 00 a->repeat_delay.=.delay;....}...
2d500 3e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 >static.const.struct.wl_keyboard
2d520 5f 6c 69 73 74 65 6e 65 72 20 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 _listener.keyboard_listener.=.{.
2d540 00 00 18 20 20 20 20 2e 6b 65 79 6d 61 70 20 3d 20 6b 62 5f 6b 65 79 6d 61 70 2c 00 00 00 16 20 ........keymap.=.kb_keymap,.....
2d560 20 20 20 2e 65 6e 74 65 72 20 3d 20 6b 62 5f 65 6e 74 65 72 2c 00 00 00 16 20 20 20 20 2e 6c 65 ....enter.=.kb_enter,.........le
2d580 61 76 65 20 3d 20 6b 62 5f 6c 65 61 76 65 2c 00 00 00 12 20 20 20 20 2e 6b 65 79 20 3d 20 6b 62 ave.=.kb_leave,.........key.=.kb
2d5a0 5f 6b 65 79 2c 00 00 00 1e 20 20 20 20 2e 6d 6f 64 69 66 69 65 72 73 20 3d 20 6b 62 5f 6d 6f 64 _key,.........modifiers.=.kb_mod
2d5c0 69 66 69 65 72 73 2c 00 00 00 1e 20 20 20 20 2e 72 65 70 65 61 74 5f 69 6e 66 6f 20 3d 20 6b 62 ifiers,.........repeat_info.=.kb
2d5e0 5f 72 65 70 65 61 74 7d 3b 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 _repeat};.......Estatic.void.sea
2d600 74 5f 63 61 70 73 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a t_caps(void.*d,.struct.wl_seat.*
2d620 73 65 61 74 2c 20 75 69 6e 74 33 32 5f 74 20 63 61 70 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 seat,.uint32_t.caps).{......stru
2d640 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 3d 20 20 69 66 20 28 28 63 61 70 73 20 26 20 ct.app.*a.=.d;...=..if.((caps.&.
2d660 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 WL_SEAT_CAPABILITY_KEYBOARD).&&.
2d680 21 61 2d 3e 6b 65 79 62 6f 61 72 64 29 20 7b 00 00 00 2d 20 20 20 20 61 2d 3e 6b 65 79 62 6f 61 !a->keyboard).{...-....a->keyboa
2d6a0 72 64 20 3d 20 77 6c 5f 73 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f 61 72 64 28 73 65 61 74 29 3b rd.=.wl_seat_get_keyboard(seat);
2d6c0 00 00 00 41 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ...A....wl_keyboard_add_listener
2d6e0 28 61 2d 3e 6b 65 79 62 6f 61 72 64 2c 20 26 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 (a->keyboard,.&keyboard_listener
2d700 2c 20 61 29 3b 00 00 00 44 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 ,.a);...D..}.else.if.(!(caps.&.W
2d720 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 20 26 26 20 61 L_SEAT_CAPABILITY_KEYBOARD).&&.a
2d740 2d 3e 6b 65 79 62 6f 61 72 64 29 20 7b 00 00 00 25 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 ->keyboard).{...%....wl_keyboard
2d760 5f 72 65 6c 65 61 73 65 28 61 2d 3e 6b 65 79 62 6f 61 72 64 29 3b 00 00 00 17 20 20 20 20 61 2d _release(a->keyboard);........a-
2d780 3e 6b 65 79 62 6f 61 72 64 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 3b 20 20 69 66 >keyboard.=.NULL;......}...;..if
2d7a0 20 28 28 63 61 70 73 20 26 20 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 .((caps.&.WL_SEAT_CAPABILITY_POI
2d7c0 4e 54 45 52 29 20 26 26 20 21 61 2d 3e 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 2b 20 20 20 20 61 NTER).&&.!a->pointer).{...+....a
2d7e0 2d 3e 70 6f 69 6e 74 65 72 20 3d 20 77 6c 5f 73 65 61 74 5f 67 65 74 5f 70 6f 69 6e 74 65 72 28 ->pointer.=.wl_seat_get_pointer(
2d800 73 65 61 74 29 3b 00 00 00 3a 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 61 64 64 5f 6c 69 73 seat);...:....wl_pointer_add_lis
2d820 74 65 6e 65 72 28 61 2d 3e 70 6f 69 6e 74 65 72 2c 20 26 70 74 72 5f 6c 69 73 74 65 6e 65 72 2c tener(a->pointer,.&ptr_listener,
2d840 20 61 29 3b 00 00 00 42 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 28 63 61 70 73 20 26 20 57 4c .a);...B..}.else.if.(!(caps.&.WL
2d860 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 20 26 26 20 61 2d 3e _SEAT_CAPABILITY_POINTER).&&.a->
2d880 70 6f 69 6e 74 65 72 29 20 7b 00 00 00 23 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 65 6c pointer).{...#....wl_pointer_rel
2d8a0 65 61 73 65 28 61 2d 3e 70 6f 69 6e 74 65 72 29 3b 00 00 00 16 20 20 20 20 61 2d 3e 70 6f 69 6e ease(a->pointer);........a->poin
2d8c0 74 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 ter.=.NULL;......}....}...Istati
2d8e0 63 20 76 6f 69 64 20 73 65 61 74 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 c.void.seat_name(void.*d,.struct
2d900 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 .wl_seat.*seat,.const.char.*name
2d920 29 20 7b 7d 00 00 00 50 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 73 ).{}...Pstatic.const.struct.wl_s
2d940 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 2e 63 eat_listener.seat_listener.=.{.c
2d960 61 70 61 62 69 6c 69 74 69 65 73 20 3d 20 73 65 61 74 5f 63 61 70 73 2c 00 00 00 49 20 20 20 20 apabilities.=.seat_caps,...I....
2d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d 20 73 65 61 74 5f 6e ...................name.=.seat_n
2d9c0 61 6d 65 7d 3b 00 00 00 00 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f ame};.......Cstatic.void.reg_glo
2d9e0 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 bal(void.*d,.struct.wl_registry.
2da00 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 *r,.uint32_t.id,...7............
2da20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 20 75 69 ...........const.char.*iface,.ui
2da40 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d nt32_t.v).{......struct.app.*a.=
2da60 20 64 3b 00 00 00 26 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f .d;...&..if.(!strcmp(iface,."wl_
2da80 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 compositor"))...C....a->comp.=.w
2daa0 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f l_registry_bind(r,.id,.&wl_compo
2dac0 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 24 20 20 65 6c 73 65 20 69 sitor_interface,.4);...$..else.i
2dae0 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b f.(!strcmp(iface,."wl_shm"))...;
2db00 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c ....a->shm.=.wl_registry_bind(r,
2db20 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 2b 20 .id,.&wl_shm_interface,.1);...+.
2db40 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 78 64 67 5f 77 6d .else.if.(!strcmp(iface,."xdg_wm
2db60 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 _base")).{...?....a->wm.=.wl_reg
2db80 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 istry_bind(r,.id,.&xdg_wm_base_i
2dba0 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 nterface,.1);...5....xdg_wm_base
2dbc0 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 77 6d 5f 6c 69 73 74 65 6e 65 _add_listener(a->wm,.&wm_listene
2dbe0 72 2c 20 61 29 3b 00 00 00 29 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 r,.a);...)..}.else.if.(!strcmp(i
2dc00 66 61 63 65 2c 20 22 77 6c 5f 73 65 61 74 22 29 29 20 7b 00 00 00 3d 20 20 20 20 61 2d 3e 73 65 face,."wl_seat")).{...=....a->se
2dc20 61 74 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c at.=.wl_registry_bind(r,.id,.&wl
2dc40 5f 73 65 61 74 5f 69 6e 74 65 72 66 61 63 65 2c 20 35 29 3b 00 00 00 35 20 20 20 20 77 6c 5f 73 _seat_interface,.5);...5....wl_s
2dc60 65 61 74 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 20 26 73 65 61 74 5f eat_add_listener(a->seat,.&seat_
2dc80 6c 69 73 74 65 6e 65 72 2c 20 61 29 3b 00 00 00 36 20 20 7d 20 65 6c 73 65 20 69 66 20 28 21 73 listener,.a);...6..}.else.if.(!s
2dca0 74 72 63 6d 70 28 69 66 61 63 65 2c 20 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e trcmp(iface,."wl_data_device_man
2dcc0 61 67 65 72 22 29 29 00 00 00 4b 20 20 20 20 61 2d 3e 64 64 6d 20 3d 20 77 6c 5f 72 65 67 69 73 ager"))...K....a->ddm.=.wl_regis
2dce0 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f try_bind(r,.id,.&wl_data_device_
2dd00 6d 61 6e 61 67 65 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 33 29 3b 00 00 00 01 7d 00 00 00 46 73 manager_interface,.3);....}...Fs
2dd20 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 72 65 6d 6f 76 65 28 76 6f 69 64 20 2a 64 2c 20 73 tatic.void.reg_remove(void.*d,.s
2dd40 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 truct.wl_registry.*r,.uint32_t.i
2dd60 64 29 20 7b 7d 00 00 00 39 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f d).{}...9static.const.struct.wl_
2dd80 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 20 3d registry_listener.reg_listener.=
2dda0 20 7b 00 00 00 37 20 20 20 20 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 2c 20 .{...7.....global.=.reg_global,.
2ddc0 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 20 3d 20 72 65 67 5f 72 65 6d 6f 76 65 7d 3b 00 00 00 .global_remove.=.reg_remove};...
2dde0 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 69 66 20 28 21 .....int.main(void).{......if.(!
2de00 6c 6f 61 64 5f 66 6f 6e 74 28 29 29 20 7b 00 00 00 3c 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 load_font()).{...<....fprintf(st
2de20 64 65 72 72 2c 20 22 66 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e derr,."failed.to.load.font:.%s\n
2de40 22 2c 20 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 ",.FONT_NAME);........return.1;.
2de60 00 00 03 20 20 7d 00 00 00 00 00 00 00 1a 20 20 74 69 6d 65 5f 74 20 6e 6f 77 20 3d 20 74 69 6d .....}..........time_t.now.=.tim
2de80 65 28 4e 55 4c 4c 29 3b 00 00 00 21 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 20 3d 20 6c 6f 63 e(NULL);...!..struct.tm.*t.=.loc
2dea0 61 6c 74 69 6d 65 28 26 6e 6f 77 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 altime(&now);......char.buffer[1
2dec0 30 30 5d 3b 00 00 00 00 00 00 00 3e 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 00];.......>..strftime(buffer,.s
2dee0 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 izeof(buffer),."%d-%m-%Y.%I:%M:%
2df00 53 20 25 70 22 2c 20 74 29 3b 00 00 00 24 20 20 70 72 69 6e 74 66 28 22 73 74 61 72 74 65 64 20 S.%p",.t);...$..printf("started.
2df20 61 74 20 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 00 00 00 00 15 20 20 73 74 72 75 at.%s\n",.buffer);..........stru
2df40 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 36 34 30 3b 00 ct.app.a.=.{0};......a.w.=.640;.
2df60 00 00 0c 20 20 61 2e 68 20 3d 20 34 38 30 3b 00 00 00 15 20 20 61 2e 72 65 70 65 61 74 5f 72 61 .....a.h.=.480;......a.repeat_ra
2df80 74 65 20 3d 20 32 35 3b 00 00 00 17 20 20 61 2e 72 65 70 65 61 74 5f 64 65 6c 61 79 20 3d 20 34 te.=.25;......a.repeat_delay.=.4
2dfa0 30 30 3b 00 00 00 1a 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 20 3d 20 4d 45 4e 55 5f 4e 4f 4e 45 00;......a.open_menu.=.MENU_NONE
2dfc0 3b 00 00 00 16 20 20 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 6d 20 3d 20 2d 31 3b 00 00 00 00 00 ;......a.hovered_item.=.-1;.....
2dfe0 00 00 34 20 20 61 2e 78 6b 62 5f 63 74 78 20 3d 20 78 6b 62 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 ..4..a.xkb_ctx.=.xkb_context_new
2e000 28 58 4b 42 5f 43 4f 4e 54 45 58 54 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 13 20 20 69 66 20 (XKB_CONTEXT_NO_FLAGS);......if.
2e020 28 21 61 2e 78 6b 62 5f 63 74 78 29 20 7b 00 00 00 2e 20 20 20 20 66 70 75 74 73 28 22 78 6b 62 (!a.xkb_ctx).{........fputs("xkb
2e040 5f 63 6f 6e 74 65 78 74 5f 6e 65 77 20 66 61 69 6c 65 64 5c 6e 22 2c 20 73 74 64 65 72 72 29 3b _context_new.failed\n",.stderr);
2e060 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 4c ........return.1;......}.......L
2e080 20 20 61 2e 72 65 70 65 61 74 5f 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 ..a.repeat_fd.=.timerfd_create(C
2e0a0 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 20 7c 20 54 46 LOCK_MONOTONIC,.TFD_CLOEXEC.|.TF
2e0c0 44 5f 4e 4f 4e 42 4c 4f 43 4b 29 3b 00 00 00 18 20 20 69 66 20 28 61 2e 72 65 70 65 61 74 5f 66 D_NONBLOCK);......if.(a.repeat_f
2e0e0 64 20 3c 20 30 29 20 7b 00 00 00 1d 20 20 20 20 70 65 72 72 6f 72 28 22 74 69 6d 65 72 66 64 5f d.<.0).{........perror("timerfd_
2e100 63 72 65 61 74 65 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 create");........return.1;......
2e120 7d 00 00 00 00 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e }.......!..a.d.=.wl_display_conn
2e140 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0d 20 20 69 66 20 28 21 61 2e 64 29 20 7b 00 00 00 39 20 ect(NULL);......if.(!a.d).{...9.
2e160 20 20 20 66 70 75 74 73 28 22 63 61 6e 6e 6f 74 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c ...fputs("cannot.connect.to.Wayl
2e180 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 2c 20 73 74 64 65 72 72 29 3b 00 00 00 0d 20 20 20 20 and.display\n",.stderr);........
2e1a0 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 27 20 20 61 2e 72 65 67 20 return.1;......}.......'..a.reg.
2e1c0 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 =.wl_display_get_registry(a.d);.
2e1e0 00 00 35 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e ..5..wl_registry_add_listener(a.
2e200 72 65 67 2c 20 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c reg,.&reg_listener,.&a);......wl
2e220 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 00 00 00 00 2e _display_roundtrip(a.d);........
2e240 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d ..if.(!a.comp.||.!a.shm.||.!a.wm
2e260 20 7c 7c 20 21 61 2e 73 65 61 74 29 20 7b 00 00 00 38 20 20 20 20 66 70 75 74 73 28 22 6d 69 73 .||.!a.seat).{...8....fputs("mis
2e280 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 sing.required.Wayland.globals\n"
2e2a0 2c 20 73 74 64 65 72 72 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 ,.stderr);........return.1;.....
2e2c0 20 7d 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 .}......wl_display_roundtrip(a.d
2e2e0 29 3b 00 00 00 00 00 00 00 18 20 20 69 66 20 28 61 2e 64 64 6d 20 26 26 20 61 2e 73 65 61 74 29 );..........if.(a.ddm.&&.a.seat)
2e300 20 7b 00 00 00 41 20 20 20 20 61 2e 64 64 20 3d 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f .{...A....a.dd.=.wl_data_device_
2e320 6d 61 6e 61 67 65 72 5f 67 65 74 5f 64 61 74 61 5f 64 65 76 69 63 65 28 61 2e 64 64 6d 2c 20 61 manager_get_data_device(a.ddm,.a
2e340 2e 73 65 61 74 29 3b 00 00 00 38 20 20 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 61 64 .seat);...8....wl_data_device_ad
2e360 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 64 64 2c 20 26 64 64 5f 6c 69 73 74 65 6e 65 72 2c 20 26 d_listener(a.dd,.&dd_listener,.&
2e380 61 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f a);......}..........a.ws.=.wl_co
2e3a0 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b mpositor_create_surface(a.comp);
2e3c0 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 ...1..a.xs.=.xdg_wm_base_get_xdg
2e3e0 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 33 20 20 78 64 67 5f 73 _surface(a.wm,.a.ws);...3..xdg_s
2e400 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 5f 6c 69 urface_add_listener(a.xs,.&xs_li
2e420 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 stener,.&a);...(..a.xt.=.xdg_sur
2e440 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 34 20 20 78 64 face_get_toplevel(a.xs);...4..xd
2e460 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 g_toplevel_add_listener(a.xt,.&x
2e480 74 5f 6c 69 73 74 65 6e 65 72 2c 20 26 61 29 3b 00 00 00 27 20 20 78 64 67 5f 74 6f 70 6c 65 76 t_listener,.&a);...'..xdg_toplev
2e4a0 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 65 64 22 29 3b 00 00 00 1a 20 el_set_title(a.xt,."wled");.....
2e4c0 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 00 00 00 00 .wl_surface_commit(a.ws);.......
2e4e0 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 00 00 27 20 20 20 20 ...while.(!a.configured)...'....
2e500 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 3d 3d 20 if.(wl_display_dispatch(a.d).==.
2e520 2d 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 00 00 00 00 25 20 20 69 6e 74 -1)..........break;.......%..int
2e540 20 77 6c 5f 66 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 3b .wl_fd.=.wl_display_get_fd(a.d);
2e560 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 ......while.(1).{........wl_disp
2e580 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 3c 20 20 20 20 73 74 72 75 63 74 20 70 6f lay_flush(a.d);...<....struct.po
2e5a0 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 2e 66 64 20 3d 20 77 6c 5f 66 64 2c 20 2e 65 76 llfd.fds[2].=.{{.fd.=.wl_fd,..ev
2e5c0 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 20 ents.=.POLLIN},...C.............
2e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2e 66 64 20 3d 20 61 2e 72 65 70 65 61 74 5f 66 ...............{.fd.=.a.repeat_f
2e600 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 6e d,..events.=.POLLIN}};........in
2e620 74 20 72 65 74 20 3d 20 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 3b 00 00 00 12 20 20 20 t.ret.=.poll(fds,.2,.-1);.......
2e640 20 69 66 20 28 72 65 74 20 3c 20 30 29 20 7b 00 00 00 19 20 20 20 20 20 20 69 66 20 28 65 72 72 .if.(ret.<.0).{..........if.(err
2e660 6e 6f 20 3d 3d 20 45 49 4e 54 52 29 00 00 00 11 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 no.==.EINTR)............continue
2e680 3b 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 22 20 20 ;..........break;........}..."..
2e6a0 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b ..if.(fds[1].revents.&.POLLIN).{
2e6c0 00 00 00 13 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 65 78 70 3b 00 00 00 2a 20 20 20 20 20 ..........uint64_t.exp;...*.....
2e6e0 20 72 65 61 64 28 61 2e 72 65 70 65 61 74 5f 66 64 2c 20 26 65 78 70 2c 20 73 69 7a 65 6f 66 20 .read(a.repeat_fd,.&exp,.sizeof.
2e700 65 78 70 29 3b 00 00 00 24 20 20 20 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 26 61 2c 20 61 exp);...$......process_key(&a,.a
2e720 2e 72 65 70 65 61 74 5f 6b 65 79 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 .repeat_key);........}........if
2e740 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 29 20 20 .(fds[0].revents.&.POLLIN)...)..
2e760 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 ....if.(wl_display_dispatch(a.d)
2e780 20 3d 3d 20 2d 31 29 00 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 03 20 20 7d .==.-1)............break;......}
2e7a0 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 ......return.0;....}5...........
2e7c0 00 00 00 00 70 04 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 7f 00 00 ....p.......................x...
2e7e0 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 17 00 00 00 19 00 00 00 00 00 00 00 00 ............5._.................
2e800 00 00 00 18 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 ................................
2e820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cb c3 04 01 00 00 00 00 00 f5 18 00 ..................i.............
2e980 00 04 64 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 04 65 00 00 00 00 00 00 ..d................}.....e......
2e9a0 00 00 00 00 00 00 f5 18 00 00 04 57 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 ...........W....................
2e9c0 00 00 04 58 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 04 45 00 00 00 00 00 00 00 00 00 00 ...X.................E..........
2e9e0 00 01 00 00 00 13 20 20 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f f5 18 00 00 04 46 00 ..........wl_data_device_.....F.
2ea00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 04 36 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................6...............
2ea20 44 20 20 61 2e 72 65 70 65 61 74 5f 66 64 3d 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c D..a.repeat_fd=timerfd_create(CL
2ea40 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c 4f 45 58 45 43 7c 54 46 44 5f 4e 4f OCK_MONOTONIC,TFD_CLOEXEC|TFD_NO
2ea60 4e 42 4c 4f 43 f5 18 00 00 04 37 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 04 28 00 00 00 NBLOC.....7.................(...
2ea80 00 00 00 00 00 00 00 00 01 00 00 00 27 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 ............'static.const.struct
2eaa0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 f5 18 00 00 04 29 00 00 00 00 00 00 .wl_registry_listene.....)......
2eac0 00 00 00 00 00 00 f5 18 00 00 04 1c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0b 73 74 61 74 ............................stat
2eae0 69 63 20 76 6f 69 64 f5 18 00 00 04 1d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 04 10 00 ic.void.........................
2eb00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 04 11 00 00 00 00 00 00 00 00 00 00 ................................
2eb20 00 00 f5 18 00 00 03 f9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 20 20 20 20 73 74 ..............................st
2eb40 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 f5 18 00 00 03 fa 00 00 00 00 00 00 00 00 00 ruct.itimerspec.t...............
2eb60 00 00 00 f5 18 00 00 03 e6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 26 20 20 63 68 61 72 20 ........................&..char.
2eb80 2a 73 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 2c 4d 41 50 f5 *s=mmap(NULL,size,PROT_READ,MAP.
2eba0 18 00 00 03 e7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 dc 00 00 00 00 00 00 00 00 00 ................................
2ebc0 00 00 01 00 00 00 31 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f 64 69 73 63 ......1static.void.ptr_axis_disc
2ebe0 72 65 74 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 f5 18 00 00 03 dd 00 00 rete(void.*d,struct.wl_p........
2ec00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 d1 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 ................................
2ec20 73 74 f5 18 00 00 03 d2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 bd 00 00 00 00 00 00 st..............................
2ec40 00 00 00 00 00 01 00 00 00 2c 20 20 20 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f .........,....a->open_menu=MENU_
2ec60 4e 4f 4e 45 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d f5 18 00 00 03 be 00 00 00 00 NONE;a->hovered_item=-..........
2ec80 00 00 00 00 00 00 00 00 f5 18 00 00 03 a9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0d 20 20 ................................
2eca0 20 20 69 66 28 69 74 21 3d 61 2d f5 18 00 00 03 aa 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ..if(it!=a-.....................
2ecc0 00 03 9a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 20 20 65 6c 73 65 7b 61 2d 3e 6d 78 3d .....................else{a->mx=
2ece0 6d 78 3b f5 18 00 00 03 9b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 8f 00 00 00 00 00 mx;.............................
2ed00 00 00 00 00 00 00 01 00 00 00 20 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 5f 73 65 6c 65 63 74 ...........static.void.dd_select
2ed20 69 6f 6e 28 76 6f 69 64 20 2a 64 f5 18 00 00 03 90 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ion(void.*d.....................
2ed40 00 03 87 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 25 20 20 2e 74 61 72 67 65 74 3d 64 73 5f ..................%...target=ds_
2ed60 74 61 72 67 65 74 2c 2e 73 65 6e 64 3d 64 73 5f 73 65 6e 64 2c 2e 63 61 f5 18 00 00 03 88 00 00 target,.send=ds_send,.ca........
2ed80 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 71 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 35 ...............q...............5
2eda0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 ..struct.app.*a=d;.xdg_surface_a
2edc0 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 f5 18 00 00 03 72 00 00 00 00 00 ck_configure(xs,seria.....r.....
2ede0 00 00 00 00 00 00 00 f5 18 00 00 03 68 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 73 74 61 ............h................sta
2ee00 74 69 63 20 76 6f 69 64 20 f5 18 00 00 03 69 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 tic.void......i.................
2ee20 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 20 20 20 f5 18 00 00 03 51 00 00 00 00 00 P.........................Q.....
2ee40 00 00 00 00 00 00 00 f5 18 00 00 03 37 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 4b 20 20 69 ............7...............K..i
2ee60 6e 74 20 73 68 69 66 74 3d 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f 61 nt.shift=xkb_state_mod_name_is_a
2ee80 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 5f ctive(a->xkb_state,XKB_MOD_NAME_
2eea0 53 48 49 46 54 2c 58 4b f5 18 00 00 03 38 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 27 SHIFT,XK.....8.................'
2eec0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 09 20 20 69 66 28 61 2d 3e 64 f5 18 00 00 03 28 00 ..................if(a->d.....(.
2eee0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 13 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
2ef00 41 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 73 74 61 72 74 28 76 6f 69 64 29 7b 72 65 74 75 Astatic.int.sel_start(void){retu
2ef20 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 3f 73 65 6c 5f 61 6e 63 68 6f 72 3a rn.sel_anchor<cursor?sel_anchor:
2ef40 63 75 f5 18 00 00 03 14 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 03 02 00 00 00 00 00 00 cu..............................
2ef60 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 20 20 20 20 20 20 61 2d 3e 66 70 f5 18 00 00 03 03 00 ....................a->fp.......
2ef80 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 f0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................................
2efa0 1a 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 74 6d 70 5b 4d 41 58 5f 50 41 f5 18 00 00 02 ............char.tmp[MAX_PA.....
2efc0 f1 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 e2 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
2efe0 00 00 0f 20 20 20 20 20 20 20 20 20 20 61 2d 3e 66 70 f5 18 00 00 02 e3 00 00 00 00 00 00 00 00 .............a->fp..............
2f000 00 00 00 00 f5 18 00 00 02 d3 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 24 20 20 20 20 20 20 .........................$......
2f020 20 20 7b 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 3d 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 f5 18 ..{const.char.*h=getenv("HOME"..
2f040 00 00 02 d4 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 cc 00 00 00 00 00 00 00 00 00 00 ................................
2f060 00 01 00 00 00 07 20 20 20 20 73 77 69 f5 18 00 00 02 cd 00 00 00 00 00 00 00 00 00 00 00 00 f5 ..........swi...................
2f080 18 00 00 02 a4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 02 a5 00 00 00 00 00 ................................
2f0a0 00 00 00 00 00 00 00 f5 18 00 00 02 98 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0a 20 20 63 ...............................c
2f0c0 6f 6e 73 74 20 4d 65 f5 18 00 00 02 99 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 7c 00 onst.Me.......................|.
2f0e0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 70 2d 3e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 .................p->xs=xdg_wm_ba
2f100 73 65 5f 67 65 74 5f 78 f5 18 00 00 02 7d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 67 se_get_x.....}.................g
2f120 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1f 20 20 69 66 28 21 70 2d 3e 70 69 78 65 6c 73 29 ..................if(!p->pixels)
2f140 20 70 2d 3e 70 69 78 65 6c 73 3d 6d 61 6b 65 f5 18 00 00 02 68 00 00 00 00 00 00 00 00 00 00 00 .p->pixels=make.....h...........
2f160 00 f5 18 00 00 02 61 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 2a 20 20 64 73 74 72 28 70 78 ......a...............*..dstr(px
2f180 2c 70 77 2c 70 68 2c 50 41 44 2a 32 2c 79 2c 22 53 6f 75 72 63 65 3a 20 20 20 20 20 67 69 74 2e ,pw,ph,PAD*2,y,"Source:.....git.
2f1a0 73 f5 18 00 00 02 62 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 3f 00 00 00 00 00 00 00 s.....b.................?.......
2f1c0 00 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 02 40 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ................@...............
2f1e0 00 02 28 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 09 20 20 69 6e 74 20 69 6e 70 f5 18 00 00 ..(..................int.inp....
2f200 02 29 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 18 00 00 00 00 00 00 00 00 00 00 00 01 .)..............................
2f220 00 00 00 07 20 20 20 20 72 65 74 f5 18 00 00 02 19 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ........ret.....................
2f240 00 02 0b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 31 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 ..................1..if(sym==XKB
2f260 5f 4b 45 59 5f 48 6f 6d 65 29 20 7b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 3d 30 3b 72 65 64 72 _KEY_Home).{fp->input_cur=0;redr
2f280 61 77 5f 66 f5 18 00 00 02 0c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 fe 00 00 00 00 aw_f............................
2f2a0 00 00 00 00 00 00 00 01 00 00 00 0e 20 20 20 20 72 65 64 72 61 77 5f 66 70 28 f5 18 00 00 01 ff ................redraw_fp(......
2f2c0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 f0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
2f2e0 00 1d 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 65 29 7b 66 70 5f f5 ....if(sym==XKB_KEY_Escape){fp_.
2f300 18 00 00 01 f1 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 e3 00 00 00 00 00 00 00 00 00 ................................
2f320 00 00 01 00 00 00 13 20 20 69 66 28 66 70 2d 3e 70 69 78 65 6c 73 29 20 7b 6d f5 18 00 00 01 e4 .........if(fp->pixels).{m......
2f340 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 d6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
2f360 00 1e 20 20 66 70 2d 3e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 ....fp->xs=xdg_wm_base_get_xdg_s
2f380 f5 18 00 00 01 d7 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 c7 00 00 00 00 00 00 00 00 ................................
2f3a0 00 00 00 01 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 78 74 5f 63 66 67 28 76 6f .......Mstatic.void.fp_xt_cfg(vo
2f3c0 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 2c 69 6e 74 id.*d,struct.xdg_toplevel.*t,int
2f3e0 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f 74 20 68 2c 73 74 72 75 f5 18 00 00 01 c8 00 00 00 00 00 32_t.w,int32_t.h,stru...........
2f400 00 00 00 00 00 00 00 f5 18 00 00 01 b9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0c 20 20 69 ...............................i
2f420 6e 74 20 63 6e 77 3d 73 70 f5 18 00 00 01 ba 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 nt.cnw=sp.......................
2f440 a5 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 20 f5 18 00 00 01 a6 00 00 00 00 00 00 ................................
2f460 00 00 00 00 00 00 f5 18 00 00 01 6c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 20 20 f5 18 ...........l....................
2f480 00 00 01 6d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 5d 00 00 00 00 00 00 00 00 00 00 ...m.................]..........
2f4a0 00 01 00 00 00 15 20 20 20 20 73 73 69 7a 65 5f 74 20 6e 3d 72 65 61 64 28 66 64 f5 18 00 00 01 ..........ssize_t.n=read(fd.....
2f4c0 5e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 4b 00 00 00 00 00 00 00 00 00 00 00 01 00 ^.................K.............
2f4e0 00 00 12 20 20 69 66 28 21 66 70 2d 3e 65 6e 74 72 69 65 73 5b f5 18 00 00 01 4c 00 00 00 00 00 .....if(!fp->entries[.....L.....
2f500 00 00 00 00 00 00 00 f5 18 00 00 01 38 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 26 20 20 69 ............8...............&..i
2f520 66 28 73 74 72 63 6d 70 28 66 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 78 5d 2e 6e 61 6d 65 2c 22 f(strcmp(fp->entries[idx].name,"
2f540 2e 2e 22 f5 18 00 00 01 39 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 f0 00 00 00 00 00 ..".....9.......................
2f560 00 00 00 00 00 00 01 00 00 00 03 20 20 63 f5 18 00 00 00 f1 00 00 00 00 00 00 00 00 00 00 00 00 .............c..................
2f580 f5 18 00 00 00 95 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 06 20 20 46 63 52 65 f5 18 00 00 ........................FcRe....
2f5a0 00 96 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................................
2f5c0 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 ......................5.........
2f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f600 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 06 00 00 00 00 00 00 00 ................................
2f620 00 00 00 00 5b 00 00 00 03 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 ....[...........................
2f640 00 00 00 00 f5 18 00 00 00 00 f0 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 48 00 00 00 26 00 ..........................H...&.
2f660 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
2f680 38 01 00 00 26 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 12 00 00 00 00 27 00 00 00 00 00 00 8...&....................'......
2f6a0 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 4b 01 00 00 12 00 00 00 00 00 ......................K.........
2f6c0 00 00 00 00 00 00 12 00 00 00 15 00 00 00 00 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............)................
2f6e0 00 00 00 00 00 00 f5 18 00 00 00 00 5d 01 00 00 15 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 ............]...................
2f700 02 00 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 .....+..........................
2f720 00 00 6c 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 39 00 00 00 03 00 00 00 00 2d 00 00 00 00 ..l...............9........-....
2f740 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 f5 18 00 00 00 00 a5 01 00 00 03 00 00 00 ................................
2f760 00 00 00 00 00 00 00 00 14 00 00 00 0c 00 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................4..............
2f780 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 b9 01 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0e 00 ................................
2f7a0 00 00 4d 00 00 00 00 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..M....7........................
2f7c0 00 00 00 00 c7 01 00 00 4d 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 1e 00 00 00 00 39 00 00 ........M....................9..
2f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 d6 01 00 00 1e 00 ................................
2f800 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 13 00 00 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 00 ...................;............
2f820 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 e3 01 00 00 13 00 00 00 00 00 00 00 00 00 00 00 ................................
2f840 0d 00 00 00 1d 00 00 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 .........=......................
2f860 f5 18 00 00 00 00 f0 01 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 0e 00 00 00 00 3f ...............................?
2f880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 fe 01 00 00 ................................
2f8a0 0e 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 31 00 00 00 00 41 00 00 00 00 00 00 00 00 00 00 ................1....A..........
2f8c0 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 0b 02 00 00 31 00 00 00 00 00 00 00 00 00 ......................1.........
2f8e0 00 00 0d 00 00 00 07 00 00 00 00 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ...........C....................
2f900 00 00 f5 18 00 00 00 00 18 02 00 00 07 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................................
2f920 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 28 02 .E............................(.
2f940 00 00 09 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 02 00 00 00 00 47 00 00 00 00 00 00 00 00 .......................G........
2f960 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 3f 02 00 00 02 00 00 00 00 00 00 00 ....................?...........
2f980 00 00 00 00 22 00 00 00 2a 00 00 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 ...."...*....J..................
2f9a0 00 00 00 00 f5 18 00 00 00 00 61 02 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 1f 00 ..........a...*.................
2f9c0 00 00 00 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 ...O............................
2f9e0 67 02 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 19 00 00 00 00 50 00 00 00 00 00 00 g........................P......
2fa00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 7c 02 00 00 19 00 00 00 00 00 ......................|.........
2fa20 00 00 00 00 00 00 1c 00 00 00 0a 00 00 00 00 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ...............T................
2fa40 00 00 00 00 00 00 f5 18 00 00 00 00 98 02 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 ................................
2fa60 00 00 00 00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 .....X..........................
2fa80 00 00 a4 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 07 00 00 00 00 5a 00 00 00 00 ..................(........Z....
2faa0 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 cc 02 00 00 07 00 00 00 ................................
2fac0 00 00 00 00 00 00 00 00 07 00 00 00 24 00 00 00 00 5f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............$...._..............
2fae0 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 d3 02 00 00 24 00 00 00 00 00 00 00 00 00 00 00 0f 00 ..................$.............
2fb00 00 00 0f 00 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 .......`........................
2fb20 00 00 00 00 e2 02 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 1a 00 00 00 00 62 00 00 .............................b..
2fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 f0 02 00 00 1a 00 ................................
2fb60 00 00 00 00 00 00 00 00 00 00 12 00 00 00 0f 00 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 00 ...................d............
2fb80 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 02 03 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 ................................
2fba0 11 00 00 00 41 00 00 00 00 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ....A....g......................
2fbc0 f5 18 00 00 00 00 13 03 00 00 41 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 09 00 00 00 00 69 ..........A....................i
2fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 27 03 00 00 ............................'...
2fc00 09 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 4b 00 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 ................K....l..........
2fc20 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 00 00 37 03 00 00 4b 00 00 00 00 00 00 00 00 00 ..................7...K.........
2fc40 00 00 19 00 00 00 04 00 00 00 00 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 ...........o....................
2fc60 00 00 f5 18 00 00 00 00 50 03 00 00 04 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 0c 00 00 00 ........P.......................
2fc80 00 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 68 03 .t............................h.
2fca0 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 35 00 00 00 00 78 00 00 00 00 00 00 00 00 ..................5....x........
2fcc0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 71 03 00 00 35 00 00 00 00 00 00 00 ....................q...5.......
2fce0 00 00 00 00 16 00 00 00 25 00 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 ........%....z..................
2fd00 00 00 00 00 f5 18 00 00 00 00 87 03 00 00 25 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 20 00 ..............%.................
2fd20 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 ...~............................
2fd40 8f 03 00 00 20 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 10 00 00 00 00 80 00 00 00 00 00 00 ................................
2fd60 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 9a 03 00 00 10 00 00 00 00 00 ................................
2fd80 00 00 00 00 00 00 0f 00 00 00 0d 00 00 00 00 82 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................................
2fda0 00 00 00 00 00 00 f5 18 00 00 00 00 a9 03 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 ................................
2fdc0 2c 00 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 f5 18 00 00 ,...............................
2fde0 00 00 bd 03 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 02 00 00 00 00 87 00 00 00 00 ......,.........................
2fe00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 d1 03 00 00 02 00 00 00 ................................
2fe20 00 00 00 00 00 00 00 00 0b 00 00 00 31 00 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............1...................
2fe40 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 dc 03 00 00 31 00 00 00 00 00 00 00 00 00 00 00 0a 00 ..................1.............
2fe60 00 00 26 00 00 00 00 8b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 ..&.............................
2fe80 00 00 00 00 e6 03 00 00 26 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 19 00 00 00 00 8d 00 00 ........&.......................
2fea0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 f9 03 00 00 19 00 ................................
2fec0 00 00 00 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00 00 91 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2fee0 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 10 04 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................................
2ff00 0c 00 00 00 0b 00 00 00 00 95 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
2ff20 f5 18 00 00 00 00 1c 04 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 27 00 00 00 00 97 ..........................'.....
2ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 f5 18 00 00 00 00 28 04 00 00 ............................(...
2ff60 27 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 44 00 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 '...............D...............
2ff80 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 36 04 00 00 44 00 00 00 00 00 00 00 00 00 ..................6...D.........
2ffa0 00 00 0f 00 00 00 13 00 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................................
2ffc0 00 00 f5 18 00 00 00 00 45 04 00 00 13 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 02 00 00 00 ........E.......................
2ffe0 00 9f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 57 04 ..............................W.
30000 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00 00 a1 00 00 00 00 00 00 00 00 ................................
30020 00 00 00 00 00 00 7c 01 00 00 00 00 00 00 35 81 5f d0 00 00 00 18 00 00 00 1a 00 00 00 00 00 00 ......|.......5._...............
30040 00 00 00 00 00 19 00 00 04 65 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 .........e......................
30060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
300a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
300c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
300e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
301a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cb c5 04 01 00 00 00 12 00 f5 ....................i...........
301c0 18 00 00 00 02 00 00 06 85 00 00 04 65 00 00 04 60 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 ............e...`...&#include."x
301e0 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 13 23 dg-shell-client-protocol.h"....#
30200 69 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c include."config.h"....#include.<
30220 64 69 72 65 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 00 dirent.h>....#include.<errno.h>.
30240 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 ...#include.<fcntl.h>....#includ
30260 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e e.<poll.h>....#include.<stdbool.
30280 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e h>....#include.<stdint.h>....#in
302a0 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 clude.<stdio.h>....#include.<std
302c0 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 lib.h>....#include.<string.h>...
302e0 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 .#include.<sys/mman.h>....#inclu
30300 64 65 20 3c 73 79 73 2f 73 74 61 74 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 de.<sys/stat.h>....#include.<sys
30320 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e /timerfd.h>....#include.<unistd.
30340 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
30360 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b 62 63 6f 6d 6d 6f 6e 2f 78 6b 62 63 6f 6d 6d >....#include.<xkbcommon/xkbcomm
30380 6f 6e 2e 68 3e 00 00 00 22 23 69 6e 63 6c 75 64 65 20 3c 66 6f 6e 74 63 6f 6e 66 69 67 2f 66 6f on.h>..."#include.<fontconfig/fo
303a0 6e 74 63 6f 6e 66 69 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 66 74 32 62 75 69 6c ntconfig.h>....#include.<ft2buil
303c0 64 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 46 54 5f 46 52 45 45 54 59 50 45 5f 48 00 00 d.h>....#include.FT_FREETYPE_H..
303e0 00 00 00 00 00 19 23 64 65 66 69 6e 65 20 4d 41 58 5f 54 45 58 54 20 20 20 20 36 35 35 33 36 00 ......#define.MAX_TEXT....65536.
30400 00 00 18 23 64 65 66 69 6e 65 20 4d 41 58 5f 50 41 54 48 20 20 20 20 34 30 39 36 00 00 00 18 23 ...#define.MAX_PATH....4096....#
30420 64 65 66 69 6e 65 20 4d 41 58 5f 45 4e 54 52 49 45 53 20 34 30 39 36 00 00 00 16 23 64 65 66 69 define.MAX_ENTRIES.4096....#defi
30440 6e 65 20 42 41 52 5f 48 20 20 20 20 20 20 20 32 38 00 00 00 16 23 64 65 66 69 6e 65 20 42 54 4e ne.BAR_H.......28....#define.BTN
30460 5f 50 41 44 20 20 20 20 20 31 30 00 00 00 15 23 64 65 66 69 6e 65 20 50 41 44 20 20 20 20 20 20 _PAD.....10....#define.PAD......
30480 20 20 20 38 00 00 00 00 00 00 00 1a 23 64 65 66 69 6e 65 20 42 47 5f 43 4f 4c 4f 52 20 20 20 20 ...8........#define.BG_COLOR....
304a0 43 46 47 5f 42 47 00 00 00 1a 23 64 65 66 69 6e 65 20 46 47 5f 43 4f 4c 4f 52 20 20 20 20 43 46 CFG_BG....#define.FG_COLOR....CF
304c0 47 5f 46 47 00 00 00 1e 23 64 65 66 69 6e 65 20 43 55 52 5f 43 4f 4c 4f 52 20 20 20 43 46 47 5f G_FG....#define.CUR_COLOR...CFG_
304e0 43 55 52 53 4f 52 00 00 00 1e 23 64 65 66 69 6e 65 20 53 45 4c 5f 43 4f 4c 4f 52 20 20 20 43 46 CURSOR....#define.SEL_COLOR...CF
30500 47 5f 53 45 4c 5f 42 47 00 00 00 1e 23 64 65 66 69 6e 65 20 53 45 4c 5f 46 47 20 20 20 20 20 20 G_SEL_BG....#define.SEL_FG......
30520 43 46 47 5f 53 45 4c 5f 46 47 00 00 00 1e 23 64 65 66 69 6e 65 20 42 41 52 5f 42 47 20 20 20 20 CFG_SEL_FG....#define.BAR_BG....
30540 20 20 43 46 47 5f 42 41 52 5f 42 47 00 00 00 1e 23 64 65 66 69 6e 65 20 42 41 52 5f 46 47 20 20 ..CFG_BAR_BG....#define.BAR_FG..
30560 20 20 20 20 43 46 47 5f 42 41 52 5f 46 47 00 00 00 1f 23 64 65 66 69 6e 65 20 42 54 4e 5f 48 4f ....CFG_BAR_FG....#define.BTN_HO
30580 56 20 20 20 20 20 43 46 47 5f 42 54 4e 5f 48 4f 56 00 00 00 1f 23 64 65 66 69 6e 65 20 44 52 4f V.....CFG_BTN_HOV....#define.DRO
305a0 50 5f 42 47 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 42 47 00 00 00 1f 23 64 65 66 69 6e 65 20 P_BG.....CFG_DROP_BG....#define.
305c0 44 52 4f 50 5f 46 47 20 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 46 47 00 00 00 20 23 64 65 66 69 DROP_FG.....CFG_DROP_FG....#defi
305e0 6e 65 20 44 52 4f 50 5f 48 4f 56 20 20 20 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 00 00 00 23 23 ne.DROP_HOV....CFG_DROP_HOV...##
30600 64 65 66 69 6e 65 20 44 52 4f 50 5f 48 4f 56 5f 46 47 20 43 46 47 5f 44 52 4f 50 5f 48 4f 56 5f define.DROP_HOV_FG.CFG_DROP_HOV_
30620 46 47 00 00 00 1b 23 64 65 66 69 6e 65 20 53 45 50 5f 43 4f 4c 4f 52 20 20 20 43 46 47 5f 53 45 FG....#define.SEP_COLOR...CFG_SE
30640 50 00 00 00 00 00 00 00 21 73 74 61 74 69 63 20 63 68 61 72 20 74 65 78 74 5b 4d 41 58 5f 54 45 P.......!static.char.text[MAX_TE
30660 58 54 5d 20 3d 20 7b 30 7d 3b 00 00 00 32 73 74 61 74 69 63 20 69 6e 74 20 20 74 6c 65 6e 20 3d XT].=.{0};...2static.int..tlen.=
30680 20 30 2c 20 63 75 72 73 6f 72 20 3d 20 30 2c 20 73 65 6c 5f 61 6e 63 68 6f 72 20 3d 20 2d 31 3b .0,.cursor.=.0,.sel_anchor.=.-1;
306a0 00 00 00 25 73 74 61 74 69 63 20 63 68 61 72 20 66 69 6c 65 70 61 74 68 5b 4d 41 58 5f 50 41 54 ...%static.char.filepath[MAX_PAT
306c0 48 5d 20 3d 20 7b 30 7d 3b 00 00 00 1a 73 74 61 74 69 63 20 62 6f 6f 6c 20 64 69 72 74 79 20 3d H].=.{0};....static.bool.dirty.=
306e0 20 66 61 6c 73 65 3b 00 00 00 00 00 00 00 19 73 74 61 74 69 63 20 46 54 5f 4c 69 62 72 61 72 79 .false;........static.FT_Library
30700 20 66 74 5f 6c 69 62 3b 00 00 00 1a 73 74 61 74 69 63 20 46 54 5f 46 61 63 65 20 20 20 20 66 74 .ft_lib;....static.FT_Face....ft
30720 5f 66 61 63 65 3b 00 00 00 40 73 74 61 74 69 63 20 69 6e 74 20 20 20 20 20 20 20 20 63 65 6c 6c _face;...@static.int........cell
30740 5f 77 2c 20 63 65 6c 6c 5f 68 2c 20 61 73 63 65 6e 64 65 72 2c 20 66 6f 6e 74 5f 70 74 20 3d 20 _w,.cell_h,.ascender,.font_pt.=.
30760 46 4f 4e 54 5f 53 49 5a 45 3b 00 00 00 00 00 00 00 3f 74 79 70 65 64 65 66 20 65 6e 75 6d 20 7b FONT_SIZE;.......?typedef.enum.{
30780 20 4d 45 4e 55 5f 4e 4f 4e 45 3d 2d 31 2c 20 4d 45 4e 55 5f 46 49 4c 45 3d 30 2c 20 4d 45 4e 55 .MENU_NONE=-1,.MENU_FILE=0,.MENU
307a0 5f 49 4e 46 4f 3d 31 20 7d 20 4d 65 6e 75 49 64 3b 00 00 00 3f 74 79 70 65 64 65 66 20 73 74 72 _INFO=1.}.MenuId;...?typedef.str
307c0 75 63 74 20 7b 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61 62 65 6c 3b 20 62 6f 6f 6c 20 73 65 uct.{.const.char.*label;.bool.se
307e0 70 5f 61 66 74 65 72 3b 20 7d 20 4d 65 6e 75 49 74 65 6d 3b 00 00 00 00 00 00 00 26 73 74 61 74 p_after;.}.MenuItem;.......&stat
30800 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 66 69 6c 65 5f 69 74 65 6d 73 5b 5d 20 3d ic.const.MenuItem.file_items[].=
30820 20 7b 00 00 00 3f 20 20 7b 22 4e 65 77 22 2c 66 61 6c 73 65 7d 2c 7b 22 4f 70 65 6e 22 2c 66 61 .{...?..{"New",false},{"Open",fa
30840 6c 73 65 7d 2c 7b 22 53 61 76 65 22 2c 66 61 6c 73 65 7d 2c 7b 22 53 61 76 65 20 41 73 22 2c 74 lse},{"Save",false},{"Save.As",t
30860 72 75 65 7d 2c 00 00 00 29 20 20 7b 22 53 61 76 65 20 61 6e 64 20 51 75 69 74 22 2c 66 61 6c 73 rue},...)..{"Save.and.Quit",fals
30880 65 7d 2c 7b 22 51 75 69 74 22 2c 66 61 6c 73 65 7d 2c 00 00 00 02 7d 3b 00 00 00 39 73 74 61 74 e},{"Quit",false},....};...9stat
308a0 69 63 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 69 6e 66 6f 5f 69 74 65 6d 73 5b 5d 20 3d ic.const.MenuItem.info_items[].=
308c0 20 7b 20 7b 22 41 62 6f 75 74 22 2c 66 61 6c 73 65 7d 20 7d 3b 00 00 00 3b 23 64 65 66 69 6e 65 .{.{"About",false}.};...;#define
308e0 20 4e 5f 46 49 4c 45 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 66 69 6c 65 5f 69 74 65 6d 73 .N_FILE.((int)(sizeof.file_items
30900 2f 73 69 7a 65 6f 66 2a 66 69 6c 65 5f 69 74 65 6d 73 29 29 00 00 00 3b 23 64 65 66 69 6e 65 20 /sizeof*file_items))...;#define.
30920 4e 5f 49 4e 46 4f 20 28 28 69 6e 74 29 28 73 69 7a 65 6f 66 20 69 6e 66 6f 5f 69 74 65 6d 73 2f N_INFO.((int)(sizeof.info_items/
30940 73 69 7a 65 6f 66 2a 69 6e 66 6f 5f 69 74 65 6d 73 29 29 00 00 00 00 00 00 00 29 74 79 70 65 64 sizeof*info_items)).......)typed
30960 65 66 20 65 6e 75 6d 20 7b 20 46 50 5f 4f 50 45 4e 2c 20 46 50 5f 53 41 56 45 20 7d 20 46 70 4d ef.enum.{.FP_OPEN,.FP_SAVE.}.FpM
30980 6f 64 65 3b 00 00 00 39 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 6e 61 ode;...9typedef.struct.{.char.na
309a0 6d 65 5b 32 35 36 5d 3b 20 62 6f 6f 6c 20 69 73 5f 64 69 72 3b 20 7d 20 44 69 72 45 6e 74 72 79 me[256];.bool.is_dir;.}.DirEntry
309c0 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 1a 20 20 73 ;........typedef.struct.{......s
309e0 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 20 20 2a 77 73 3b 00 00 00 1a 20 20 73 74 72 truct.wl_surface...*ws;......str
30a00 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 uct.xdg_surface..*xs;......struc
30a20 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 t.xdg_toplevel.*xt;......void.*p
30a40 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 ixels;......size_t.pixels_size;.
30a60 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 18 20 .....struct.wl_buffer.*buf;.....
30a80 20 62 6f 6f 6c 20 6f 70 65 6e 2c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 46 70 4d .bool.open,.configured;......FpM
30aa0 6f 64 65 20 6d 6f 64 65 3b 00 00 00 12 20 20 62 6f 6f 6c 20 71 75 69 74 5f 61 66 74 65 72 3b 00 ode.mode;......bool.quit_after;.
30ac0 00 00 15 20 20 63 68 61 72 20 63 77 64 5b 4d 41 58 5f 50 41 54 48 5d 3b 00 00 00 17 20 20 63 68 .....char.cwd[MAX_PATH];......ch
30ae0 61 72 20 69 6e 70 75 74 5b 4d 41 58 5f 50 41 54 48 5d 3b 00 00 00 1c 20 20 69 6e 74 20 20 69 6e ar.input[MAX_PATH];......int..in
30b00 70 75 74 5f 6c 65 6e 2c 20 69 6e 70 75 74 5f 63 75 72 3b 00 00 00 14 20 20 44 69 72 45 6e 74 72 put_len,.input_cur;......DirEntr
30b20 79 20 2a 65 6e 74 72 69 65 73 3b 00 00 00 2a 20 20 69 6e 74 20 6e 65 6e 74 72 69 65 73 2c 20 73 y.*entries;...*..int.nentries,.s
30b40 65 6c 65 63 74 65 64 2c 20 73 63 72 6f 6c 6c 2c 20 68 6f 76 65 72 65 64 3b 00 00 00 0d 20 20 69 elected,.scroll,.hovered;......i
30b60 6e 74 20 6d 78 2c 20 6d 79 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 05 7d 20 46 nt.mx,.my;......int.w,.h;....}.F
30b80 50 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 1a 20 20 P;........typedef.struct.{......
30ba0 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 20 20 2a 77 73 3b 00 00 00 1a 20 20 73 74 struct.wl_surface...*ws;......st
30bc0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 ruct.xdg_surface..*xs;......stru
30be0 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a ct.xdg_toplevel.*xt;......void.*
30c00 70 69 78 65 6c 73 3b 00 00 00 15 20 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b pixels;......size_t.pixels_size;
30c20 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b ......struct.wl_buffer.*buf;....
30c40 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 18 20 20 62 6f 6f 6c 20 6f 70 65 6e 2c 20 63 6f 6e 66 ..int.w,.h;......bool.open,.conf
30c60 69 67 75 72 65 64 3b 00 00 00 08 7d 20 50 6f 70 75 70 3b 00 00 00 00 00 00 00 0c 73 74 72 75 63 igured;....}.Popup;........struc
30c80 74 20 61 70 70 20 7b 00 00 00 23 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 20 t.app.{...#..struct.wl_display..
30ca0 20 20 20 20 20 20 20 20 20 20 20 2a 64 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 ...........*d;...%..struct.wl_re
30cc0 67 69 73 74 72 79 20 20 20 20 20 20 20 20 20 20 20 20 2a 72 65 67 3b 00 00 00 26 20 20 73 74 72 gistry............*reg;...&..str
30ce0 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 20 20 20 20 20 20 20 20 20 2a 63 6f 6d 70 uct.wl_compositor..........*comp
30d00 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 20 20 20 20 20 20 20 20 20 20 20 ;...%..struct.wl_shm............
30d20 20 20 20 20 20 2a 73 68 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 .....*shm;...$..struct.xdg_wm_ba
30d40 73 65 20 20 20 20 20 20 20 20 20 20 20 20 2a 77 6d 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 77 se............*wm;...$..struct.w
30d60 6c 5f 73 75 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 77 73 3b 00 00 00 24 20 20 l_surface.............*ws;...$..
30d80 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 2a 78 struct.xdg_surface............*x
30da0 73 3b 00 00 00 24 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 20 20 20 20 s;...$..struct.xdg_toplevel.....
30dc0 20 20 20 20 20 20 2a 78 74 3b 00 00 00 26 20 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 20 ......*xt;...&..struct.wl_seat..
30de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 73 65 61 74 3b 00 00 00 2a 20 20 73 74 72 75 63 74 ..............*seat;...*..struct
30e00 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 20 20 20 20 20 20 20 20 20 20 20 2a 6b 65 79 62 6f 61 72 .wl_keyboard............*keyboar
30e20 64 3b 00 00 00 29 20 20 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 20 20 20 20 20 20 d;...)..struct.wl_pointer.......
30e40 20 20 20 20 20 20 2a 70 6f 69 6e 74 65 72 3b 00 00 00 25 20 20 73 74 72 75 63 74 20 77 6c 5f 64 ......*pointer;...%..struct.wl_d
30e60 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 20 2a 64 64 6d 3b 00 00 00 24 20 20 73 74 ata_device_manager.*ddm;...$..st
30e80 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 20 20 20 20 20 20 20 20 2a 64 64 3b ruct.wl_data_device.........*dd;
30ea0 00 00 00 24 20 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 20 20 20 20 ...$..struct.wl_data_source.....
30ec0 20 20 20 20 2a 64 73 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 15 20 ....*ds;......void.*pixels;.....
30ee0 20 73 69 7a 65 5f 74 20 70 69 78 65 6c 73 5f 73 69 7a 65 3b 00 00 00 18 20 20 73 74 72 75 63 74 .size_t.pixels_size;......struct
30f00 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 21 20 20 69 6e 74 20 77 2c 20 68 2c 20 .wl_buffer.*buf;...!..int.w,.h,.
30f20 70 65 6e 64 69 6e 67 5f 77 2c 20 70 65 6e 64 69 6e 67 5f 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 pending_w,.pending_h;......bool.
30f40 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 1e 20 20 73 74 72 75 63 74 20 78 6b 62 5f 63 6f 6e 74 configured;......struct.xkb_cont
30f60 65 78 74 20 2a 78 6b 62 5f 63 74 78 3b 00 00 00 21 20 20 73 74 72 75 63 74 20 78 6b 62 5f 6b 65 ext.*xkb_ctx;...!..struct.xkb_ke
30f80 79 6d 61 70 20 20 2a 78 6b 62 5f 6b 65 79 6d 61 70 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 78 ymap..*xkb_keymap;......struct.x
30fa0 6b 62 5f 73 74 61 74 65 20 20 20 2a 78 6b 62 5f 73 74 61 74 65 3b 00 00 00 10 20 20 69 6e 74 20 kb_state...*xkb_state;......int.
30fc0 72 65 70 65 61 74 5f 66 64 3b 00 00 00 16 20 20 75 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f repeat_fd;......uint32_t.repeat_
30fe0 6b 65 79 3b 00 00 00 24 20 20 69 6e 74 33 32 5f 74 20 72 65 70 65 61 74 5f 72 61 74 65 2c 20 72 key;...$..int32_t.repeat_rate,.r
31000 65 70 65 61 74 5f 64 65 6c 61 79 3b 00 00 00 1b 20 20 63 68 61 72 20 63 6c 69 70 62 6f 61 72 64 epeat_delay;......char.clipboard
31020 5b 4d 41 58 5f 54 45 58 54 5d 3b 00 00 00 14 20 20 69 6e 74 20 63 6c 69 70 62 6f 61 72 64 5f 6c [MAX_TEXT];......int.clipboard_l
31040 65 6e 3b 00 00 00 17 20 20 75 69 6e 74 33 32 5f 74 20 6c 61 73 74 5f 73 65 72 69 61 6c 3b 00 00 en;......uint32_t.last_serial;..
31060 00 0d 20 20 69 6e 74 20 6d 78 2c 20 6d 79 3b 00 00 00 13 20 20 4d 65 6e 75 49 64 20 6f 70 65 6e ....int.mx,.my;......MenuId.open
31080 5f 6d 65 6e 75 3b 00 00 00 13 20 20 69 6e 74 20 68 6f 76 65 72 65 64 5f 69 74 65 6d 3b 00 00 00 _menu;......int.hovered_item;...
310a0 1e 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 70 74 72 5f 73 75 72 66 3b 00 ...struct.wl_surface.*ptr_surf;.
310c0 00 00 0c 20 20 46 50 20 20 20 20 20 66 70 3b 00 00 00 0f 20 20 50 6f 70 75 70 20 20 61 62 6f 75 .....FP.....fp;......Popup..abou
310e0 74 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 6f 69 64 20 75 70 64 61 t;....};.......'static.void.upda
31100 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 76 6f 69 64 29 20 7b 00 00 00 33 20 20 46 54 5f te_font_metrics(void).{...3..FT_
31120 53 65 74 5f 43 68 61 72 5f 53 69 7a 65 28 66 74 5f 66 61 63 65 2c 20 30 2c 20 66 6f 6e 74 5f 70 Set_Char_Size(ft_face,.0,.font_p
31140 74 2a 36 34 2c 20 39 36 2c 20 39 36 29 3b 00 00 00 33 20 20 46 54 5f 4c 6f 61 64 5f 43 68 61 72 t*64,.96,.96);...3..FT_Load_Char
31160 28 66 74 5f 66 61 63 65 2c 20 27 30 27 2c 20 46 54 5f 4c 4f 41 44 5f 41 44 56 41 4e 43 45 5f 4f (ft_face,.'0',.FT_LOAD_ADVANCE_O
31180 4e 4c 59 29 3b 00 00 00 36 20 20 63 65 6c 6c 5f 77 20 20 20 3d 20 28 69 6e 74 29 28 28 66 74 5f NLY);...6..cell_w...=.(int)((ft_
311a0 66 61 63 65 2d 3e 67 6c 79 70 68 2d 3e 61 64 76 61 6e 63 65 2e 78 2b 33 32 29 3e 3e 36 29 3b 00 face->glyph->advance.x+32)>>6);.
311c0 00 00 37 20 20 61 73 63 65 6e 64 65 72 20 3d 20 28 69 6e 74 29 28 66 74 5f 66 61 63 65 2d 3e 73 ..7..ascender.=.(int)(ft_face->s
311e0 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 61 73 63 65 6e 64 65 72 3e 3e 36 29 3b 00 00 00 47 20 20 ize->metrics.ascender>>6);...G..
31200 63 65 6c 6c 5f 68 20 20 20 3d 20 61 73 63 65 6e 64 65 72 2b 28 69 6e 74 29 28 28 2d 66 74 5f 66 cell_h...=.ascender+(int)((-ft_f
31220 61 63 65 2d 3e 73 69 7a 65 2d 3e 6d 65 74 72 69 63 73 2e 64 65 73 63 65 6e 64 65 72 2b 36 33 29 ace->size->metrics.descender+63)
31240 3e 3e 36 29 3b 00 00 00 19 20 20 69 66 20 28 63 65 6c 6c 5f 77 3c 31 29 20 63 65 6c 6c 5f 77 3d >>6);......if.(cell_w<1).cell_w=
31260 31 3b 00 00 00 19 20 20 69 66 20 28 63 65 6c 6c 5f 68 3c 31 29 20 63 65 6c 6c 5f 68 3d 31 3b 00 1;......if.(cell_h<1).cell_h=1;.
31280 00 00 01 7d 00 00 00 00 00 00 00 1d 73 74 61 74 69 63 20 62 6f 6f 6c 20 6c 6f 61 64 5f 66 6f 6e ...}........static.bool.load_fon
312a0 74 28 76 6f 69 64 29 20 7b 00 00 00 0b 20 20 46 63 49 6e 69 74 28 29 3b 00 00 00 32 20 20 46 63 t(void).{......FcInit();...2..Fc
312c0 50 61 74 74 65 72 6e 20 2a 70 61 74 3d 46 63 4e 61 6d 65 50 61 72 73 65 28 28 46 63 43 68 61 72 Pattern.*pat=FcNameParse((FcChar
312e0 38 2a 29 46 4f 4e 54 5f 4e 41 4d 45 29 3b 00 00 00 2e 20 20 46 63 43 6f 6e 66 69 67 53 75 62 73 8*)FONT_NAME);......FcConfigSubs
31300 74 69 74 75 74 65 28 4e 55 4c 4c 2c 70 61 74 2c 46 63 4d 61 74 63 68 50 61 74 74 65 72 6e 29 3b titute(NULL,pat,FcMatchPattern);
31320 00 00 00 1b 20 20 46 63 44 65 66 61 75 6c 74 53 75 62 73 74 69 74 75 74 65 28 70 61 74 29 3b 00 ......FcDefaultSubstitute(pat);.
31340 00 00 0f 20 20 46 63 52 65 73 75 6c 74 20 72 65 73 3b 00 00 00 2e 20 20 46 63 50 61 74 74 65 72 .....FcResult.res;......FcPatter
31360 6e 20 2a 6d 61 74 63 68 3d 46 63 46 6f 6e 74 4d 61 74 63 68 28 4e 55 4c 4c 2c 70 61 74 2c 26 72 n.*match=FcFontMatch(NULL,pat,&r
31380 65 73 29 3b 00 00 00 18 20 20 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 70 61 74 29 3b es);......FcPatternDestroy(pat);
313a0 00 00 00 1b 20 20 69 66 20 28 21 6d 61 74 63 68 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 ......if.(!match).return.false;.
313c0 00 00 15 20 20 46 63 43 68 61 72 38 20 2a 70 61 74 68 3d 4e 55 4c 4c 3b 00 00 00 66 20 20 69 66 .....FcChar8.*path=NULL;...f..if
313e0 20 28 46 63 50 61 74 74 65 72 6e 47 65 74 53 74 72 69 6e 67 28 6d 61 74 63 68 2c 46 43 5f 46 49 .(FcPatternGetString(match,FC_FI
31400 4c 45 2c 30 2c 26 70 61 74 68 29 21 3d 46 63 52 65 73 75 6c 74 4d 61 74 63 68 29 7b 46 63 50 61 LE,0,&path)!=FcResultMatch){FcPa
31420 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 72 65 74 75 72 6e 20 66 61 6c 73 65 tternDestroy(match);return.false
31440 3b 7d 00 00 00 47 20 20 69 66 20 28 46 54 5f 49 6e 69 74 5f 46 72 65 65 54 79 70 65 28 26 66 74 ;}...G..if.(FT_Init_FreeType(&ft
31460 5f 6c 69 62 29 29 7b 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 72 _lib)){FcPatternDestroy(match);r
31480 65 74 75 72 6e 20 66 61 6c 73 65 3b 7d 00 00 00 5e 20 20 69 66 20 28 46 54 5f 4e 65 77 5f 46 61 eturn.false;}...^..if.(FT_New_Fa
314a0 63 65 28 66 74 5f 6c 69 62 2c 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 70 61 74 68 2c 30 2c 26 66 ce(ft_lib,(const.char*)path,0,&f
314c0 74 5f 66 61 63 65 29 29 7b 46 63 50 61 74 74 65 72 6e 44 65 73 74 72 6f 79 28 6d 61 74 63 68 29 t_face)){FcPatternDestroy(match)
314e0 3b 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 7d 00 00 00 1a 20 20 46 63 50 61 74 74 65 72 6e 44 65 ;return.false;}......FcPatternDe
31500 73 74 72 6f 79 28 6d 61 74 63 68 29 3b 00 00 00 18 20 20 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d stroy(match);......update_font_m
31520 65 74 72 69 63 73 28 29 3b 00 00 00 0e 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 00 00 01 7d etrics();......return.true;....}
31540 00 00 00 00 00 00 00 40 73 74 61 74 69 63 20 76 6f 69 64 20 70 73 65 74 28 76 6f 69 64 20 2a 70 .......@static.void.pset(void.*p
31560 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 78 2c 69 6e 74 20 79 2c 75 69 6e 74 x,int.pw,int.ph,int.x,int.y,uint
31580 33 32 5f 74 20 63 29 7b 00 00 00 37 20 20 69 66 28 78 3e 3d 30 26 26 79 3e 3d 30 26 26 78 3c 70 32_t.c){...7..if(x>=0&&y>=0&&x<p
315a0 77 26 26 79 3c 70 68 29 20 28 28 75 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 79 2a 70 77 2b 78 5d w&&y<ph).((uint32_t*)px)[y*pw+x]
315c0 3d 63 3b 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 66 72 65 63 74 28 76 6f =c;....}...Mstatic.void.frect(vo
315e0 69 64 20 2a 70 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 78 2c 69 6e 74 20 79 id.*px,int.pw,int.ph,int.x,int.y
31600 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 75 69 6e 74 33 32 5f 74 20 63 29 7b 00 00 00 4d 20 20 66 ,int.w,int.h,uint32_t.c){...M..f
31620 6f 72 28 69 6e 74 20 64 79 3d 30 3b 64 79 3c 68 3b 64 79 2b 2b 29 20 66 6f 72 28 69 6e 74 20 64 or(int.dy=0;dy<h;dy++).for(int.d
31640 78 3d 30 3b 64 78 3c 77 3b 64 78 2b 2b 29 20 70 73 65 74 28 70 78 2c 70 77 2c 70 68 2c 78 2b 64 x=0;dx<w;dx++).pset(px,pw,ph,x+d
31660 78 2c 79 2b 64 79 2c 63 29 3b 00 00 00 01 7d 00 00 00 4b 73 74 61 74 69 63 20 76 6f 69 64 20 62 x,y+dy,c);....}...Kstatic.void.b
31680 70 69 78 28 76 6f 69 64 20 2a 70 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 78 pix(void.*px,int.pw,int.ph,int.x
316a0 2c 69 6e 74 20 79 2c 75 69 6e 74 33 32 5f 74 20 66 67 2c 75 69 6e 74 38 5f 74 20 61 29 7b 00 00 ,int.y,uint32_t.fg,uint8_t.a){..
316c0 00 24 20 20 69 66 28 78 3c 30 7c 7c 79 3c 30 7c 7c 78 3e 3d 70 77 7c 7c 79 3e 3d 70 68 29 20 72 .$..if(x<0||y<0||x>=pw||y>=ph).r
316e0 65 74 75 72 6e 3b 00 00 00 32 20 20 75 69 6e 74 33 32 5f 74 20 2a 64 73 74 3d 26 28 28 75 69 6e eturn;...2..uint32_t.*dst=&((uin
31700 74 33 32 5f 74 2a 29 70 78 29 5b 79 2a 70 77 2b 78 5d 2c 20 62 67 3d 2a 64 73 74 3b 00 00 00 39 t32_t*)px)[y*pw+x],.bg=*dst;...9
31720 20 20 75 69 6e 74 33 32 5f 74 20 72 3d 28 28 66 67 3e 3e 31 36 26 30 78 46 46 29 2a 61 2b 28 62 ..uint32_t.r=((fg>>16&0xFF)*a+(b
31740 67 3e 3e 31 36 26 30 78 46 46 29 2a 28 32 35 35 2d 61 29 29 2f 32 35 35 3b 00 00 00 39 20 20 75 g>>16&0xFF)*(255-a))/255;...9..u
31760 69 6e 74 33 32 5f 74 20 67 3d 28 28 66 67 3e 3e 20 38 26 30 78 46 46 29 2a 61 2b 28 62 67 3e 3e int32_t.g=((fg>>.8&0xFF)*a+(bg>>
31780 20 38 26 30 78 46 46 29 2a 28 32 35 35 2d 61 29 29 2f 32 35 35 3b 00 00 00 39 20 20 75 69 6e 74 .8&0xFF)*(255-a))/255;...9..uint
317a0 33 32 5f 74 20 62 3d 28 28 66 67 20 20 20 20 26 30 78 46 46 29 2a 61 2b 28 62 67 20 20 20 20 26 32_t.b=((fg....&0xFF)*a+(bg....&
317c0 30 78 46 46 29 2a 28 32 35 35 2d 61 29 29 2f 32 35 35 3b 00 00 00 23 20 20 2a 64 73 74 3d 30 78 0xFF)*(255-a))/255;...#..*dst=0x
317e0 46 46 30 30 30 30 30 30 7c 28 72 3c 3c 31 36 29 7c 28 67 3c 3c 38 29 7c 62 3b 00 00 00 01 7d 00 FF000000|(r<<16)|(g<<8)|b;....}.
31800 00 00 52 73 74 61 74 69 63 20 76 6f 69 64 20 64 67 6c 79 70 68 28 76 6f 69 64 20 2a 70 78 2c 69 ..Rstatic.void.dglyph(void.*px,i
31820 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 63 78 2c 69 6e 74 20 63 79 2c 75 69 6e 74 33 nt.pw,int.ph,int.cx,int.cy,uint3
31840 32 5f 74 20 63 70 2c 75 69 6e 74 33 32 5f 74 20 63 6f 6c 29 7b 00 00 00 2a 20 20 46 54 5f 4c 6f 2_t.cp,uint32_t.col){...*..FT_Lo
31860 61 64 5f 43 68 61 72 28 66 74 5f 66 61 63 65 2c 63 70 2c 46 54 5f 4c 4f 41 44 5f 52 45 4e 44 45 ad_Char(ft_face,cp,FT_LOAD_RENDE
31880 52 29 3b 00 00 00 20 20 20 46 54 5f 47 6c 79 70 68 53 6c 6f 74 20 73 3d 66 74 5f 66 61 63 65 2d R);......FT_GlyphSlot.s=ft_face-
318a0 3e 67 6c 79 70 68 3b 00 00 00 1b 20 20 46 54 5f 42 69 74 6d 61 70 20 2a 62 6d 3d 26 73 2d 3e 62 >glyph;......FT_Bitmap.*bm=&s->b
318c0 69 74 6d 61 70 3b 00 00 00 36 20 20 69 6e 74 20 6f 78 3d 73 2d 3e 62 69 74 6d 61 70 5f 6c 65 66 itmap;...6..int.ox=s->bitmap_lef
318e0 74 2c 20 6f 79 3d 63 79 2b 61 73 63 65 6e 64 65 72 2d 73 2d 3e 62 69 74 6d 61 70 5f 74 6f 70 3b t,.oy=cy+ascender-s->bitmap_top;
31900 00 00 00 28 20 20 66 6f 72 28 69 6e 74 20 72 6f 77 3d 30 3b 72 6f 77 3c 28 69 6e 74 29 62 6d 2d ...(..for(int.row=0;row<(int)bm-
31920 3e 72 6f 77 73 3b 72 6f 77 2b 2b 29 00 00 00 29 20 20 20 20 66 6f 72 28 69 6e 74 20 63 32 3d 30 >rows;row++)...)....for(int.c2=0
31940 3b 63 32 3c 28 69 6e 74 29 62 6d 2d 3e 77 69 64 74 68 3b 63 32 2b 2b 29 7b 00 00 00 2e 20 20 20 ;c2<(int)bm->width;c2++){.......
31960 20 20 20 75 69 6e 74 38 5f 74 20 61 76 3d 62 6d 2d 3e 62 75 66 66 65 72 5b 72 6f 77 2a 62 6d 2d ...uint8_t.av=bm->buffer[row*bm-
31980 3e 70 69 74 63 68 2b 63 32 5d 3b 00 00 00 33 20 20 20 20 20 20 69 66 28 61 76 29 20 62 70 69 78 >pitch+c2];...3......if(av).bpix
319a0 28 70 78 2c 70 77 2c 70 68 2c 63 78 2b 6f 78 2b 63 32 2c 6f 79 2b 72 6f 77 2c 63 6f 6c 2c 61 76 (px,pw,ph,cx+ox+c2,oy+row,col,av
319c0 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 );........}....}...Pstatic.void.
319e0 64 73 74 72 28 76 6f 69 64 20 2a 70 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 dstr(void.*px,int.pw,int.ph,int.
31a00 78 2c 69 6e 74 20 79 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 75 69 6e 74 33 32 5f 74 20 63 x,int.y,const.char.*s,uint32_t.c
31a20 6f 6c 29 7b 00 00 00 44 20 20 66 6f 72 28 3b 2a 73 3b 73 2b 2b 2c 78 2b 3d 63 65 6c 6c 5f 77 29 ol){...D..for(;*s;s++,x+=cell_w)
31a40 20 64 67 6c 79 70 68 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 28 75 6e 73 69 67 6e 65 64 20 63 .dglyph(px,pw,ph,x,y,(unsigned.c
31a60 68 61 72 29 2a 73 2c 63 6f 6c 29 3b 00 00 00 01 7d 00 00 00 57 73 74 61 74 69 63 20 76 6f 69 64 har)*s,col);....}...Wstatic.void
31a80 20 64 73 74 72 6e 28 76 6f 69 64 20 2a 70 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e .dstrn(void.*px,int.pw,int.ph,in
31aa0 74 20 78 2c 69 6e 74 20 79 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 69 6e 74 20 6e 2c 75 69 t.x,int.y,const.char.*s,int.n,ui
31ac0 6e 74 33 32 5f 74 20 63 6f 6c 29 7b 00 00 00 54 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c nt32_t.col){...T..for(int.i=0;i<
31ae0 6e 26 26 73 5b 69 5d 3b 69 2b 2b 2c 78 2b 3d 63 65 6c 6c 5f 77 29 20 64 67 6c 79 70 68 28 70 78 n&&s[i];i++,x+=cell_w).dglyph(px
31b00 2c 70 77 2c 70 68 2c 78 2c 79 2c 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 73 5b 69 5d 2c 63 ,pw,ph,x,y,(unsigned.char)s[i],c
31b20 6f 6c 29 3b 00 00 00 01 7d 00 00 00 3c 73 74 61 74 69 63 20 69 6e 74 20 73 70 77 28 63 6f 6e 73 ol);....}...<static.int.spw(cons
31b40 74 20 63 68 61 72 20 2a 73 29 7b 72 65 74 75 72 6e 20 28 69 6e 74 29 73 74 72 6c 65 6e 28 73 29 t.char.*s){return.(int)strlen(s)
31b60 2a 63 65 6c 6c 5f 77 3b 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 2a 6d 61 *cell_w;}.......Sstatic.void.*ma
31b80 6b 65 5f 73 68 6d 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 77 2c 69 6e 74 20 68 ke_shm(struct.app.*a,int.w,int.h
31ba0 2c 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 2a 6f 62 2c 73 69 7a 65 5f 74 20 2a 6f ,struct.wl_buffer.**ob,size_t.*o
31bc0 73 7a 29 7b 00 00 00 1a 20 20 73 69 7a 65 5f 74 20 73 7a 3d 28 73 69 7a 65 5f 74 29 77 2a 68 2a sz){......size_t.sz=(size_t)w*h*
31be0 34 3b 00 00 00 21 20 20 63 68 61 72 20 74 5b 5d 3d 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 58 4;...!..char.t[]="/tmp/wayland-X
31c00 58 58 58 58 58 22 3b 00 00 00 1f 20 20 69 6e 74 20 66 64 3d 6d 6b 73 74 65 6d 70 28 74 29 3b 20 XXXXX";......int.fd=mkstemp(t);.
31c20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 36 20 20 69 66 28 66 64 3c 30 7c 7c 66 74 72 75 6e 63 61 unlink(t);...6..if(fd<0||ftrunca
31c40 74 65 28 66 64 2c 73 7a 29 3c 30 29 7b 70 65 72 72 6f 72 28 22 73 68 6d 22 29 3b 65 78 69 74 28 te(fd,sz)<0){perror("shm");exit(
31c60 31 29 3b 7d 00 00 00 3e 20 20 76 6f 69 64 20 2a 70 78 3d 6d 6d 61 70 28 4e 55 4c 4c 2c 73 7a 2c 1);}...>..void.*px=mmap(NULL,sz,
31c80 50 52 4f 54 5f 52 45 41 44 7c 50 52 4f 54 5f 57 52 49 54 45 2c 4d 41 50 5f 53 48 41 52 45 44 2c PROT_READ|PROT_WRITE,MAP_SHARED,
31ca0 66 64 2c 30 29 3b 00 00 00 2d 20 20 69 66 28 70 78 3d 3d 4d 41 50 5f 46 41 49 4c 45 44 29 7b 70 fd,0);...-..if(px==MAP_FAILED){p
31cc0 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 65 78 69 74 28 31 29 3b 7d 00 00 00 3c 20 20 73 74 72 error("mmap");exit(1);}...<..str
31ce0 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 3d 77 6c 5f 73 68 6d 5f 63 72 65 uct.wl_shm_pool.*pool=wl_shm_cre
31d00 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 66 64 2c 73 7a 29 3b 00 00 00 47 20 20 2a 6f 62 ate_pool(a->shm,fd,sz);...G..*ob
31d20 3d 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c =wl_shm_pool_create_buffer(pool,
31d40 30 2c 77 2c 68 2c 77 2a 34 2c 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 0,w,h,w*4,WL_SHM_FORMAT_ARGB8888
31d60 29 3b 00 00 00 27 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c );...'..wl_shm_pool_destroy(pool
31d80 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 12 20 20 69 66 28 6f 73 7a 29 20 2a 6f 73 7a 3d );.close(fd);......if(osz).*osz=
31da0 73 7a 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 70 78 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5e sz;......return.px;....}.......^
31dc0 73 74 61 74 69 63 20 76 6f 69 64 20 73 75 72 66 5f 63 6f 6d 6d 69 74 28 73 74 72 75 63 74 20 77 static.void.surf_commit(struct.w
31de0 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 2c 76 6f 69 64 20 2a 70 69 78 65 6c 73 2c 73 74 72 75 63 l_surface.*ws,void.*pixels,struc
31e00 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 2c 69 6e 74 20 77 2c 69 6e 74 20 68 29 7b 00 00 t.wl_buffer.*buf,int.w,int.h){..
31e20 00 27 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 77 73 2c .'..wl_surface_damage_buffer(ws,
31e40 30 2c 30 2c 77 2c 68 29 3b 00 00 00 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 0,0,w,h);......wl_surface_attach
31e60 28 77 73 2c 62 75 66 2c 30 2c 30 29 3b 00 00 00 18 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f (ws,buf,0,0);......wl_surface_co
31e80 6d 6d 69 74 28 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 33 73 74 61 74 69 63 20 69 6e 74 mmit(ws);....}.......3static.int
31ea0 20 62 61 72 5f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 72 65 74 75 72 6e 20 61 2d 3e .bar_y(struct.app.*a){return.a->
31ec0 68 2d 42 41 52 5f 48 3b 7d 00 00 00 34 73 74 61 74 69 63 20 69 6e 74 20 74 65 78 74 5f 68 28 73 h-BAR_H;}...4static.int.text_h(s
31ee0 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 72 65 74 75 72 6e 20 61 2d 3e 68 2d 42 41 52 5f 48 3b truct.app.*a){return.a->h-BAR_H;
31f00 7d 00 00 00 18 73 74 61 74 69 63 20 69 6e 74 20 62 74 6e 5f 78 28 69 6e 74 20 69 29 7b 00 00 00 }....static.int.btn_x(int.i){...
31f20 22 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 5b 5d 3d 7b 22 46 69 6c 65 22 2c 22 49 6e 66 6f "..const.char.*l[]={"File","Info
31f40 22 7d 3b 00 00 00 0c 20 20 69 6e 74 20 78 3d 50 41 44 3b 00 00 00 2e 20 20 66 6f 72 28 69 6e 74 "};......int.x=PAD;......for(int
31f60 20 6a 3d 30 3b 6a 3c 69 3b 6a 2b 2b 29 20 78 2b 3d 73 70 77 28 6c 5b 6a 5d 29 2b 42 54 4e 5f 50 .j=0;j<i;j++).x+=spw(l[j])+BTN_P
31f80 41 44 2a 32 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 78 3b 00 00 00 01 7d 00 00 00 42 73 74 61 AD*2;......return.x;....}...Bsta
31fa0 74 69 63 20 69 6e 74 20 62 74 6e 5f 77 28 69 6e 74 20 69 29 7b 72 65 74 75 72 6e 20 73 70 77 28 tic.int.btn_w(int.i){return.spw(
31fc0 69 3d 3d 30 3f 22 46 69 6c 65 22 3a 22 49 6e 66 6f 22 29 2b 42 54 4e 5f 50 41 44 2a 32 3b 7d 00 i==0?"File":"Info")+BTN_PAD*2;}.
31fe0 00 00 26 73 74 61 74 69 63 20 69 6e 74 20 64 69 68 28 76 6f 69 64 29 7b 72 65 74 75 72 6e 20 63 ..&static.int.dih(void){return.c
32000 65 6c 6c 5f 68 2b 38 3b 7d 00 00 00 22 73 74 61 74 69 63 20 69 6e 74 20 64 72 6f 70 5f 74 6f 74 ell_h+8;}..."static.int.drop_tot
32020 61 6c 5f 68 28 4d 65 6e 75 49 64 20 6d 29 7b 00 00 00 25 20 20 69 6e 74 20 6e 3d 28 6d 3d 3d 4d al_h(MenuId.m){...%..int.n=(m==M
32040 45 4e 55 5f 46 49 4c 45 29 3f 4e 5f 46 49 4c 45 3a 4e 5f 49 4e 46 4f 3b 00 00 00 3a 20 20 63 6f ENU_FILE)?N_FILE:N_INFO;...:..co
32060 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f nst.MenuItem.*it=(m==MENU_FILE)?
32080 66 69 6c 65 5f 69 74 65 6d 73 3a 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 12 20 20 69 6e 74 20 file_items:info_items;......int.
320a0 68 3d 6e 2a 64 69 68 28 29 2b 34 3b 00 00 00 30 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c h=n*dih()+4;...0..for(int.i=0;i<
320c0 6e 3b 69 2b 2b 29 20 69 66 28 69 74 5b 69 5d 2e 73 65 70 5f 61 66 74 65 72 29 20 68 2b 3d 34 3b n;i++).if(it[i].sep_after).h+=4;
320e0 00 00 00 0b 20 20 72 65 74 75 72 6e 20 68 3b 00 00 00 01 7d 00 00 00 1c 73 74 61 74 69 63 20 69 ......return.h;....}....static.i
32100 6e 74 20 64 72 6f 70 5f 77 28 4d 65 6e 75 49 64 20 6d 29 7b 00 00 00 2d 20 20 69 6e 74 20 6d 61 nt.drop_w(MenuId.m){...-..int.ma
32120 78 77 3d 38 30 2c 6e 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 4e 5f 46 49 4c 45 3a 4e 5f xw=80,n=(m==MENU_FILE)?N_FILE:N_
32140 49 4e 46 4f 3b 00 00 00 3a 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 3d 28 6d INFO;...:..const.MenuItem.*it=(m
32160 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 66 69 6c 65 5f 69 74 65 6d 73 3a 69 6e 66 6f 5f 69 74 65 ==MENU_FILE)?file_items:info_ite
32180 6d 73 3b 00 00 00 4a 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 6e 3b 69 2b 2b 29 7b 69 6e ms;...J..for(int.i=0;i<n;i++){in
321a0 74 20 77 3d 73 70 77 28 69 74 5b 69 5d 2e 6c 61 62 65 6c 29 2b 42 54 4e 5f 50 41 44 2a 32 3b 69 t.w=spw(it[i].label)+BTN_PAD*2;i
321c0 66 28 77 3e 6d 61 78 77 29 6d 61 78 77 3d 77 3b 7d 00 00 00 0e 20 20 72 65 74 75 72 6e 20 6d 61 f(w>maxw)maxw=w;}......return.ma
321e0 78 77 3b 00 00 00 01 7d 00 00 00 32 73 74 61 74 69 63 20 69 6e 74 20 69 74 65 6d 5f 61 74 28 73 xw;....}...2static.int.item_at(s
32200 74 72 75 63 74 20 61 70 70 20 2a 61 2c 4d 65 6e 75 49 64 20 6d 2c 69 6e 74 20 6d 79 29 7b 00 00 truct.app.*a,MenuId.m,int.my){..
32220 00 31 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 2c 6e 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 .1..int.by=bar_y(a),n=(m==MENU_F
32240 49 4c 45 29 3f 4e 5f 46 49 4c 45 3a 4e 5f 49 4e 46 4f 3b 00 00 00 3a 20 20 63 6f 6e 73 74 20 4d ILE)?N_FILE:N_INFO;...:..const.M
32260 65 6e 75 49 74 65 6d 20 2a 69 74 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 66 69 6c 65 5f enuItem.*it=(m==MENU_FILE)?file_
32280 69 74 65 6d 73 3a 69 6e 66 6f 5f 69 74 65 6d 73 3b 00 00 00 1e 20 20 69 6e 74 20 69 79 3d 62 79 items:info_items;......int.iy=by
322a0 2d 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 2b 34 3b 00 00 00 17 20 20 66 6f 72 28 69 6e 74 -drop_total_h(m)+4;......for(int
322c0 20 69 3d 30 3b 69 3c 6e 3b 69 2b 2b 29 7b 00 00 00 25 20 20 20 20 69 66 28 6d 79 3e 3d 69 79 26 .i=0;i<n;i++){...%....if(my>=iy&
322e0 26 6d 79 3c 69 79 2b 64 69 68 28 29 29 20 72 65 74 75 72 6e 20 69 3b 00 00 00 0e 20 20 20 20 69 &my<iy+dih()).return.i;........i
32300 79 2b 3d 64 69 68 28 29 3b 00 00 00 1e 20 20 20 20 69 66 28 69 74 5b 69 5d 2e 73 65 70 5f 61 66 y+=dih();........if(it[i].sep_af
32320 74 65 72 29 20 69 79 2b 3d 34 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 2d ter).iy+=4;......}......return.-
32340 31 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 66 72 1;....}.......$static.void.fp_fr
32360 65 65 5f 65 6e 74 72 69 65 73 28 46 50 20 2a 66 70 29 7b 00 00 00 36 20 20 69 66 28 66 70 2d 3e ee_entries(FP.*fp){...6..if(fp->
32380 65 6e 74 72 69 65 73 29 7b 66 72 65 65 28 66 70 2d 3e 65 6e 74 72 69 65 73 29 3b 66 70 2d 3e 65 entries){free(fp->entries);fp->e
323a0 6e 74 72 69 65 73 3d 4e 55 4c 4c 3b 7d 00 00 00 11 20 20 66 70 2d 3e 6e 65 6e 74 72 69 65 73 3d ntries=NULL;}......fp->nentries=
323c0 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 32 73 74 61 74 69 63 20 69 6e 74 20 65 6e 74 72 79 5f 0;....}.......2static.int.entry_
323e0 63 6d 70 28 63 6f 6e 73 74 20 76 6f 69 64 20 2a 61 2c 63 6f 6e 73 74 20 76 6f 69 64 20 2a 62 29 cmp(const.void.*a,const.void.*b)
32400 7b 00 00 00 1d 20 20 63 6f 6e 73 74 20 44 69 72 45 6e 74 72 79 20 2a 64 61 3d 61 2c 2a 64 62 3d {......const.DirEntry.*da=a,*db=
32420 62 3b 00 00 00 34 20 20 69 66 28 64 61 2d 3e 69 73 5f 64 69 72 21 3d 64 62 2d 3e 69 73 5f 64 69 b;...4..if(da->is_dir!=db->is_di
32440 72 29 20 72 65 74 75 72 6e 20 64 61 2d 3e 69 73 5f 64 69 72 3f 2d 31 3a 31 3b 00 00 00 23 20 20 r).return.da->is_dir?-1:1;...#..
32460 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 64 61 2d 3e 6e 61 6d 65 2c 64 62 2d 3e 6e 61 6d 65 29 return.strcmp(da->name,db->name)
32480 3b 00 00 00 01 7d 00 00 00 00 00 00 00 20 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 6c 6f 61 ;....}........static.void.fp_loa
324a0 64 5f 64 69 72 28 46 50 20 2a 66 70 29 7b 00 00 00 16 20 20 66 70 5f 66 72 65 65 5f 65 6e 74 72 d_dir(FP.*fp){......fp_free_entr
324c0 69 65 73 28 66 70 29 3b 00 00 00 30 20 20 66 70 2d 3e 73 65 6c 65 63 74 65 64 3d 2d 31 3b 20 66 ies(fp);...0..fp->selected=-1;.f
324e0 70 2d 3e 73 63 72 6f 6c 6c 3d 30 3b 20 66 70 2d 3e 68 6f 76 65 72 65 64 3d 2d 31 3b 00 00 00 33 p->scroll=0;.fp->hovered=-1;...3
32500 20 20 66 70 2d 3e 65 6e 74 72 69 65 73 3d 6d 61 6c 6c 6f 63 28 73 69 7a 65 6f 66 28 44 69 72 45 ..fp->entries=malloc(sizeof(DirE
32520 6e 74 72 79 29 2a 4d 41 58 5f 45 4e 54 52 49 45 53 29 3b 00 00 00 1a 20 20 69 66 28 21 66 70 2d ntry)*MAX_ENTRIES);......if(!fp-
32540 3e 65 6e 74 72 69 65 73 29 20 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 44 49 52 20 2a 64 3d 6f 70 >entries).return;......DIR.*d=op
32560 65 6e 64 69 72 28 66 70 2d 3e 63 77 64 29 3b 00 00 00 25 20 20 69 66 28 21 64 29 7b 66 70 5f 66 endir(fp->cwd);...%..if(!d){fp_f
32580 72 65 65 5f 65 6e 74 72 69 65 73 28 66 70 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 14 20 20 73 74 ree_entries(fp);return;}......st
325a0 72 75 63 74 20 64 69 72 65 6e 74 20 2a 64 65 3b 00 00 00 33 20 20 77 68 69 6c 65 28 28 64 65 3d ruct.dirent.*de;...3..while((de=
325c0 72 65 61 64 64 69 72 28 64 29 29 26 26 66 70 2d 3e 6e 65 6e 74 72 69 65 73 3c 4d 41 58 5f 45 4e readdir(d))&&fp->nentries<MAX_EN
325e0 54 52 49 45 53 29 7b 00 00 00 2b 20 20 20 20 69 66 28 73 74 72 63 6d 70 28 64 65 2d 3e 64 5f 6e TRIES){...+....if(strcmp(de->d_n
32600 61 6d 65 2c 22 2e 22 29 3d 3d 30 29 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 2b 20 20 20 20 44 69 ame,".")==0).continue;...+....Di
32620 72 45 6e 74 72 79 20 2a 65 3d 26 66 70 2d 3e 65 6e 74 72 69 65 73 5b 66 70 2d 3e 6e 65 6e 74 72 rEntry.*e=&fp->entries[fp->nentr
32640 69 65 73 5d 3b 00 00 00 34 20 20 20 20 73 74 72 6e 63 70 79 28 65 2d 3e 6e 61 6d 65 2c 64 65 2d ies];...4....strncpy(e->name,de-
32660 3e 64 5f 6e 61 6d 65 2c 32 35 35 29 3b 20 65 2d 3e 6e 61 6d 65 5b 32 35 35 5d 3d 30 3b 00 00 00 >d_name,255);.e->name[255]=0;...
32680 18 20 20 20 20 63 68 61 72 20 66 75 6c 6c 5b 4d 41 58 5f 50 41 54 48 5d 3b 00 00 00 3a 20 20 20 .....char.full[MAX_PATH];...:...
326a0 20 73 6e 70 72 69 6e 74 66 28 66 75 6c 6c 2c 73 69 7a 65 6f 66 20 66 75 6c 6c 2c 22 25 73 2f 25 .snprintf(full,sizeof.full,"%s/%
326c0 73 22 2c 66 70 2d 3e 63 77 64 2c 64 65 2d 3e 64 5f 6e 61 6d 65 29 3b 00 00 00 13 20 20 20 20 73 s",fp->cwd,de->d_name);........s
326e0 74 72 75 63 74 20 73 74 61 74 20 73 74 3b 00 00 00 37 20 20 20 20 65 2d 3e 69 73 5f 64 69 72 3d truct.stat.st;...7....e->is_dir=
32700 28 73 74 61 74 28 66 75 6c 6c 2c 26 73 74 29 3d 3d 30 26 26 53 5f 49 53 44 49 52 28 73 74 2e 73 (stat(full,&st)==0&&S_ISDIR(st.s
32720 74 5f 6d 6f 64 65 29 29 3b 00 00 00 13 20 20 20 20 66 70 2d 3e 6e 65 6e 74 72 69 65 73 2b 2b 3b t_mode));........fp->nentries++;
32740 00 00 00 03 20 20 7d 00 00 00 0e 20 20 63 6c 6f 73 65 64 69 72 28 64 29 3b 00 00 00 3d 20 20 71 ......}......closedir(d);...=..q
32760 73 6f 72 74 28 66 70 2d 3e 65 6e 74 72 69 65 73 2c 66 70 2d 3e 6e 65 6e 74 72 69 65 73 2c 73 69 sort(fp->entries,fp->nentries,si
32780 7a 65 6f 66 28 44 69 72 45 6e 74 72 79 29 2c 65 6e 74 72 79 5f 63 6d 70 29 3b 00 00 00 01 7d 00 zeof(DirEntry),entry_cmp);....}.
327a0 00 00 00 00 00 00 2f 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 73 65 74 5f 69 6e 70 75 74 28 ....../static.void.fp_set_input(
327c0 46 50 20 2a 66 70 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29 7b 00 00 00 2e 20 20 73 6e 70 72 FP.*fp,const.char.*s){......snpr
327e0 69 6e 74 66 28 66 70 2d 3e 69 6e 70 75 74 2c 73 69 7a 65 6f 66 20 66 70 2d 3e 69 6e 70 75 74 2c intf(fp->input,sizeof.fp->input,
32800 22 25 73 22 2c 73 29 3b 00 00 00 22 20 20 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 3d 73 74 72 6c "%s",s);..."..fp->input_len=strl
32820 65 6e 28 66 70 2d 3e 69 6e 70 75 74 29 3b 00 00 00 1e 20 20 66 70 2d 3e 69 6e 70 75 74 5f 63 75 en(fp->input);......fp->input_cu
32840 72 3d 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 r=fp->input_len;....}.......$sta
32860 74 69 63 20 76 6f 69 64 20 66 70 5f 72 6f 77 5f 68 28 76 6f 69 64 29 7b 28 76 6f 69 64 29 30 3b tic.void.fp_row_h(void){(void)0;
32880 7d 00 00 00 28 73 74 61 74 69 63 20 69 6e 74 20 66 70 5f 72 68 28 76 6f 69 64 29 7b 72 65 74 75 }...(static.int.fp_rh(void){retu
328a0 72 6e 20 63 65 6c 6c 5f 68 2b 36 3b 7d 00 00 00 27 73 74 61 74 69 63 20 69 6e 74 20 66 70 5f 74 rn.cell_h+6;}...'static.int.fp_t
328c0 69 74 6c 65 5f 68 28 76 6f 69 64 29 7b 72 65 74 75 72 6e 20 32 38 3b 7d 00 00 00 2c 73 74 61 74 itle_h(void){return.28;}...,stat
328e0 69 63 20 69 6e 74 20 66 70 5f 69 6e 70 5f 68 28 76 6f 69 64 29 7b 72 65 74 75 72 6e 20 63 65 6c ic.int.fp_inp_h(void){return.cel
32900 6c 5f 68 2b 31 32 3b 7d 00 00 00 2c 73 74 61 74 69 63 20 69 6e 74 20 66 70 5f 62 74 6e 5f 68 28 l_h+12;}...,static.int.fp_btn_h(
32920 76 6f 69 64 29 7b 72 65 74 75 72 6e 20 63 65 6c 6c 5f 68 2b 32 30 3b 7d 00 00 00 3f 73 74 61 74 void){return.cell_h+20;}...?stat
32940 69 63 20 69 6e 74 20 66 70 5f 6c 69 73 74 5f 74 6f 70 28 76 6f 69 64 29 7b 72 65 74 75 72 6e 20 ic.int.fp_list_top(void){return.
32960 66 70 5f 74 69 74 6c 65 5f 68 28 29 2b 66 70 5f 69 6e 70 5f 68 28 29 2b 38 3b 7d 00 00 00 38 73 fp_title_h()+fp_inp_h()+8;}...8s
32980 74 61 74 69 63 20 69 6e 74 20 66 70 5f 6c 69 73 74 5f 62 6f 74 28 46 50 20 2a 66 70 29 7b 72 65 tatic.int.fp_list_bot(FP.*fp){re
329a0 74 75 72 6e 20 66 70 2d 3e 68 2d 66 70 5f 62 74 6e 5f 68 28 29 3b 7d 00 00 00 51 73 74 61 74 69 turn.fp->h-fp_btn_h();}...Qstati
329c0 63 20 69 6e 74 20 66 70 5f 6c 69 73 74 5f 76 69 73 28 46 50 20 2a 66 70 29 7b 72 65 74 75 72 6e c.int.fp_list_vis(FP.*fp){return
329e0 20 28 66 70 5f 6c 69 73 74 5f 62 6f 74 28 66 70 29 2d 66 70 5f 6c 69 73 74 5f 74 6f 70 28 29 29 .(fp_list_bot(fp)-fp_list_top())
32a00 2f 28 66 70 5f 72 68 28 29 29 3b 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 /(fp_rh());}.......$static.void.
32a20 66 70 5f 63 6c 61 6d 70 5f 73 63 72 6f 6c 6c 28 46 50 20 2a 66 70 29 7b 00 00 00 1a 20 20 69 6e fp_clamp_scroll(FP.*fp){......in
32a40 74 20 76 69 73 3d 66 70 5f 6c 69 73 74 5f 76 69 73 28 66 70 29 3b 00 00 00 20 20 20 69 66 28 66 t.vis=fp_list_vis(fp);......if(f
32a60 70 2d 3e 73 63 72 6f 6c 6c 3c 30 29 20 66 70 2d 3e 73 63 72 6f 6c 6c 3d 30 3b 00 00 00 50 20 20 p->scroll<0).fp->scroll=0;...P..
32a80 69 66 28 66 70 2d 3e 6e 65 6e 74 72 69 65 73 3e 76 69 73 26 26 66 70 2d 3e 73 63 72 6f 6c 6c 3e if(fp->nentries>vis&&fp->scroll>
32aa0 66 70 2d 3e 6e 65 6e 74 72 69 65 73 2d 76 69 73 29 20 66 70 2d 3e 73 63 72 6f 6c 6c 3d 66 70 2d fp->nentries-vis).fp->scroll=fp-
32ac0 3e 6e 65 6e 74 72 69 65 73 2d 76 69 73 3b 00 00 00 25 20 20 69 66 28 66 70 2d 3e 6e 65 6e 74 72 >nentries-vis;...%..if(fp->nentr
32ae0 69 65 73 3c 3d 76 69 73 29 20 66 70 2d 3e 73 63 72 6f 6c 6c 3d 30 3b 00 00 00 01 7d 00 00 00 00 ies<=vis).fp->scroll=0;....}....
32b00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 5f 66 70 28 73 74 72 75 63 74 ...%static.void.redraw_fp(struct
32b20 20 61 70 70 20 2a 61 29 3b 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 64 65 73 74 .app.*a);...&static.void.fp_dest
32b40 72 6f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 22 73 74 61 74 69 63 20 76 6f roy(struct.app.*a);..."static.vo
32b60 69 64 20 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 3b 00 00 00 00 00 00 00 id.redraw(struct.app.*a);.......
32b80 2f 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 6e 61 76 69 67 61 74 65 28 73 74 72 75 63 74 20 /static.void.fp_navigate(struct.
32ba0 61 70 70 20 2a 61 2c 69 6e 74 20 69 64 78 29 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d app.*a,int.idx){......FP.*fp=&a-
32bc0 3e 66 70 3b 00 00 00 40 20 20 69 66 28 69 64 78 3c 30 7c 7c 69 64 78 3e 3d 66 70 2d 3e 6e 65 6e >fp;...@..if(idx<0||idx>=fp->nen
32be0 74 72 69 65 73 7c 7c 21 66 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 78 5d 2e 69 73 5f 64 69 72 29 tries||!fp->entries[idx].is_dir)
32c00 20 72 65 74 75 72 6e 3b 00 00 00 2c 20 20 69 66 28 73 74 72 63 6d 70 28 66 70 2d 3e 65 6e 74 72 .return;...,..if(strcmp(fp->entr
32c20 69 65 73 5b 69 64 78 5d 2e 6e 61 6d 65 2c 22 2e 2e 22 29 3d 3d 30 29 7b 00 00 00 22 20 20 20 20 ies[idx].name,"..")==0){..."....
32c40 63 68 61 72 20 2a 73 6c 3d 73 74 72 72 63 68 72 28 66 70 2d 3e 63 77 64 2c 27 2f 27 29 3b 00 00 char.*sl=strrchr(fp->cwd,'/');..
32c60 00 20 20 20 20 20 69 66 28 73 6c 26 26 73 6c 3e 66 70 2d 3e 63 77 64 29 20 2a 73 6c 3d 27 5c 30 ......if(sl&&sl>fp->cwd).*sl='\0
32c80 27 3b 00 00 00 29 20 20 20 20 65 6c 73 65 7b 66 70 2d 3e 63 77 64 5b 30 5d 3d 27 2f 27 3b 66 70 ';...)....else{fp->cwd[0]='/';fp
32ca0 2d 3e 63 77 64 5b 31 5d 3d 27 5c 30 27 3b 7d 00 00 00 0a 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 ->cwd[1]='\0';}......}.else.{...
32cc0 1e 20 20 20 20 73 69 7a 65 5f 74 20 63 6c 3d 73 74 72 6c 65 6e 28 66 70 2d 3e 63 77 64 29 3b 00 .....size_t.cl=strlen(fp->cwd);.
32ce0 00 00 36 20 20 20 20 69 66 28 63 6c 3e 31 29 20 73 74 72 6e 63 61 74 28 66 70 2d 3e 63 77 64 2c ..6....if(cl>1).strncat(fp->cwd,
32d00 22 2f 22 2c 73 69 7a 65 6f 66 20 66 70 2d 3e 63 77 64 2d 63 6c 2d 31 29 3b 00 00 00 17 20 20 20 "/",sizeof.fp->cwd-cl-1);.......
32d20 20 63 6c 3d 73 74 72 6c 65 6e 28 66 70 2d 3e 63 77 64 29 3b 00 00 00 3f 20 20 20 20 73 74 72 6e .cl=strlen(fp->cwd);...?....strn
32d40 63 61 74 28 66 70 2d 3e 63 77 64 2c 66 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 78 5d 2e 6e 61 6d cat(fp->cwd,fp->entries[idx].nam
32d60 65 2c 73 69 7a 65 6f 66 20 66 70 2d 3e 63 77 64 2d 63 6c 2d 31 29 3b 00 00 00 03 20 20 7d 00 00 e,sizeof.fp->cwd-cl-1);......}..
32d80 00 12 20 20 66 70 5f 6c 6f 61 64 5f 64 69 72 28 66 70 29 3b 00 00 00 1b 20 20 66 70 5f 73 65 74 ....fp_load_dir(fp);......fp_set
32da0 5f 69 6e 70 75 74 28 66 70 2c 66 70 2d 3e 63 77 64 29 3b 00 00 00 0f 20 20 72 65 64 72 61 77 5f _input(fp,fp->cwd);......redraw_
32dc0 66 70 28 61 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2d 73 74 61 74 69 63 20 76 6f 69 64 20 66 fp(a);....}.......-static.void.f
32de0 70 5f 73 65 6c 65 63 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 69 64 78 29 7b p_select(struct.app.*a,int.idx){
32e00 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 26 20 20 69 66 28 69 64 78 ......FP.*fp=&a->fp;...&..if(idx
32e20 3c 30 7c 7c 69 64 78 3e 3d 66 70 2d 3e 6e 65 6e 74 72 69 65 73 29 20 72 65 74 75 72 6e 3b 00 00 <0||idx>=fp->nentries).return;..
32e40 00 13 20 20 66 70 2d 3e 73 65 6c 65 63 74 65 64 3d 69 64 78 3b 00 00 00 1f 20 20 69 66 28 21 66 ....fp->selected=idx;......if(!f
32e60 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 78 5d 2e 69 73 5f 64 69 72 29 7b 00 00 00 18 20 20 20 20 p->entries[idx].is_dir){........
32e80 63 68 61 72 20 66 75 6c 6c 5b 4d 41 58 5f 50 41 54 48 5d 3b 00 00 00 27 20 20 20 20 69 66 28 66 char.full[MAX_PATH];...'....if(f
32ea0 70 2d 3e 63 77 64 5b 73 74 72 6c 65 6e 28 66 70 2d 3e 63 77 64 29 2d 31 5d 3d 3d 27 2f 27 29 00 p->cwd[strlen(fp->cwd)-1]=='/').
32ec0 00 00 46 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 75 6c 6c 2c 73 69 7a 65 6f 66 20 66 75 ..F......snprintf(full,sizeof.fu
32ee0 6c 6c 2c 22 25 73 25 73 22 2c 66 70 2d 3e 63 77 64 2c 66 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 ll,"%s%s",fp->cwd,fp->entries[id
32f00 78 5d 2e 6e 61 6d 65 29 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 47 20 20 20 20 20 20 73 x].name);........else...G......s
32f20 6e 70 72 69 6e 74 66 28 66 75 6c 6c 2c 73 69 7a 65 6f 66 20 66 75 6c 6c 2c 22 25 73 2f 25 73 22 nprintf(full,sizeof.full,"%s/%s"
32f40 2c 66 70 2d 3e 63 77 64 2c 66 70 2d 3e 65 6e 74 72 69 65 73 5b 69 64 78 5d 2e 6e 61 6d 65 29 3b ,fp->cwd,fp->entries[idx].name);
32f60 00 00 00 1a 20 20 20 20 66 70 5f 73 65 74 5f 69 6e 70 75 74 28 66 70 2c 66 75 6c 6c 29 3b 00 00 ........fp_set_input(fp,full);..
32f80 00 03 20 20 7d 00 00 00 0f 20 20 72 65 64 72 61 77 5f 66 70 28 61 29 3b 00 00 00 01 7d 00 00 00 ....}......redraw_fp(a);....}...
32fa0 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 63 6f 6d 6d 69 74 28 73 74 72 75 63 ....%static.void.fp_commit(struc
32fc0 74 20 61 70 70 20 2a 61 29 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 t.app.*a){......FP.*fp=&a->fp;..
32fe0 00 1b 20 20 69 66 28 21 66 70 2d 3e 69 6e 70 75 74 5b 30 5d 29 20 72 65 74 75 72 6e 3b 00 00 00 ....if(!fp->input[0]).return;...
33000 1b 20 20 62 6f 6f 6c 20 71 75 69 74 3d 66 70 2d 3e 71 75 69 74 5f 61 66 74 65 72 3b 00 00 00 18 ...bool.quit=fp->quit_after;....
33020 20 20 69 66 28 66 70 2d 3e 6d 6f 64 65 3d 3d 46 50 5f 4f 50 45 4e 29 7b 00 00 00 24 20 20 20 20 ..if(fp->mode==FP_OPEN){...$....
33040 69 6e 74 20 66 64 3d 6f 70 65 6e 28 66 70 2d 3e 69 6e 70 75 74 2c 4f 5f 52 44 4f 4e 4c 59 29 3b int.fd=open(fp->input,O_RDONLY);
33060 00 00 00 24 20 20 20 20 69 66 28 66 64 3c 30 29 7b 70 65 72 72 6f 72 28 22 6f 70 65 6e 22 29 3b ...$....if(fd<0){perror("open");
33080 72 65 74 75 72 6e 3b 7d 00 00 00 32 20 20 20 20 73 73 69 7a 65 5f 74 20 6e 3d 72 65 61 64 28 66 return;}...2....ssize_t.n=read(f
330a0 64 2c 74 65 78 74 2c 4d 41 58 5f 54 45 58 54 2d 31 29 3b 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 d,text,MAX_TEXT-1);.close(fd);..
330c0 00 23 20 20 20 20 69 66 28 6e 3c 30 29 7b 70 65 72 72 6f 72 28 22 72 65 61 64 22 29 3b 72 65 74 .#....if(n<0){perror("read");ret
330e0 75 72 6e 3b 7d 00 00 00 21 20 20 20 20 74 6c 65 6e 3d 28 69 6e 74 29 6e 3b 20 74 65 78 74 5b 74 urn;}...!....tlen=(int)n;.text[t
33100 6c 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 1f 20 20 20 20 63 75 72 73 6f 72 3d 74 6c 65 6e 3b 20 73 len]='\0';........cursor=tlen;.s
33120 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 36 20 20 20 20 73 6e 70 72 69 6e 74 66 28 66 69 el_anchor=-1;...6....snprintf(fi
33140 6c 65 70 61 74 68 2c 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 22 25 73 22 2c 66 70 2d 3e lepath,sizeof.filepath,"%s",fp->
33160 69 6e 70 75 74 29 3b 00 00 00 10 20 20 20 20 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 0a 20 input);........dirty=false;.....
33180 20 7d 20 65 6c 73 65 20 7b 00 00 00 39 20 20 20 20 69 6e 74 20 66 64 3d 6f 70 65 6e 28 66 70 2d .}.else.{...9....int.fd=open(fp-
331a0 3e 69 6e 70 75 74 2c 4f 5f 57 52 4f 4e 4c 59 7c 4f 5f 43 52 45 41 54 7c 4f 5f 54 52 55 4e 43 2c >input,O_WRONLY|O_CREAT|O_TRUNC,
331c0 30 36 34 34 29 3b 00 00 00 24 20 20 20 20 69 66 28 66 64 3c 30 29 7b 70 65 72 72 6f 72 28 22 73 0644);...$....if(fd<0){perror("s
331e0 61 76 65 22 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 25 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 ave");return;}...%....const.char
33200 20 2a 70 3d 74 65 78 74 3b 20 69 6e 74 20 72 65 6d 3d 74 6c 65 6e 3b 00 00 00 46 20 20 20 20 77 .*p=text;.int.rem=tlen;...F....w
33220 68 69 6c 65 28 72 65 6d 3e 30 29 7b 73 73 69 7a 65 5f 74 20 6e 3d 77 72 69 74 65 28 66 64 2c 70 hile(rem>0){ssize_t.n=write(fd,p
33240 2c 72 65 6d 29 3b 69 66 28 6e 3c 3d 30 29 62 72 65 61 6b 3b 70 2b 3d 6e 3b 72 65 6d 2d 3d 6e 3b ,rem);if(n<=0)break;p+=n;rem-=n;
33260 7d 00 00 00 0e 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 36 20 20 20 20 73 6e 70 72 69 }........close(fd);...6....snpri
33280 6e 74 66 28 66 69 6c 65 70 61 74 68 2c 73 69 7a 65 6f 66 20 66 69 6c 65 70 61 74 68 2c 22 25 73 ntf(filepath,sizeof.filepath,"%s
332a0 22 2c 66 70 2d 3e 69 6e 70 75 74 29 3b 00 00 00 10 20 20 20 20 64 69 72 74 79 3d 66 61 6c 73 65 ",fp->input);........dirty=false
332c0 3b 00 00 00 03 20 20 7d 00 00 00 16 20 20 66 70 5f 66 72 65 65 5f 65 6e 74 72 69 65 73 28 66 70 ;......}......fp_free_entries(fp
332e0 29 3b 00 00 00 10 20 20 66 70 5f 64 65 73 74 72 6f 79 28 61 29 3b 00 00 00 0c 20 20 72 65 64 72 );......fp_destroy(a);......redr
33300 61 77 28 61 29 3b 00 00 00 13 20 20 69 66 28 71 75 69 74 29 20 65 78 69 74 28 30 29 3b 00 00 00 aw(a);......if(quit).exit(0);...
33320 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 64 72 61 77 5f 62 75 .}.......Jstatic.void.fp_draw_bu
33340 74 74 6f 6e 28 76 6f 69 64 20 2a 70 78 2c 69 6e 74 20 70 77 2c 69 6e 74 20 70 68 2c 69 6e 74 20 tton(void.*px,int.pw,int.ph,int.
33360 78 2c 69 6e 74 20 79 2c 69 6e 74 20 77 2c 69 6e 74 20 68 2c 00 00 00 52 20 20 20 20 20 20 20 20 x,int.y,int.w,int.h,...R........
33380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c ...................const.char.*l
333a0 62 6c 2c 75 69 6e 74 33 32 5f 74 20 62 67 2c 75 69 6e 74 33 32 5f 74 20 66 67 2c 62 6f 6f 6c 20 bl,uint32_t.bg,uint32_t.fg,bool.
333c0 62 6f 72 64 65 72 65 64 29 7b 00 00 00 1d 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 bordered){......frect(px,pw,ph,x
333e0 2c 79 2c 77 2c 68 2c 62 67 29 3b 00 00 00 0f 20 20 69 66 28 62 6f 72 64 65 72 65 64 29 7b 00 00 ,y,w,h,bg);......if(bordered){..
33400 00 26 20 20 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 77 2c 31 2c 53 45 50 .&....frect(px,pw,ph,x,y,w,1,SEP
33420 5f 43 4f 4c 4f 52 29 3b 00 00 00 2a 20 20 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 _COLOR);...*....frect(px,pw,ph,x
33440 2c 79 2b 68 2d 31 2c 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 26 20 20 20 20 66 72 ,y+h-1,w,1,SEP_COLOR);...&....fr
33460 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 31 2c 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b ect(px,pw,ph,x,y,1,h,SEP_COLOR);
33480 00 00 00 2a 20 20 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 2b 77 2d 31 2c 79 2c 31 ...*....frect(px,pw,ph,x+w-1,y,1
334a0 2c 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 03 20 20 7d 00 00 00 2d 20 20 69 6e 74 20 74 ,h,SEP_COLOR);......}...-..int.t
334c0 78 3d 78 2b 28 77 2d 73 70 77 28 6c 62 6c 29 29 2f 32 2c 20 74 79 3d 79 2b 28 68 2d 63 65 6c 6c x=x+(w-spw(lbl))/2,.ty=y+(h-cell
334e0 5f 68 29 2f 32 3b 00 00 00 1e 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 74 78 2c 74 79 2c _h)/2;......dstr(px,pw,ph,tx,ty,
33500 6c 62 6c 2c 66 67 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 lbl,fg);....}.......%static.void
33520 20 72 65 64 72 61 77 5f 66 70 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 10 20 20 .redraw_fp(struct.app.*a){......
33540 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 24 20 20 69 66 28 21 66 70 2d 3e 6f 70 65 6e FP.*fp=&a->fp;...$..if(!fp->open
33560 7c 7c 21 66 70 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 2d 20 20 76 6f 69 64 ||!fp->pixels).return;...-..void
33580 20 2a 70 78 3d 66 70 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 66 70 2d 3e 77 2c 70 68 .*px=fp->pixels;.int.pw=fp->w,ph
335a0 3d 66 70 2d 3e 68 3b 00 00 00 37 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 70 77 2a 70 68 =fp->h;...7..for(int.i=0;i<pw*ph
335c0 3b 69 2b 2b 29 20 28 28 75 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f ;i++).((uint32_t*)px)[i]=BG_COLO
335e0 52 3b 00 00 00 00 00 00 00 18 20 20 69 6e 74 20 74 69 74 68 3d 66 70 5f 74 69 74 6c 65 5f 68 28 R;..........int.tith=fp_title_h(
33600 29 3b 00 00 00 16 20 20 69 6e 74 20 69 6e 70 68 3d 66 70 5f 69 6e 70 5f 68 28 29 3b 00 00 00 16 );......int.inph=fp_inp_h();....
33620 20 20 69 6e 74 20 62 74 6e 68 3d 66 70 5f 62 74 6e 5f 68 28 29 3b 00 00 00 11 20 20 69 6e 74 20 ..int.btnh=fp_btn_h();......int.
33640 72 68 3d 66 70 5f 72 68 28 29 3b 00 00 00 18 20 20 69 6e 74 20 6c 74 70 3d 66 70 5f 6c 69 73 74 rh=fp_rh();......int.ltp=fp_list
33660 5f 74 6f 70 28 29 3b 00 00 00 1a 20 20 69 6e 74 20 6c 62 74 3d 66 70 5f 6c 69 73 74 5f 62 6f 74 _top();......int.lbt=fp_list_bot
33680 28 66 70 29 3b 00 00 00 00 00 00 00 25 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c (fp);.......%..frect(px,pw,ph,0,
336a0 30 2c 70 77 2c 74 69 74 68 2c 42 41 52 5f 42 47 29 3b 00 00 00 2a 20 20 66 72 65 63 74 28 70 78 0,pw,tith,BAR_BG);...*..frect(px
336c0 2c 70 77 2c 70 68 2c 30 2c 74 69 74 68 2d 31 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b ,pw,ph,0,tith-1,pw,1,SEP_COLOR);
336e0 00 00 00 40 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 69 74 6c 65 3d 28 66 70 2d 3e 6d 6f 64 ...@..const.char.*title=(fp->mod
33700 65 3d 3d 46 50 5f 4f 50 45 4e 29 3f 22 4f 70 65 6e 20 46 69 6c 65 22 3a 22 53 61 76 65 20 46 69 e==FP_OPEN)?"Open.File":"Save.Fi
33720 6c 65 22 3b 00 00 00 32 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2c 28 74 69 74 le";...2..dstr(px,pw,ph,PAD,(tit
33740 68 2d 63 65 6c 6c 5f 68 29 2f 32 2c 74 69 74 6c 65 2c 42 41 52 5f 46 47 29 3b 00 00 00 00 00 00 h-cell_h)/2,title,BAR_FG);......
33760 00 11 20 20 69 6e 74 20 69 6e 79 3d 74 69 74 68 2b 34 3b 00 00 00 30 20 20 66 72 65 63 74 28 70 ....int.iny=tith+4;...0..frect(p
33780 78 2c 70 77 2c 70 68 2c 50 41 44 2c 69 6e 79 2c 70 77 2d 50 41 44 2a 32 2c 69 6e 70 68 2c 44 52 x,pw,ph,PAD,iny,pw-PAD*2,inph,DR
337a0 4f 50 5f 42 47 29 3b 00 00 00 2f 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2c OP_BG);.../..frect(px,pw,ph,PAD,
337c0 69 6e 79 2c 70 77 2d 50 41 44 2a 32 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 36 20 20 iny,pw-PAD*2,1,SEP_COLOR);...6..
337e0 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2c 69 6e 79 2b 69 6e 70 68 2d 31 2c 70 77 frect(px,pw,ph,PAD,iny+inph-1,pw
33800 2d 50 41 44 2a 32 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2b 20 20 66 72 65 63 74 28 -PAD*2,1,SEP_COLOR);...+..frect(
33820 70 78 2c 70 77 2c 70 68 2c 50 41 44 2c 69 6e 79 2c 31 2c 69 6e 70 68 2c 53 45 50 5f 43 4f 4c 4f px,pw,ph,PAD,iny,1,inph,SEP_COLO
33840 52 29 3b 00 00 00 30 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 70 77 2d 50 41 44 2d 31 R);...0..frect(px,pw,ph,pw-PAD-1
33860 2c 69 6e 79 2c 31 2c 69 6e 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 23 20 20 69 6e 74 ,iny,1,inph,SEP_COLOR);...#..int
33880 20 6d 61 78 5f 76 69 73 3d 28 70 77 2d 50 41 44 2a 32 2d 31 32 29 2f 63 65 6c 6c 5f 77 3b 00 00 .max_vis=(pw-PAD*2-12)/cell_w;..
338a0 00 1a 20 20 69 66 28 6d 61 78 5f 76 69 73 3c 31 29 20 6d 61 78 5f 76 69 73 3d 31 3b 00 00 00 0b ....if(max_vis<1).max_vis=1;....
338c0 20 20 69 6e 74 20 64 73 3d 30 3b 00 00 00 35 20 20 69 66 28 66 70 2d 3e 69 6e 70 75 74 5f 63 75 ..int.ds=0;...5..if(fp->input_cu
338e0 72 3e 6d 61 78 5f 76 69 73 29 20 64 73 3d 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 6d 61 78 5f r>max_vis).ds=fp->input_cur-max_
33900 76 69 73 3b 00 00 00 1e 20 20 69 6e 74 20 74 79 32 3d 69 6e 79 2b 28 69 6e 70 68 2d 63 65 6c 6c vis;......int.ty2=iny+(inph-cell
33920 5f 68 29 2f 32 3b 00 00 00 3a 20 20 64 73 74 72 6e 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2b 36 _h)/2;...:..dstrn(px,pw,ph,PAD+6
33940 2c 74 79 32 2c 66 70 2d 3e 69 6e 70 75 74 2b 64 73 2c 6d 61 78 5f 76 69 73 2c 46 47 5f 43 4f 4c ,ty2,fp->input+ds,max_vis,FG_COL
33960 4f 52 29 3b 00 00 00 49 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2b 36 2b 28 OR);...I..frect(px,pw,ph,PAD+6+(
33980 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 64 73 29 2a 63 65 6c 6c 5f 77 2c 74 79 32 2c 32 2c 63 fp->input_cur-ds)*cell_w,ty2,2,c
339a0 65 6c 6c 5f 68 2c 43 55 52 5f 43 4f 4c 4f 52 29 3b 00 00 00 00 00 00 00 29 20 20 66 72 65 63 74 ell_h,CUR_COLOR);.......)..frect
339c0 28 70 78 2c 70 77 2c 70 68 2c 30 2c 6c 74 70 2d 31 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 (px,pw,ph,0,ltp-1,pw,1,SEP_COLOR
339e0 29 3b 00 00 00 00 00 00 00 16 20 20 66 70 5f 63 6c 61 6d 70 5f 73 63 72 6f 6c 6c 28 66 70 29 3b );..........fp_clamp_scroll(fp);
33a00 00 00 00 1a 20 20 69 6e 74 20 76 69 73 3d 66 70 5f 6c 69 73 74 5f 76 69 73 28 66 70 29 3b 00 00 ......int.vis=fp_list_vis(fp);..
33a20 00 34 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 76 69 73 26 26 66 70 2d 3e 73 63 72 6f 6c .4..for(int.i=0;i<vis&&fp->scrol
33a40 6c 2b 69 3c 66 70 2d 3e 6e 65 6e 74 72 69 65 73 3b 69 2b 2b 29 7b 00 00 00 18 20 20 20 20 69 6e l+i<fp->nentries;i++){........in
33a60 74 20 65 69 3d 66 70 2d 3e 73 63 72 6f 6c 6c 2b 69 3b 00 00 00 21 20 20 20 20 44 69 72 45 6e 74 t.ei=fp->scroll+i;...!....DirEnt
33a80 72 79 20 2a 65 3d 26 66 70 2d 3e 65 6e 74 72 69 65 73 5b 65 69 5d 3b 00 00 00 14 20 20 20 20 69 ry.*e=&fp->entries[ei];........i
33aa0 6e 74 20 72 79 3d 6c 74 70 2b 69 2a 72 68 3b 00 00 00 18 20 20 20 20 69 66 28 72 79 2b 72 68 3e nt.ry=ltp+i*rh;........if(ry+rh>
33ac0 6c 62 74 29 20 62 72 65 61 6b 3b 00 00 00 50 20 20 20 20 75 69 6e 74 33 32 5f 74 20 62 67 3d 28 lbt).break;...P....uint32_t.bg=(
33ae0 65 69 3d 3d 66 70 2d 3e 73 65 6c 65 63 74 65 64 29 3f 53 45 4c 5f 43 4f 4c 4f 52 3a 28 65 69 3d ei==fp->selected)?SEL_COLOR:(ei=
33b00 3d 66 70 2d 3e 68 6f 76 65 72 65 64 29 3f 42 54 4e 5f 48 4f 56 3a 42 47 5f 43 4f 4c 4f 52 3b 00 =fp->hovered)?BTN_HOV:BG_COLOR;.
33b20 00 00 34 20 20 20 20 75 69 6e 74 33 32 5f 74 20 66 67 32 3d 28 65 69 3d 3d 66 70 2d 3e 73 65 6c ..4....uint32_t.fg2=(ei==fp->sel
33b40 65 63 74 65 64 29 3f 53 45 4c 5f 46 47 3a 46 47 5f 43 4f 4c 4f 52 3b 00 00 00 22 20 20 20 20 66 ected)?SEL_FG:FG_COLOR;..."....f
33b60 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 72 79 2c 70 77 2c 72 68 2c 62 67 29 3b 00 00 00 rect(px,pw,ph,0,ry,pw,rh,bg);...
33b80 30 20 20 20 20 69 66 28 69 3e 30 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 72 79 0....if(i>0).frect(px,pw,ph,0,ry
33ba0 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 13 20 20 20 20 63 68 61 72 20 64 69 ,pw,1,SEP_COLOR);........char.di
33bc0 73 70 5b 32 36 34 5d 3b 00 00 00 46 20 20 20 20 73 6e 70 72 69 6e 74 66 28 64 69 73 70 2c 73 69 sp[264];...F....snprintf(disp,si
33be0 7a 65 6f 66 20 64 69 73 70 2c 22 25 73 25 73 22 2c 65 2d 3e 69 73 5f 64 69 72 3f 22 5b 64 5d 20 zeof.disp,"%s%s",e->is_dir?"[d].
33c00 22 3a 22 20 20 20 20 22 2c 65 2d 3e 6e 61 6d 65 29 3b 00 00 00 33 20 20 20 20 64 73 74 72 28 70 ":"....",e->name);...3....dstr(p
33c20 78 2c 70 77 2c 70 68 2c 50 41 44 2b 34 2c 72 79 2b 28 72 68 2d 63 65 6c 6c 5f 68 29 2f 32 2c 64 x,pw,ph,PAD+4,ry+(rh-cell_h)/2,d
33c40 69 73 70 2c 66 67 32 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 27 20 20 66 72 65 63 74 28 isp,fg2);......}.......'..frect(
33c60 70 78 2c 70 77 2c 70 68 2c 30 2c 6c 62 74 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 px,pw,ph,0,lbt,pw,1,SEP_COLOR);.
33c80 00 00 2d 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 6c 62 74 2b 31 2c 70 77 2c 70 ..-..frect(px,pw,ph,0,lbt+1,pw,p
33ca0 68 2d 6c 62 74 2d 31 2c 42 41 52 5f 42 47 29 3b 00 00 00 00 00 00 00 22 20 20 69 6e 74 20 62 62 h-lbt-1,BAR_BG);......."..int.bb
33cc0 79 3d 6c 62 74 2b 31 2b 28 62 74 6e 68 2d 63 65 6c 6c 5f 68 2d 38 29 2f 32 3b 00 00 00 36 20 20 y=lbt+1+(btnh-cell_h-8)/2;...6..
33ce0 63 6f 6e 73 74 20 63 68 61 72 20 2a 6f 6b 6c 62 6c 3d 28 66 70 2d 3e 6d 6f 64 65 3d 3d 46 50 5f const.char.*oklbl=(fp->mode==FP_
33d00 4f 50 45 4e 29 3f 22 4f 70 65 6e 22 3a 22 53 61 76 65 22 3b 00 00 00 1f 20 20 69 6e 74 20 6f 6b OPEN)?"Open":"Save";......int.ok
33d20 77 3d 73 70 77 28 6f 6b 6c 62 6c 29 2b 42 54 4e 5f 50 41 44 2a 32 3b 00 00 00 15 20 20 69 6e 74 w=spw(oklbl)+BTN_PAD*2;......int
33d40 20 6f 6b 78 3d 70 77 2d 50 41 44 2d 6f 6b 77 3b 00 00 00 51 20 20 66 70 5f 64 72 61 77 5f 62 75 .okx=pw-PAD-okw;...Q..fp_draw_bu
33d60 74 74 6f 6e 28 70 78 2c 70 77 2c 70 68 2c 6f 6b 78 2c 62 62 79 2c 6f 6b 77 2c 63 65 6c 6c 5f 68 tton(px,pw,ph,okx,bby,okw,cell_h
33d80 2b 38 2c 6f 6b 6c 62 6c 2c 44 52 4f 50 5f 48 4f 56 2c 44 52 4f 50 5f 48 4f 56 5f 46 47 2c 66 61 +8,oklbl,DROP_HOV,DROP_HOV_FG,fa
33da0 6c 73 65 29 3b 00 00 00 22 20 20 69 6e 74 20 63 6e 77 3d 73 70 77 28 22 43 61 6e 63 65 6c 22 29 lse);..."..int.cnw=spw("Cancel")
33dc0 2b 42 54 4e 5f 50 41 44 2a 32 3b 00 00 00 16 20 20 69 6e 74 20 63 6e 78 3d 6f 6b 78 2d 50 41 44 +BTN_PAD*2;......int.cnx=okx-PAD
33de0 2d 63 6e 77 3b 00 00 00 4e 20 20 66 70 5f 64 72 61 77 5f 62 75 74 74 6f 6e 28 70 78 2c 70 77 2c -cnw;...N..fp_draw_button(px,pw,
33e00 70 68 2c 63 6e 78 2c 62 62 79 2c 63 6e 77 2c 63 65 6c 6c 5f 68 2b 38 2c 22 43 61 6e 63 65 6c 22 ph,cnx,bby,cnw,cell_h+8,"Cancel"
33e20 2c 44 52 4f 50 5f 42 47 2c 44 52 4f 50 5f 46 47 2c 74 72 75 65 29 3b 00 00 00 00 00 00 00 27 20 ,DROP_BG,DROP_FG,true);.......'.
33e40 20 73 75 72 66 5f 63 6f 6d 6d 69 74 28 66 70 2d 3e 77 73 2c 70 78 2c 66 70 2d 3e 62 75 66 2c 70 .surf_commit(fp->ws,px,fp->buf,p
33e60 77 2c 70 68 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 66 w,ph);....}.......Fstatic.void.f
33e80 70 5f 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 p_xs_cfg(void.*d,struct.xdg_surf
33ea0 61 63 65 20 2a 78 73 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 7b 00 00 00 21 20 20 73 ace.*xs,uint32_t.serial){...!..s
33ec0 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 truct.app.*a=d;.FP.*fp=&a->fp;..
33ee0 00 27 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 .'..xdg_surface_ack_configure(xs
33f00 2c 73 65 72 69 61 6c 29 3b 00 00 00 4f 20 20 69 66 28 21 66 70 2d 3e 70 69 78 65 6c 73 29 20 66 ,serial);...O..if(!fp->pixels).f
33f20 70 2d 3e 70 69 78 65 6c 73 3d 6d 61 6b 65 5f 73 68 6d 28 61 2c 66 70 2d 3e 77 2c 66 70 2d 3e 68 p->pixels=make_shm(a,fp->w,fp->h
33f40 2c 26 66 70 2d 3e 62 75 66 2c 26 66 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 16 ,&fp->buf,&fp->pixels_size);....
33f60 20 20 66 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 65 3b 00 00 00 0f 20 20 72 65 64 72 ..fp->configured=true;......redr
33f80 61 77 5f 66 70 28 61 29 3b 00 00 00 01 7d 00 00 00 5e 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 aw_fp(a);....}...^static.void.fp
33fa0 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 _xt_cfg(void.*d,struct.xdg_tople
33fc0 76 65 6c 20 2a 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f 74 20 68 2c 73 74 72 75 63 vel.*t,int32_t.w,int32_t.h,struc
33fe0 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 7b 7d 00 00 00 38 73 74 61 74 69 63 20 76 6f 69 64 20 t.wl_array.*s){}...8static.void.
34000 66 70 5f 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 fp_xt_close(void.*d,struct.xdg_t
34020 6f 70 6c 65 76 65 6c 20 2a 74 29 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d oplevel.*t){......struct.app.*a=
34040 64 3b 00 00 00 1a 20 20 66 70 5f 66 72 65 65 5f 65 6e 74 72 69 65 73 28 26 61 2d 3e 66 70 29 3b d;......fp_free_entries(&a->fp);
34060 00 00 00 10 20 20 66 70 5f 64 65 73 74 72 6f 79 28 61 29 3b 00 00 00 0c 20 20 72 65 64 72 61 77 ......fp_destroy(a);......redraw
34080 28 61 29 3b 00 00 00 01 7d 00 00 00 48 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 (a);....}...Hstatic.const.struct
340a0 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 66 70 5f 78 73 5f 6c 3d 7b 2e .xdg_surface_listener.fp_xs_l={.
340c0 63 6f 6e 66 69 67 75 72 65 3d 66 70 5f 78 73 5f 63 66 67 7d 3b 00 00 00 5c 73 74 61 74 69 63 20 configure=fp_xs_cfg};...\static.
340e0 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e const.struct.xdg_toplevel_listen
34100 65 72 20 66 70 5f 78 74 5f 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 66 70 5f 78 74 5f 63 66 67 er.fp_xt_l={.configure=fp_xt_cfg
34120 2c 2e 63 6c 6f 73 65 3d 66 70 5f 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 27 73 74 61 ,.close=fp_xt_close};.......'sta
34140 74 69 63 20 76 6f 69 64 20 66 70 5f 6f 70 65 6e 5f 77 69 6e 28 73 74 72 75 63 74 20 61 70 70 20 tic.void.fp_open_win(struct.app.
34160 2a 61 29 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 17 20 20 66 70 *a){......FP.*fp=&a->fp;......fp
34180 2d 3e 77 3d 35 38 30 3b 20 66 70 2d 3e 68 3d 34 34 30 3b 00 00 00 20 20 20 66 70 2d 3e 6f 70 65 ->w=580;.fp->h=440;......fp->ope
341a0 6e 3d 74 72 75 65 3b 20 66 70 2d 3e 68 6f 76 65 72 65 64 3d 2d 31 3b 00 00 00 2f 20 20 66 70 2d n=true;.fp->hovered=-1;.../..fp-
341c0 3e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 >ws=wl_compositor_create_surface
341e0 28 61 2d 3e 63 6f 6d 70 29 3b 00 00 00 33 20 20 66 70 2d 3e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 (a->comp);...3..fp->xs=xdg_wm_ba
34200 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2d 3e 77 6d 2c 66 70 2d 3e 77 73 29 se_get_xdg_surface(a->wm,fp->ws)
34220 3b 00 00 00 2e 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;......xdg_surface_add_listener(
34240 66 70 2d 3e 78 73 2c 26 66 70 5f 78 73 5f 6c 2c 61 29 3b 00 00 00 2a 20 20 66 70 2d 3e 78 74 3d fp->xs,&fp_xs_l,a);...*..fp->xt=
34260 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 66 70 2d 3e 78 73 29 xdg_surface_get_toplevel(fp->xs)
34280 3b 00 00 00 2f 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 ;.../..xdg_toplevel_add_listener
342a0 28 66 70 2d 3e 78 74 2c 26 66 70 5f 78 74 5f 6c 2c 61 29 3b 00 00 00 4d 20 20 78 64 67 5f 74 6f (fp->xt,&fp_xt_l,a);...M..xdg_to
342c0 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 66 70 2d 3e 78 74 2c 28 66 70 2d 3e 6d 6f 64 plevel_set_title(fp->xt,(fp->mod
342e0 65 3d 3d 46 50 5f 4f 50 45 4e 29 3f 22 4f 70 65 6e 20 46 69 6c 65 22 3a 22 53 61 76 65 20 46 69 e==FP_OPEN)?"Open.File":"Save.Fi
34300 6c 65 22 29 3b 00 00 00 30 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f le");...0..xdg_toplevel_set_min_
34320 73 69 7a 65 28 66 70 2d 3e 78 74 2c 66 70 2d 3e 77 2c 66 70 2d 3e 68 29 3b 00 00 00 30 20 20 78 size(fp->xt,fp->w,fp->h);...0..x
34340 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 66 70 2d 3e 78 74 2c dg_toplevel_set_max_size(fp->xt,
34360 66 70 2d 3e 77 2c 66 70 2d 3e 68 29 3b 00 00 00 1c 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f fp->w,fp->h);......wl_surface_co
34380 6d 6d 69 74 28 66 70 2d 3e 77 73 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 mmit(fp->ws);....}.......&static
343a0 20 76 6f 69 64 20 66 70 5f 64 65 73 74 72 6f 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b .void.fp_destroy(struct.app.*a){
343c0 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 44 20 20 69 66 28 66 70 2d ......FP.*fp=&a->fp;...D..if(fp-
343e0 3e 62 75 66 29 20 20 20 20 7b 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 66 70 2d 3e >buf)....{wl_buffer_destroy(fp->
34400 62 75 66 29 3b 20 20 20 20 20 20 20 20 20 66 70 2d 3e 62 75 66 3d 4e 55 4c 4c 3b 7d 00 00 00 47 buf);.........fp->buf=NULL;}...G
34420 20 20 69 66 28 66 70 2d 3e 70 69 78 65 6c 73 29 20 7b 6d 75 6e 6d 61 70 28 66 70 2d 3e 70 69 78 ..if(fp->pixels).{munmap(fp->pix
34440 65 6c 73 2c 66 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 20 66 70 2d 3e 70 69 78 65 6c 73 els,fp->pixels_size);.fp->pixels
34460 3d 4e 55 4c 4c 3b 7d 00 00 00 43 20 20 69 66 28 66 70 2d 3e 78 74 29 20 20 20 20 20 7b 78 64 67 =NULL;}...C..if(fp->xt).....{xdg
34480 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 66 70 2d 3e 78 74 29 3b 20 20 20 20 20 20 _toplevel_destroy(fp->xt);......
344a0 20 66 70 2d 3e 78 74 3d 4e 55 4c 4c 3b 7d 00 00 00 43 20 20 69 66 28 66 70 2d 3e 78 73 29 20 20 .fp->xt=NULL;}...C..if(fp->xs)..
344c0 20 20 20 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 66 70 2d 3e 78 73 29 3b ...{xdg_surface_destroy(fp->xs);
344e0 20 20 20 20 20 20 20 20 66 70 2d 3e 78 73 3d 4e 55 4c 4c 3b 7d 00 00 00 43 20 20 69 66 28 66 70 ........fp->xs=NULL;}...C..if(fp
34500 2d 3e 77 73 29 20 20 20 20 20 7b 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 66 70 ->ws).....{wl_surface_destroy(fp
34520 2d 3e 77 73 29 3b 20 20 20 20 20 20 20 20 20 66 70 2d 3e 77 73 3d 4e 55 4c 4c 3b 7d 00 00 00 27 ->ws);.........fp->ws=NULL;}...'
34540 20 20 66 70 2d 3e 6f 70 65 6e 3d 66 61 6c 73 65 3b 20 66 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 ..fp->open=false;.fp->configured
34560 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2f 73 74 61 74 69 63 20 76 6f 69 64 20 =false;....}......./static.void.
34580 66 70 5f 6b 65 79 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 75 69 6e 74 33 32 5f 74 20 6b 65 fp_key(struct.app.*a,uint32_t.ke
345a0 79 29 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 1b 20 20 69 66 28 y){......FP.*fp=&a->fp;......if(
345c0 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 72 65 74 75 72 6e 3b 00 00 00 19 20 20 78 6b 62 5f !a->xkb_state).return;......xkb_
345e0 6b 65 79 63 6f 64 65 5f 74 20 6b 63 3d 6b 65 79 2b 38 3b 00 00 00 3e 20 20 78 6b 62 5f 6b 65 79 keycode_t.kc=key+8;...>..xkb_key
34600 73 79 6d 5f 74 20 73 79 6d 3d 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6f 6e 65 5f sym_t.sym=xkb_state_key_get_one_
34620 73 79 6d 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 29 3b 00 00 00 00 00 00 00 4e 20 20 69 sym(a->xkb_state,kc);.......N..i
34640 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 65 29 7b 66 70 5f 66 72 65 65 5f 65 f(sym==XKB_KEY_Escape){fp_free_e
34660 6e 74 72 69 65 73 28 66 70 29 3b 66 70 5f 64 65 73 74 72 6f 79 28 61 29 3b 72 65 64 72 61 77 28 ntries(fp);fp_destroy(a);redraw(
34680 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 31 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 a);return;}...1..if(sym==XKB_KEY
346a0 5f 52 65 74 75 72 6e 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4b 50 5f 45 6e 74 65 72 29 7b _Return||sym==XKB_KEY_KP_Enter){
346c0 00 00 00 47 20 20 20 20 69 66 28 66 70 2d 3e 73 65 6c 65 63 74 65 64 3e 3d 30 26 26 66 70 2d 3e ...G....if(fp->selected>=0&&fp->
346e0 65 6e 74 72 69 65 73 26 26 66 70 2d 3e 65 6e 74 72 69 65 73 5b 66 70 2d 3e 73 65 6c 65 63 74 65 entries&&fp->entries[fp->selecte
34700 64 5d 2e 69 73 5f 64 69 72 29 7b 00 00 00 2a 20 20 20 20 20 20 66 70 5f 6e 61 76 69 67 61 74 65 d].is_dir){...*......fp_navigate
34720 28 61 2c 66 70 2d 3e 73 65 6c 65 63 74 65 64 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 05 20 20 20 (a,fp->selected);.return;.......
34740 20 7d 00 00 00 19 20 20 20 20 66 70 5f 63 6f 6d 6d 69 74 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 .}........fp_commit(a);.return;.
34760 00 00 03 20 20 7d 00 00 00 1d 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 42 61 63 6b .....}......if(sym==XKB_KEY_Back
34780 53 70 61 63 65 29 7b 00 00 00 18 20 20 20 20 69 66 28 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 3e Space){........if(fp->input_cur>
347a0 30 29 7b 00 00 00 40 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 66 70 2d 3e 69 6e 70 75 74 2b 66 0){...@......memmove(fp->input+f
347c0 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 31 2c 66 70 2d 3e 69 6e 70 75 74 2b 66 70 2d 3e 69 6e 70 p->input_cur-1,fp->input+fp->inp
347e0 75 74 5f 63 75 72 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 70 2d 3e 69 6e 70 ut_cur,...+..............fp->inp
34800 75 74 5f 6c 65 6e 2d 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 29 3b 00 00 00 27 20 20 20 20 20 20 ut_len-fp->input_cur);...'......
34820 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 2d 3b 20 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 2d 2d fp->input_cur--;.fp->input_len--
34840 3b 00 00 00 24 20 20 20 20 20 20 66 70 2d 3e 69 6e 70 75 74 5b 66 70 2d 3e 69 6e 70 75 74 5f 6c ;...$......fp->input[fp->input_l
34860 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 05 20 20 20 20 7d 00 00 00 19 20 20 20 20 72 65 64 72 61 77 en]='\0';........}........redraw
34880 5f 66 70 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 1a 20 20 69 66 28 73 _fp(a);.return;......}......if(s
348a0 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 7b 00 00 00 24 20 20 20 20 69 66 28 66 ym==XKB_KEY_Delete){...$....if(f
348c0 70 2d 3e 69 6e 70 75 74 5f 63 75 72 3c 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 29 7b 00 00 00 40 p->input_cur<fp->input_len){...@
348e0 20 20 20 20 20 20 6d 65 6d 6d 6f 76 65 28 66 70 2d 3e 69 6e 70 75 74 2b 66 70 2d 3e 69 6e 70 75 ......memmove(fp->input+fp->inpu
34900 74 5f 63 75 72 2c 66 70 2d 3e 69 6e 70 75 74 2b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2b 31 2c t_cur,fp->input+fp->input_cur+1,
34920 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 2d ...-..............fp->input_len-
34940 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 31 29 3b 00 00 00 16 20 20 20 20 20 20 66 70 2d 3e 69 fp->input_cur-1);..........fp->i
34960 6e 70 75 74 5f 6c 65 6e 2d 2d 3b 00 00 00 24 20 20 20 20 20 20 66 70 2d 3e 69 6e 70 75 74 5b 66 nput_len--;...$......fp->input[f
34980 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 05 20 20 20 20 7d 00 00 00 19 p->input_len]='\0';........}....
349a0 20 20 20 20 72 65 64 72 61 77 5f 66 70 28 61 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d ....redraw_fp(a);.return;......}
349c0 00 00 00 51 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 29 20 7b 69 66 28 ...Q..if(sym==XKB_KEY_Left).{if(
349e0 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 3e 30 29 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2d 2d 3b fp->input_cur>0)fp->input_cur--;
34a00 72 65 64 72 61 77 5f 66 70 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 5d 20 20 69 66 28 73 79 redraw_fp(a);return;}...]..if(sy
34a20 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 29 7b 69 66 28 66 70 2d 3e 69 6e 70 75 74 5f 63 m==XKB_KEY_Right){if(fp->input_c
34a40 75 72 3c 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 29 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2b 2b ur<fp->input_len)fp->input_cur++
34a60 3b 72 65 64 72 61 77 5f 66 70 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 3e 20 20 69 66 28 73 ;redraw_fp(a);return;}...>..if(s
34a80 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 29 20 7b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 ym==XKB_KEY_Home).{fp->input_cur
34aa0 3d 30 3b 72 65 64 72 61 77 5f 66 70 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 4a 20 20 69 66 =0;redraw_fp(a);return;}...J..if
34ac0 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 20 20 7b 66 70 2d 3e 69 6e 70 75 74 5f 63 (sym==XKB_KEY_End)..{fp->input_c
34ae0 75 72 3d 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 3b 72 65 64 72 61 77 5f 66 70 28 61 29 3b 72 65 ur=fp->input_len;redraw_fp(a);re
34b00 74 75 72 6e 3b 7d 00 00 00 16 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 55 70 29 7b turn;}......if(sym==XKB_KEY_Up){
34b20 00 00 00 2d 20 20 20 20 69 6e 74 20 6e 73 3d 28 66 70 2d 3e 73 65 6c 65 63 74 65 64 3e 30 29 3f ...-....int.ns=(fp->selected>0)?
34b40 66 70 2d 3e 73 65 6c 65 63 74 65 64 2d 31 3a 30 3b 00 00 00 27 20 20 20 20 69 66 28 66 70 2d 3e fp->selected-1:0;...'....if(fp->
34b60 6e 65 6e 74 72 69 65 73 3e 30 29 20 66 70 5f 73 65 6c 65 63 74 28 61 2c 6e 73 29 3b 00 00 00 38 nentries>0).fp_select(a,ns);...8
34b80 20 20 20 20 69 66 28 66 70 2d 3e 73 65 6c 65 63 74 65 64 3c 66 70 2d 3e 73 63 72 6f 6c 6c 29 20 ....if(fp->selected<fp->scroll).
34ba0 66 70 2d 3e 73 63 72 6f 6c 6c 3d 66 70 2d 3e 73 65 6c 65 63 74 65 64 3b 00 00 00 0b 20 20 20 20 fp->scroll=fp->selected;........
34bc0 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f return;......}......if(sym==XKB_
34be0 4b 45 59 5f 44 6f 77 6e 29 7b 00 00 00 47 20 20 20 20 69 6e 74 20 6e 73 3d 28 66 70 2d 3e 73 65 KEY_Down){...G....int.ns=(fp->se
34c00 6c 65 63 74 65 64 3c 66 70 2d 3e 6e 65 6e 74 72 69 65 73 2d 31 29 3f 66 70 2d 3e 73 65 6c 65 63 lected<fp->nentries-1)?fp->selec
34c20 74 65 64 2b 31 3a 66 70 2d 3e 6e 65 6e 74 72 69 65 73 2d 31 3b 00 00 00 27 20 20 20 20 69 66 28 ted+1:fp->nentries-1;...'....if(
34c40 66 70 2d 3e 6e 65 6e 74 72 69 65 73 3e 30 29 20 66 70 5f 73 65 6c 65 63 74 28 61 2c 6e 73 29 3b fp->nentries>0).fp_select(a,ns);
34c60 00 00 00 1c 20 20 20 20 69 6e 74 20 76 69 73 3d 66 70 5f 6c 69 73 74 5f 76 69 73 28 66 70 29 3b ........int.vis=fp_list_vis(fp);
34c80 00 00 00 43 20 20 20 20 69 66 28 66 70 2d 3e 73 65 6c 65 63 74 65 64 3e 3d 66 70 2d 3e 73 63 72 ...C....if(fp->selected>=fp->scr
34ca0 6f 6c 6c 2b 76 69 73 29 20 66 70 2d 3e 73 63 72 6f 6c 6c 3d 66 70 2d 3e 73 65 6c 65 63 74 65 64 oll+vis).fp->scroll=fp->selected
34cc0 2d 76 69 73 2b 31 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 -vis+1;........return;......}...
34ce0 4e 20 20 63 68 61 72 20 62 75 66 5b 38 5d 3b 20 69 6e 74 20 6c 65 6e 3d 78 6b 62 5f 73 74 61 74 N..char.buf[8];.int.len=xkb_stat
34d00 65 5f 6b 65 79 5f 67 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 2c 62 e_key_get_utf8(a->xkb_state,kc,b
34d20 75 66 2c 73 69 7a 65 6f 66 20 62 75 66 29 3b 00 00 00 45 20 20 69 66 28 6c 65 6e 3e 30 26 26 28 uf,sizeof.buf);...E..if(len>0&&(
34d40 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 62 75 66 5b 30 5d 3e 3d 33 32 26 26 66 70 2d 3e 69 6e unsigned.char)buf[0]>=32&&fp->in
34d60 70 75 74 5f 6c 65 6e 2b 6c 65 6e 3c 4d 41 58 5f 50 41 54 48 2d 31 29 7b 00 00 00 40 20 20 20 20 put_len+len<MAX_PATH-1){...@....
34d80 6d 65 6d 6d 6f 76 65 28 66 70 2d 3e 69 6e 70 75 74 2b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2b memmove(fp->input+fp->input_cur+
34da0 6c 65 6e 2c 66 70 2d 3e 69 6e 70 75 74 2b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2c 00 00 00 29 len,fp->input+fp->input_cur,...)
34dc0 20 20 20 20 20 20 20 20 20 20 20 20 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 2d 66 70 2d 3e 69 6e ............fp->input_len-fp->in
34de0 70 75 74 5f 63 75 72 29 3b 00 00 00 2c 20 20 20 20 6d 65 6d 63 70 79 28 66 70 2d 3e 69 6e 70 75 put_cur);...,....memcpy(fp->inpu
34e00 74 2b 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 2c 62 75 66 2c 6c 65 6e 29 3b 00 00 00 2b 20 20 20 t+fp->input_cur,buf,len);...+...
34e20 20 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 2b 3d 6c 65 6e 3b 20 66 70 2d 3e 69 6e 70 75 74 5f 63 .fp->input_len+=len;.fp->input_c
34e40 75 72 2b 3d 6c 65 6e 3b 00 00 00 22 20 20 20 20 66 70 2d 3e 69 6e 70 75 74 5b 66 70 2d 3e 69 6e ur+=len;..."....fp->input[fp->in
34e60 70 75 74 5f 6c 65 6e 5d 3d 27 5c 30 27 3b 00 00 00 14 20 20 20 20 66 70 2d 3e 73 65 6c 65 63 74 put_len]='\0';........fp->select
34e80 65 64 3d 2d 31 3b 00 00 00 11 20 20 20 20 72 65 64 72 61 77 5f 66 70 28 61 29 3b 00 00 00 03 20 ed=-1;........redraw_fp(a);.....
34ea0 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 32 73 74 61 74 69 63 20 76 6f 69 64 20 66 70 5f 63 6c .}....}.......2static.void.fp_cl
34ec0 69 63 6b 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 6d 78 2c 69 6e 74 20 6d 79 29 ick(struct.app.*a,int.mx,int.my)
34ee0 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 3a 20 20 69 6e 74 20 69 {......FP.*fp=&a->fp;...:..int.i
34f00 6e 70 68 3d 66 70 5f 69 6e 70 5f 68 28 29 2c 20 74 69 74 68 3d 66 70 5f 74 69 74 6c 65 5f 68 28 nph=fp_inp_h(),.tith=fp_title_h(
34f20 29 2c 20 62 74 6e 68 3d 66 70 5f 62 74 6e 5f 68 28 29 3b 00 00 00 39 20 20 69 6e 74 20 6c 74 70 ),.btnh=fp_btn_h();...9..int.ltp
34f40 3d 66 70 5f 6c 69 73 74 5f 74 6f 70 28 29 2c 20 6c 62 74 3d 66 70 5f 6c 69 73 74 5f 62 6f 74 28 =fp_list_top(),.lbt=fp_list_bot(
34f60 66 70 29 2c 20 72 68 3d 66 70 5f 72 68 28 29 3b 00 00 00 22 20 20 69 6e 74 20 62 62 79 3d 6c 62 fp),.rh=fp_rh();..."..int.bby=lb
34f80 74 2b 31 2b 28 62 74 6e 68 2d 63 65 6c 6c 5f 68 2d 38 29 2f 32 3b 00 00 00 36 20 20 63 6f 6e 73 t+1+(btnh-cell_h-8)/2;...6..cons
34fa0 74 20 63 68 61 72 20 2a 6f 6b 6c 62 6c 3d 28 66 70 2d 3e 6d 6f 64 65 3d 3d 46 50 5f 4f 50 45 4e t.char.*oklbl=(fp->mode==FP_OPEN
34fc0 29 3f 22 4f 70 65 6e 22 3a 22 53 61 76 65 22 3b 00 00 00 32 20 20 69 6e 74 20 6f 6b 77 3d 73 70 )?"Open":"Save";...2..int.okw=sp
34fe0 77 28 6f 6b 6c 62 6c 29 2b 42 54 4e 5f 50 41 44 2a 32 2c 20 6f 6b 78 3d 66 70 2d 3e 77 2d 50 41 w(oklbl)+BTN_PAD*2,.okx=fp->w-PA
35000 44 2d 6f 6b 77 3b 00 00 00 33 20 20 69 6e 74 20 63 6e 77 3d 73 70 77 28 22 43 61 6e 63 65 6c 22 D-okw;...3..int.cnw=spw("Cancel"
35020 29 2b 42 54 4e 5f 50 41 44 2a 32 2c 20 63 6e 78 3d 6f 6b 78 2d 50 41 44 2d 63 6e 77 3b 00 00 00 )+BTN_PAD*2,.cnx=okx-PAD-cnw;...
35040 00 00 00 00 49 20 20 69 66 28 6d 78 3e 3d 6f 6b 78 26 26 6d 78 3c 6f 6b 78 2b 6f 6b 77 26 26 6d ....I..if(mx>=okx&&mx<okx+okw&&m
35060 79 3e 3d 62 62 79 26 26 6d 79 3c 62 62 79 2b 63 65 6c 6c 5f 68 2b 38 29 7b 66 70 5f 63 6f 6d 6d y>=bby&&my<bby+cell_h+8){fp_comm
35080 69 74 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 34 20 20 69 66 28 6d 78 3e 3d 63 6e 78 26 26 it(a);return;}...4..if(mx>=cnx&&
350a0 6d 78 3c 63 6e 78 2b 63 6e 77 26 26 6d 79 3e 3d 62 62 79 26 26 6d 79 3c 62 62 79 2b 63 65 6c 6c mx<cnx+cnw&&my>=bby&&my<bby+cell
350c0 5f 68 2b 38 29 7b 00 00 00 37 20 20 20 20 66 70 5f 66 72 65 65 5f 65 6e 74 72 69 65 73 28 66 70 _h+8){...7....fp_free_entries(fp
350e0 29 3b 66 70 5f 64 65 73 74 72 6f 79 28 61 29 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e );fp_destroy(a);redraw(a);return
35100 3b 00 00 00 03 20 20 7d 00 00 00 23 20 20 69 66 28 6d 79 3e 3d 6c 74 70 26 26 6d 79 3c 6c 62 74 ;......}...#..if(my>=ltp&&my<lbt
35120 26 26 66 70 2d 3e 65 6e 74 72 69 65 73 29 7b 00 00 00 23 20 20 20 20 69 6e 74 20 69 64 78 3d 28 &&fp->entries){...#....int.idx=(
35140 6d 79 2d 6c 74 70 29 2f 72 68 2b 66 70 2d 3e 73 63 72 6f 6c 6c 3b 00 00 00 21 20 20 20 20 69 66 my-ltp)/rh+fp->scroll;...!....if
35160 28 69 64 78 3e 3d 30 26 26 69 64 78 3c 66 70 2d 3e 6e 65 6e 74 72 69 65 73 29 7b 00 00 00 35 20 (idx>=0&&idx<fp->nentries){...5.
35180 20 20 20 20 20 69 66 28 66 70 2d 3e 73 65 6c 65 63 74 65 64 3d 3d 69 64 78 26 26 66 70 2d 3e 65 .....if(fp->selected==idx&&fp->e
351a0 6e 74 72 69 65 73 5b 69 64 78 5d 2e 69 73 5f 64 69 72 29 7b 00 00 00 1b 20 20 20 20 20 20 20 20 ntries[idx].is_dir){............
351c0 66 70 5f 6e 61 76 69 67 61 74 65 28 61 2c 69 64 78 29 3b 00 00 00 0e 20 20 20 20 20 20 7d 20 65 fp_navigate(a,idx);..........}.e
351e0 6c 73 65 20 7b 00 00 00 19 20 20 20 20 20 20 20 20 66 70 5f 73 65 6c 65 63 74 28 61 2c 69 64 78 lse.{............fp_select(a,idx
35200 29 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0b 20 20 20 20 72 65 );..........}........}........re
35220 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 11 20 20 69 6e 74 20 69 6e 79 3d 74 69 74 68 2b 34 turn;......}......int.iny=tith+4
35240 3b 00 00 00 1b 20 20 69 66 28 6d 79 3e 3d 69 6e 79 26 26 6d 79 3c 69 6e 79 2b 69 6e 70 68 29 7b ;......if(my>=iny&&my<iny+inph){
35260 00 00 00 28 20 20 20 20 69 6e 74 20 6d 61 78 5f 76 69 73 3d 28 66 70 2d 3e 77 2d 50 41 44 2a 32 ...(....int.max_vis=(fp->w-PAD*2
35280 2d 31 32 29 2f 63 65 6c 6c 5f 77 3b 00 00 00 3b 20 20 20 20 69 6e 74 20 64 73 3d 28 66 70 2d 3e -12)/cell_w;...;....int.ds=(fp->
352a0 69 6e 70 75 74 5f 63 75 72 3e 6d 61 78 5f 76 69 73 29 3f 66 70 2d 3e 69 6e 70 75 74 5f 63 75 72 input_cur>max_vis)?fp->input_cur
352c0 2d 6d 61 78 5f 76 69 73 3a 30 3b 00 00 00 20 20 20 20 20 69 6e 74 20 6e 63 3d 28 6d 78 2d 50 41 -max_vis:0;........int.nc=(mx-PA
352e0 44 2d 36 29 2f 63 65 6c 6c 5f 77 2b 64 73 3b 00 00 00 12 20 20 20 20 69 66 28 6e 63 3c 30 29 20 D-6)/cell_w+ds;........if(nc<0).
35300 6e 63 3d 30 3b 00 00 00 2a 20 20 20 20 69 66 28 6e 63 3e 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e nc=0;...*....if(nc>fp->input_len
35320 29 20 6e 63 3d 66 70 2d 3e 69 6e 70 75 74 5f 6c 65 6e 3b 00 00 00 15 20 20 20 20 66 70 2d 3e 69 ).nc=fp->input_len;........fp->i
35340 6e 70 75 74 5f 63 75 72 3d 6e 63 3b 00 00 00 11 20 20 20 20 72 65 64 72 61 77 5f 66 70 28 61 29 nput_cur=nc;........redraw_fp(a)
35360 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 32 73 74 61 74 69 63 20 76 6f 69 64 ;......}....}.......2static.void
35380 20 66 70 5f 68 6f 76 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 2c 69 6e 74 20 6d 78 2c 69 .fp_hover(struct.app.*a,int.mx,i
353a0 6e 74 20 6d 79 29 7b 00 00 00 10 20 20 46 50 20 2a 66 70 3d 26 61 2d 3e 66 70 3b 00 00 00 39 20 nt.my){......FP.*fp=&a->fp;...9.
353c0 20 69 6e 74 20 6c 74 70 3d 66 70 5f 6c 69 73 74 5f 74 6f 70 28 29 2c 20 6c 62 74 3d 66 70 5f 6c .int.ltp=fp_list_top(),.lbt=fp_l
353e0 69 73 74 5f 62 6f 74 28 66 70 29 2c 20 72 68 3d 66 70 5f 72 68 28 29 3b 00 00 00 0c 20 20 69 6e ist_bot(fp),.rh=fp_rh();......in
35400 74 20 6e 68 3d 2d 31 3b 00 00 00 23 20 20 69 66 28 6d 79 3e 3d 6c 74 70 26 26 6d 79 3c 6c 62 74 t.nh=-1;...#..if(my>=ltp&&my<lbt
35420 26 26 66 70 2d 3e 65 6e 74 72 69 65 73 29 7b 00 00 00 23 20 20 20 20 69 6e 74 20 69 64 78 3d 28 &&fp->entries){...#....int.idx=(
35440 6d 79 2d 6c 74 70 29 2f 72 68 2b 66 70 2d 3e 73 63 72 6f 6c 6c 3b 00 00 00 28 20 20 20 20 69 66 my-ltp)/rh+fp->scroll;...(....if
35460 28 69 64 78 3e 3d 30 26 26 69 64 78 3c 66 70 2d 3e 6e 65 6e 74 72 69 65 73 29 20 6e 68 3d 69 64 (idx>=0&&idx<fp->nentries).nh=id
35480 78 3b 00 00 00 03 20 20 7d 00 00 00 33 20 20 69 66 28 6e 68 21 3d 66 70 2d 3e 68 6f 76 65 72 65 x;......}...3..if(nh!=fp->hovere
354a0 64 29 7b 66 70 2d 3e 68 6f 76 65 72 65 64 3d 6e 68 3b 72 65 64 72 61 77 5f 66 70 28 61 29 3b 7d d){fp->hovered=nh;redraw_fp(a);}
354c0 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 72 ....}.......(static.void.about_r
354e0 65 64 72 61 77 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 15 20 20 50 6f 70 75 70 edraw(struct.app.*a){......Popup
35500 20 2a 70 3d 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 22 20 20 69 66 28 21 70 2d 3e 6f 70 65 6e 7c .*p=&a->about;..."..if(!p->open|
35520 7c 21 70 2d 3e 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 76 6f 69 64 20 2a |!p->pixels).return;...*..void.*
35540 70 78 3d 70 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 70 2d 3e 77 2c 70 68 3d 70 2d 3e px=p->pixels;.int.pw=p->w,ph=p->
35560 68 3b 00 00 00 37 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 70 77 2a 70 68 3b 69 2b 2b 29 h;...7..for(int.i=0;i<pw*ph;i++)
35580 20 28 28 75 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 00 .((uint32_t*)px)[i]=BG_COLOR;...
355a0 4b 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 30 2c 70 77 2c 31 2c 53 45 50 5f 43 K..frect(px,pw,ph,0,0,pw,1,SEP_C
355c0 4f 4c 4f 52 29 3b 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 70 68 2d 31 2c 70 77 2c 31 OLOR);frect(px,pw,ph,0,ph-1,pw,1
355e0 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 4b 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 ,SEP_COLOR);...K..frect(px,pw,ph
35600 2c 30 2c 30 2c 31 2c 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 66 72 65 63 74 28 70 78 2c 70 77 ,0,0,1,ph,SEP_COLOR);frect(px,pw
35620 2c 70 68 2c 70 77 2d 31 2c 30 2c 31 2c 70 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 ,ph,pw-1,0,1,ph,SEP_COLOR);.....
35640 20 69 6e 74 20 79 3d 50 41 44 2a 32 3b 00 00 00 50 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 .int.y=PAD*2;...P..dstr(px,pw,ph
35660 2c 50 41 44 2a 32 2c 79 2c 22 77 6c 65 64 20 20 2d 20 20 77 61 79 6c 61 6e 64 20 74 65 78 74 20 ,PAD*2,y,"wled..-..wayland.text.
35680 65 64 69 74 6f 72 22 2c 46 47 5f 43 4f 4c 4f 52 29 3b 20 79 2b 3d 63 65 6c 6c 5f 68 2b 50 41 44 editor",FG_COLOR);.y+=cell_h+PAD
356a0 3b 00 00 00 37 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2a 32 2c 79 2c 70 77 ;...7..frect(px,pw,ph,PAD*2,y,pw
356c0 2d 50 41 44 2a 34 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 20 79 2b 3d 50 41 44 3b 00 00 00 49 -PAD*4,1,SEP_COLOR);.y+=PAD;...I
356e0 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2a 32 2c 79 2c 22 4c 69 63 65 6e 73 65 ..dstr(px,pw,ph,PAD*2,y,"License
35700 64 20 75 6e 64 65 72 20 47 50 4c 20 76 33 2e 30 22 2c 46 47 5f 43 4f 4c 4f 52 29 3b 20 79 2b 3d d.under.GPL.v3.0",FG_COLOR);.y+=
35720 63 65 6c 6c 5f 68 2b 36 3b 00 00 00 52 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 cell_h+6;...R..dstr(px,pw,ph,PAD
35740 2a 32 2c 79 2c 22 43 72 65 61 74 65 64 20 62 79 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 *2,y,"Created.by..git.sr.ht/~coa
35760 73 74 65 65 6e 2f 22 2c 46 47 5f 43 4f 4c 4f 52 29 3b 20 79 2b 3d 63 65 6c 6c 5f 68 2b 36 3b 00 steen/",FG_COLOR);.y+=cell_h+6;.
35780 00 00 49 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 68 2c 50 41 44 2a 32 2c 79 2c 22 53 6f 75 72 ..I..dstr(px,pw,ph,PAD*2,y,"Sour
357a0 63 65 3a 20 20 20 20 20 67 69 74 2e 73 72 2e 68 74 2f 7e 63 6f 61 73 74 65 65 6e 2f 77 6c 65 64 ce:.....git.sr.ht/~coasteen/wled
357c0 22 2c 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 25 20 20 73 75 72 66 5f 63 6f 6d 6d 69 74 28 70 2d ",FG_COLOR);...%..surf_commit(p-
357e0 3e 77 73 2c 70 78 2c 70 2d 3e 62 75 66 2c 70 77 2c 70 68 29 3b 00 00 00 01 7d 00 00 00 49 73 74 >ws,px,p->buf,pw,ph);....}...Ist
35800 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 atic.void.about_xs_cfg(void.*d,s
35820 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 75 69 6e 74 33 32 5f 74 20 73 truct.xdg_surface.*xs,uint32_t.s
35840 65 72 69 61 6c 29 7b 00 00 00 26 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 50 6f erial){...&..struct.app.*a=d;.Po
35860 70 75 70 20 2a 70 3d 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 27 20 20 78 64 67 5f 73 75 72 66 61 pup.*p=&a->about;...'..xdg_surfa
35880 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c 29 3b 00 00 00 49 ce_ack_configure(xs,serial);...I
358a0 20 20 69 66 28 21 70 2d 3e 70 69 78 65 6c 73 29 20 70 2d 3e 70 69 78 65 6c 73 3d 6d 61 6b 65 5f ..if(!p->pixels).p->pixels=make_
358c0 73 68 6d 28 61 2c 70 2d 3e 77 2c 70 2d 3e 68 2c 26 70 2d 3e 62 75 66 2c 26 70 2d 3e 70 69 78 65 shm(a,p->w,p->h,&p->buf,&p->pixe
358e0 6c 73 5f 73 69 7a 65 29 3b 00 00 00 26 20 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 64 3d 74 72 75 ls_size);...&..p->configured=tru
35900 65 3b 20 61 62 6f 75 74 5f 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 61 73 74 61 74 e;.about_redraw(a);....}...astat
35920 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 ic.void.about_xt_cfg(void.*d,str
35940 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e uct.xdg_toplevel.*t,int32_t.w,in
35960 74 33 32 5f 74 20 68 2c 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 7b 7d 00 00 00 t32_t.h,struct.wl_array.*s){}...
35980 3b 73 74 61 74 69 63 20 76 6f 69 64 20 61 62 6f 75 74 5f 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 ;static.void.about_xt_close(void
359a0 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 29 7b 00 00 00 26 .*d,struct.xdg_toplevel.*t){...&
359c0 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 50 6f 70 75 70 20 2a 70 3d 26 61 2d 3e ..struct.app.*a=d;.Popup.*p=&a->
359e0 61 62 6f 75 74 3b 00 00 00 41 20 20 69 66 28 70 2d 3e 62 75 66 29 20 20 20 20 7b 77 6c 5f 62 75 about;...A..if(p->buf)....{wl_bu
35a00 66 66 65 72 5f 64 65 73 74 72 6f 79 28 70 2d 3e 62 75 66 29 3b 20 20 20 20 20 20 20 20 20 70 2d ffer_destroy(p->buf);.........p-
35a20 3e 62 75 66 3d 4e 55 4c 4c 3b 7d 00 00 00 44 20 20 69 66 28 70 2d 3e 70 69 78 65 6c 73 29 20 7b >buf=NULL;}...D..if(p->pixels).{
35a40 6d 75 6e 6d 61 70 28 70 2d 3e 70 69 78 65 6c 73 2c 70 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 munmap(p->pixels,p->pixels_size)
35a60 3b 20 20 70 2d 3e 70 69 78 65 6c 73 3d 4e 55 4c 4c 3b 7d 00 00 00 40 20 20 69 66 28 70 2d 3e 78 ;..p->pixels=NULL;}...@..if(p->x
35a80 74 29 20 20 20 20 20 7b 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 64 65 73 74 72 6f 79 28 70 2d 3e t).....{xdg_toplevel_destroy(p->
35aa0 78 74 29 3b 20 20 20 20 20 20 20 70 2d 3e 78 74 3d 4e 55 4c 4c 3b 7d 00 00 00 40 20 20 69 66 28 xt);.......p->xt=NULL;}...@..if(
35ac0 70 2d 3e 78 73 29 20 20 20 20 20 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 6f 79 28 p->xs).....{xdg_surface_destroy(
35ae0 70 2d 3e 78 73 29 3b 20 20 20 20 20 20 20 20 70 2d 3e 78 73 3d 4e 55 4c 4c 3b 7d 00 00 00 40 20 p->xs);........p->xs=NULL;}...@.
35b00 20 69 66 28 70 2d 3e 77 73 29 20 20 20 20 20 7b 77 6c 5f 73 75 72 66 61 63 65 5f 64 65 73 74 72 .if(p->ws).....{wl_surface_destr
35b20 6f 79 28 70 2d 3e 77 73 29 3b 20 20 20 20 20 20 20 20 20 70 2d 3e 77 73 3d 4e 55 4c 4c 3b 7d 00 oy(p->ws);.........p->ws=NULL;}.
35b40 00 00 25 20 20 70 2d 3e 6f 70 65 6e 3d 66 61 6c 73 65 3b 20 70 2d 3e 63 6f 6e 66 69 67 75 72 65 ..%..p->open=false;.p->configure
35b60 64 3d 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 4e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 d=false;....}...Nstatic.const.st
35b80 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f ruct.xdg_surface_listener.about_
35ba0 78 73 5f 6c 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 61 62 6f 75 74 5f 78 73 5f 63 66 67 7d 3b 00 xs_l={.configure=about_xs_cfg};.
35bc0 00 00 65 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 ..estatic.const.struct.xdg_tople
35be0 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 61 62 6f 75 74 5f 78 74 5f 6c 3d 7b 2e 63 6f 6e 66 69 67 vel_listener.about_xt_l={.config
35c00 75 72 65 3d 61 62 6f 75 74 5f 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 61 62 6f 75 74 5f 78 74 ure=about_xt_cfg,.close=about_xt
35c20 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 6f 70 65 6e _close};.......&static.void.open
35c40 5f 61 62 6f 75 74 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 15 20 20 50 6f 70 75 _about(struct.app.*a){......Popu
35c60 70 20 2a 70 3d 26 61 2d 3e 61 62 6f 75 74 3b 00 00 00 15 20 20 69 66 28 70 2d 3e 6f 70 65 6e 29 p.*p=&a->about;......if(p->open)
35c80 20 72 65 74 75 72 6e 3b 00 00 00 23 20 20 70 2d 3e 77 3d 34 32 30 3b 20 70 2d 3e 68 3d 31 36 30 .return;...#..p->w=420;.p->h=160
35ca0 3b 20 70 2d 3e 6f 70 65 6e 3d 74 72 75 65 3b 00 00 00 2e 20 20 70 2d 3e 77 73 3d 77 6c 5f 63 6f ;.p->open=true;......p->ws=wl_co
35cc0 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2d 3e 63 6f 6d 70 29 mpositor_create_surface(a->comp)
35ce0 3b 00 00 00 31 20 20 70 2d 3e 78 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 ;...1..p->xs=xdg_wm_base_get_xdg
35d00 5f 73 75 72 66 61 63 65 28 61 2d 3e 77 6d 2c 70 2d 3e 77 73 29 3b 00 00 00 30 20 20 78 64 67 5f _surface(a->wm,p->ws);...0..xdg_
35d20 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 73 2c 26 61 62 6f 75 surface_add_listener(p->xs,&abou
35d40 74 5f 78 73 5f 6c 2c 61 29 3b 00 00 00 28 20 20 70 2d 3e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 t_xs_l,a);...(..p->xt=xdg_surfac
35d60 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 70 2d 3e 78 73 29 3b 00 00 00 31 20 20 78 64 67 5f e_get_toplevel(p->xs);...1..xdg_
35d80 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 70 2d 3e 78 74 2c 26 61 62 6f toplevel_add_listener(p->xt,&abo
35da0 75 74 5f 78 74 5f 6c 2c 61 29 3b 00 00 00 2d 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 ut_xt_l,a);...-..xdg_toplevel_se
35dc0 74 5f 74 69 74 6c 65 28 70 2d 3e 78 74 2c 22 41 62 6f 75 74 20 77 6c 65 64 22 29 3b 00 00 00 2d t_title(p->xt,"About.wled");...-
35de0 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 6d 69 6e 5f 73 69 7a 65 28 70 2d 3e 78 ..xdg_toplevel_set_min_size(p->x
35e00 74 2c 70 2d 3e 77 2c 70 2d 3e 68 29 3b 00 00 00 2d 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f t,p->w,p->h);...-..xdg_toplevel_
35e20 73 65 74 5f 6d 61 78 5f 73 69 7a 65 28 70 2d 3e 78 74 2c 70 2d 3e 77 2c 70 2d 3e 68 29 3b 00 00 set_max_size(p->xt,p->w,p->h);..
35e40 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 70 2d 3e 77 73 29 3b 00 00 00 ....wl_surface_commit(p->ws);...
35e60 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 62 61 72 28 73 .}.......$static.void.draw_bar(s
35e80 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 36 20 20 76 6f 69 64 20 2a 70 78 3d 61 2d 3e truct.app.*a){...6..void.*px=a->
35ea0 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 70 68 3d 61 2d 3e 68 2c 62 79 3d 62 pixels;.int.pw=a->w,ph=a->h,by=b
35ec0 61 72 5f 79 28 61 29 3b 00 00 00 27 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 30 2c 62 ar_y(a);...'..frect(px,pw,ph,0,b
35ee0 79 2c 70 77 2c 42 41 52 5f 48 2c 42 41 52 5f 42 47 29 3b 00 00 00 26 20 20 66 72 65 63 74 28 70 y,pw,BAR_H,BAR_BG);...&..frect(p
35f00 78 2c 70 77 2c 70 68 2c 30 2c 62 79 2c 70 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 x,pw,ph,0,by,pw,1,SEP_COLOR);...
35f20 25 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 62 6c 73 5b 5d 3d 7b 22 46 69 6c 65 22 2c 22 49 %..const.char.*lbls[]={"File","I
35f40 6e 66 6f 22 7d 3b 00 00 00 17 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 32 3b 69 2b 2b 29 nfo"};......for(int.i=0;i<2;i++)
35f60 7b 00 00 00 20 20 20 20 20 69 6e 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 62 77 3d 62 74 6e 5f {........int.bx=btn_x(i),bw=btn_
35f80 77 28 69 29 3b 00 00 00 2f 20 20 20 20 62 6f 6f 6c 20 68 6f 76 3d 61 2d 3e 6d 79 3e 3d 62 79 26 w(i);.../....bool.hov=a->my>=by&
35fa0 26 61 2d 3e 6d 78 3e 3d 62 78 26 26 61 2d 3e 6d 78 3c 62 78 2b 62 77 3b 00 00 00 50 20 20 20 20 &a->mx>=bx&&a->mx<bx+bw;...P....
35fc0 69 66 28 68 6f 76 7c 7c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 3d 28 4d 65 6e 75 49 64 29 69 29 if(hov||a->open_menu==(MenuId)i)
35fe0 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 62 78 2c 62 79 2b 31 2c 62 77 2c 42 41 52 5f 48 .frect(px,pw,ph,bx,by+1,bw,BAR_H
36000 2d 31 2c 42 54 4e 5f 48 4f 56 29 3b 00 00 00 41 20 20 20 20 64 73 74 72 28 70 78 2c 70 77 2c 70 -1,BTN_HOV);...A....dstr(px,pw,p
36020 68 2c 62 78 2b 42 54 4e 5f 50 41 44 2c 62 79 2b 28 42 41 52 5f 48 2d 63 65 6c 6c 5f 68 29 2f 32 h,bx+BTN_PAD,by+(BAR_H-cell_h)/2
36040 2c 6c 62 6c 73 5b 69 5d 2c 42 41 52 5f 46 47 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 ,lbls[i],BAR_FG);......}....}...
36060 00 00 00 00 2e 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 64 72 6f 70 28 73 74 72 75 63 .....static.void.draw_drop(struc
36080 74 20 61 70 70 20 2a 61 2c 4d 65 6e 75 49 64 20 6d 29 7b 00 00 00 2a 20 20 76 6f 69 64 20 2a 70 t.app.*a,MenuId.m){...*..void.*p
360a0 78 3d 61 2d 3e 70 69 78 65 6c 73 3b 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 70 68 3d 61 2d 3e 68 x=a->pixels;.int.pw=a->w,ph=a->h
360c0 3b 00 00 00 32 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 2c 64 77 3d 64 72 6f 70 5f 77 ;...2..int.by=bar_y(a),dw=drop_w
360e0 28 6d 29 2c 64 68 3d 64 72 6f 70 5f 74 6f 74 61 6c 5f 68 28 6d 29 3b 00 00 00 20 20 20 69 6e 74 (m),dh=drop_total_h(m);......int
36100 20 64 78 3d 62 74 6e 5f 78 28 28 69 6e 74 29 6d 29 2c 64 79 3d 62 79 2d 64 68 3b 00 00 00 25 20 .dx=btn_x((int)m),dy=by-dh;...%.
36120 20 69 6e 74 20 6e 3d 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 4e 5f 46 49 4c 45 3a 4e 5f 49 .int.n=(m==MENU_FILE)?N_FILE:N_I
36140 4e 46 4f 3b 00 00 00 3d 20 20 63 6f 6e 73 74 20 4d 65 6e 75 49 74 65 6d 20 2a 69 74 65 6d 73 3d NFO;...=..const.MenuItem.*items=
36160 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c 45 29 3f 66 69 6c 65 5f 69 74 65 6d 73 3a 69 6e 66 6f 5f 69 (m==MENU_FILE)?file_items:info_i
36180 74 65 6d 73 3b 00 00 00 26 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 64 78 2c 64 79 2c tems;...&..frect(px,pw,ph,dx,dy,
361a0 64 77 2c 64 68 2c 44 52 4f 50 5f 42 47 29 3b 00 00 00 27 20 20 66 72 65 63 74 28 70 78 2c 70 77 dw,dh,DROP_BG);...'..frect(px,pw
361c0 2c 70 68 2c 64 78 2c 64 79 2c 64 77 2c 31 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 27 20 20 ,ph,dx,dy,dw,1,SEP_COLOR);...'..
361e0 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 64 78 2c 64 79 2c 31 2c 64 68 2c 53 45 50 5f 43 4f frect(px,pw,ph,dx,dy,1,dh,SEP_CO
36200 4c 4f 52 29 3b 00 00 00 2c 20 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 64 78 2b 64 77 2d LOR);...,..frect(px,pw,ph,dx+dw-
36220 31 2c 64 79 2c 31 2c 64 68 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 00 00 00 2c 20 20 66 72 65 63 74 1,dy,1,dh,SEP_COLOR);...,..frect
36240 28 70 78 2c 70 77 2c 70 68 2c 64 78 2c 64 79 2b 64 68 2d 31 2c 64 77 2c 31 2c 53 45 50 5f 43 4f (px,pw,ph,dx,dy+dh-1,dw,1,SEP_CO
36260 4c 4f 52 29 3b 00 00 00 0e 20 20 69 6e 74 20 69 79 3d 64 79 2b 34 3b 00 00 00 17 20 20 66 6f 72 LOR);......int.iy=dy+4;......for
36280 28 69 6e 74 20 69 3d 30 3b 69 3c 6e 3b 69 2b 2b 29 7b 00 00 00 22 20 20 20 20 62 6f 6f 6c 20 68 (int.i=0;i<n;i++){..."....bool.h
362a0 6f 76 3d 28 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 3d 69 29 3b 00 00 00 38 20 20 20 20 ov=(a->hovered_item==i);...8....
362c0 69 66 28 68 6f 76 29 20 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 64 78 2b 31 2c 69 79 2c 64 if(hov).frect(px,pw,ph,dx+1,iy,d
362e0 77 2d 32 2c 64 69 68 28 29 2c 44 52 4f 50 5f 48 4f 56 29 3b 00 00 00 40 20 20 20 20 64 73 74 72 w-2,dih(),DROP_HOV);...@....dstr
36300 28 70 78 2c 70 77 2c 70 68 2c 64 78 2b 42 54 4e 5f 50 41 44 2c 69 79 2b 28 64 69 68 28 29 2d 63 (px,pw,ph,dx+BTN_PAD,iy+(dih()-c
36320 65 6c 6c 5f 68 29 2f 32 2c 69 74 65 6d 73 5b 69 5d 2e 6c 61 62 65 6c 2c 00 00 00 36 20 20 20 20 ell_h)/2,items[i].label,...6....
36340 20 20 20 20 20 68 6f 76 3f 28 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 48 4f 56 5f 46 47 3a 28 .....hov?(uint32_t)DROP_HOV_FG:(
36360 75 69 6e 74 33 32 5f 74 29 44 52 4f 50 5f 46 47 29 3b 00 00 00 0e 20 20 20 20 69 79 2b 3d 64 69 uint32_t)DROP_FG);........iy+=di
36380 68 28 29 3b 00 00 00 4b 20 20 20 20 69 66 28 69 74 65 6d 73 5b 69 5d 2e 73 65 70 5f 61 66 74 65 h();...K....if(items[i].sep_afte
363a0 72 29 7b 66 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 64 78 2b 34 2c 69 79 2c 64 77 2d 38 2c 31 r){frect(px,pw,ph,dx+4,iy,dw-8,1
363c0 2c 53 45 50 5f 43 4f 4c 4f 52 29 3b 69 79 2b 3d 34 3b 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 ,SEP_COLOR);iy+=4;}......}....}.
363e0 00 00 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 74 72 ......6static.void.fire_item(str
36400 75 63 74 20 61 70 70 20 2a 61 2c 4d 65 6e 75 49 64 20 6d 2c 69 6e 74 20 69 64 78 29 3b 00 00 00 uct.app.*a,MenuId.m,int.idx);...
36420 00 00 00 00 22 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 64 72 61 77 28 73 74 72 75 63 74 20 61 ...."static.void.redraw(struct.a
36440 70 70 20 2a 61 29 7b 00 00 00 38 20 20 76 6f 69 64 20 2a 70 78 3d 61 2d 3e 70 69 78 65 6c 73 3b pp.*a){...8..void.*px=a->pixels;
36460 20 69 6e 74 20 70 77 3d 61 2d 3e 77 2c 70 68 3d 61 2d 3e 68 2c 74 61 68 3d 74 65 78 74 5f 68 28 .int.pw=a->w,ph=a->h,tah=text_h(
36480 61 29 3b 00 00 00 37 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 70 77 2a 70 68 3b 69 2b 2b a);...7..for(int.i=0;i<pw*ph;i++
364a0 29 20 28 28 75 69 6e 74 33 32 5f 74 2a 29 70 78 29 5b 69 5d 3d 42 47 5f 43 4f 4c 4f 52 3b 00 00 ).((uint32_t*)px)[i]=BG_COLOR;..
364c0 00 1a 20 20 69 6e 74 20 73 65 6c 5f 6c 6f 3d 2d 31 2c 73 65 6c 5f 68 69 3d 2d 31 3b 00 00 00 14 ....int.sel_lo=-1,sel_hi=-1;....
364e0 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 7b 00 00 00 2f 20 20 20 20 73 65 6c 5f ..if(sel_anchor>=0){.../....sel_
36500 6c 6f 3d 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 3f 73 65 6c 5f 61 6e 63 68 6f 72 3a lo=sel_anchor<cursor?sel_anchor:
36520 63 75 72 73 6f 72 3b 00 00 00 2f 20 20 20 20 73 65 6c 5f 68 69 3d 73 65 6c 5f 61 6e 63 68 6f 72 cursor;.../....sel_hi=sel_anchor
36540 3c 63 75 72 73 6f 72 3f 63 75 72 73 6f 72 3a 73 65 6c 5f 61 6e 63 68 6f 72 3b 00 00 00 03 20 20 <cursor?cursor:sel_anchor;......
36560 7d 00 00 00 12 20 20 69 6e 74 20 63 6f 6c 3d 30 2c 72 6f 77 3d 30 3b 00 00 00 1b 20 20 66 6f 72 }......int.col=0,row=0;......for
36580 28 69 6e 74 20 69 3d 30 3b 69 3c 3d 74 6c 65 6e 3b 69 2b 2b 29 7b 00 00 00 2a 20 20 20 20 69 6e (int.i=0;i<=tlen;i++){...*....in
365a0 74 20 78 3d 50 41 44 2b 63 6f 6c 2a 63 65 6c 6c 5f 77 2c 79 3d 50 41 44 2b 72 6f 77 2a 63 65 6c t.x=PAD+col*cell_w,y=PAD+row*cel
365c0 6c 5f 68 3b 00 00 00 1b 20 20 20 20 69 66 28 79 2b 63 65 6c 6c 5f 68 3e 74 61 68 29 20 62 72 65 l_h;........if(y+cell_h>tah).bre
365e0 61 6b 3b 00 00 00 46 20 20 20 20 62 6f 6f 6c 20 69 6e 73 3d 73 65 6c 5f 6c 6f 3e 3d 30 26 26 69 ak;...F....bool.ins=sel_lo>=0&&i
36600 3e 3d 73 65 6c 5f 6c 6f 26 26 69 3c 73 65 6c 5f 68 69 26 26 28 69 3e 3d 74 6c 65 6e 7c 7c 74 65 >=sel_lo&&i<sel_hi&&(i>=tlen||te
36620 78 74 5b 69 5d 21 3d 27 5c 6e 27 29 3b 00 00 00 38 20 20 20 20 69 66 28 69 6e 73 29 20 66 72 65 xt[i]!='\n');...8....if(ins).fre
36640 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 63 65 6c 6c 5f 77 2c 63 65 6c 6c 5f 68 2c 53 45 ct(px,pw,ph,x,y,cell_w,cell_h,SE
36660 4c 5f 43 4f 4c 4f 52 29 3b 00 00 00 39 20 20 20 20 69 66 28 69 3d 3d 63 75 72 73 6f 72 29 20 66 L_COLOR);...9....if(i==cursor).f
36680 72 65 63 74 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 32 2c 63 65 6c 6c 5f 68 2c 43 55 52 5f 43 rect(px,pw,ph,x,y,2,cell_h,CUR_C
366a0 4f 4c 4f 52 29 3b 00 00 00 0f 20 20 20 20 69 66 28 69 3c 74 6c 65 6e 29 7b 00 00 00 25 20 20 20 OLOR);........if(i<tlen){...%...
366c0 20 20 20 69 66 28 74 65 78 74 5b 69 5d 3d 3d 27 5c 6e 27 29 7b 63 6f 6c 3d 30 3b 72 6f 77 2b 2b ...if(text[i]=='\n'){col=0;row++
366e0 3b 7d 00 00 00 0b 20 20 20 20 20 20 65 6c 73 65 7b 00 00 00 40 20 20 20 20 20 20 20 20 69 66 28 ;}..........else{...@........if(
36700 78 2b 63 65 6c 6c 5f 77 3e 70 77 2d 50 41 44 29 7b 63 6f 6c 3d 30 3b 72 6f 77 2b 2b 3b 78 3d 50 x+cell_w>pw-PAD){col=0;row++;x=P
36720 41 44 3b 79 3d 50 41 44 2b 72 6f 77 2a 63 65 6c 6c 5f 68 3b 7d 00 00 00 19 20 20 20 20 20 20 20 AD;y=PAD+row*cell_h;}...........
36740 20 69 66 28 79 2b 63 65 6c 6c 5f 68 3c 3d 74 61 68 29 00 00 00 5e 20 20 20 20 20 20 20 20 20 20 .if(y+cell_h<=tah)...^..........
36760 64 67 6c 79 70 68 28 70 78 2c 70 77 2c 70 68 2c 78 2c 79 2c 28 75 6e 73 69 67 6e 65 64 20 63 68 dglyph(px,pw,ph,x,y,(unsigned.ch
36780 61 72 29 74 65 78 74 5b 69 5d 2c 69 6e 73 3f 28 75 69 6e 74 33 32 5f 74 29 53 45 4c 5f 46 47 3a ar)text[i],ins?(uint32_t)SEL_FG:
367a0 28 75 69 6e 74 33 32 5f 74 29 46 47 5f 43 4f 4c 4f 52 29 3b 00 00 00 0e 20 20 20 20 20 20 20 20 (uint32_t)FG_COLOR);............
367c0 63 6f 6c 2b 2b 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 col++;..........}........}......
367e0 7d 00 00 00 0e 20 20 64 72 61 77 5f 62 61 72 28 61 29 3b 00 00 00 38 20 20 69 66 28 61 2d 3e 6f }......draw_bar(a);...8..if(a->o
36800 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e 4f 4e 45 29 20 64 72 61 77 5f 64 72 6f 70 28 61 pen_menu!=MENU_NONE).draw_drop(a
36820 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 29 3b 00 00 00 25 20 20 73 75 72 66 5f 63 6f 6d 6d 69 74 ,a->open_menu);...%..surf_commit
36840 28 61 2d 3e 77 73 2c 70 78 2c 61 2d 3e 62 75 66 2c 70 77 2c 70 68 29 3b 00 00 00 01 7d 00 00 00 (a->ws,px,a->buf,pw,ph);....}...
36860 00 00 00 00 36 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 72 65 5f 69 74 65 6d 28 73 74 72 75 63 ....6static.void.fire_item(struc
36880 74 20 61 70 70 20 2a 61 2c 4d 65 6e 75 49 64 20 6d 2c 69 6e 74 20 69 64 78 29 7b 00 00 00 2d 20 t.app.*a,MenuId.m,int.idx){...-.
368a0 20 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 20 61 2d 3e 68 6f 76 65 .a->open_menu=MENU_NONE;.a->hove
368c0 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 00 00 00 13 20 20 69 66 28 6d 3d 3d 4d 45 4e 55 5f 46 49 4c red_item=-1;......if(m==MENU_FIL
368e0 45 29 7b 00 00 00 10 20 20 20 20 73 77 69 74 63 68 28 69 64 78 29 7b 00 00 00 0d 20 20 20 20 20 E){........switch(idx){.........
36900 20 63 61 73 65 20 30 3a 00 00 00 23 20 20 20 20 20 20 20 20 6d 65 6d 73 65 74 28 74 65 78 74 2c .case.0:...#........memset(text,
36920 30 2c 73 69 7a 65 6f 66 20 74 65 78 74 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 74 6c 65 6e 3d 0,sizeof.text);...C........tlen=
36940 30 3b 63 75 72 73 6f 72 3d 30 3b 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 66 69 6c 65 70 61 74 0;cursor=0;sel_anchor=-1;filepat
36960 68 5b 30 5d 3d 27 5c 30 27 3b 64 69 72 74 79 3d 66 61 6c 73 65 3b 00 00 00 19 20 20 20 20 20 20 h[0]='\0';dirty=false;..........
36980 20 20 72 65 64 72 61 77 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 20 20 63 61 73 ..redraw(a);.break;..........cas
369a0 65 20 31 3a 00 00 00 33 20 20 20 20 20 20 20 20 61 2d 3e 66 70 2e 6d 6f 64 65 3d 46 50 5f 4f 50 e.1:...3........a->fp.mode=FP_OP
369c0 45 4e 3b 20 61 2d 3e 66 70 2e 71 75 69 74 5f 61 66 74 65 72 3d 66 61 6c 73 65 3b 00 00 00 26 20 EN;.a->fp.quit_after=false;...&.
369e0 20 20 20 20 20 20 20 7b 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 3d 67 65 74 65 6e 76 28 22 48 4f .......{const.char.*h=getenv("HO
36a00 4d 45 22 29 3b 00 00 00 3c 20 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 61 2d 3e 66 70 ME");...<.........snprintf(a->fp
36a20 2e 63 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 77 64 2c 22 25 73 22 2c 68 3f 68 3a 22 .cwd,sizeof.a->fp.cwd,"%s",h?h:"
36a40 2f 22 29 3b 7d 00 00 00 1c 20 20 20 20 20 20 20 20 66 70 5f 6c 6f 61 64 5f 64 69 72 28 26 61 2d /");}............fp_load_dir(&a-
36a60 3e 66 70 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 66 70 5f 73 65 74 5f 69 6e 70 75 74 28 26 61 >fp);...'........fp_set_input(&a
36a80 2d 3e 66 70 2c 61 2d 3e 66 70 2e 63 77 64 29 3b 00 00 00 1e 20 20 20 20 20 20 20 20 66 70 5f 6f ->fp,a->fp.cwd);............fp_o
36aa0 70 65 6e 5f 77 69 6e 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 20 20 63 61 73 65 pen_win(a);.break;..........case
36ac0 20 32 3a 00 00 00 18 20 20 20 20 20 20 20 20 69 66 28 66 69 6c 65 70 61 74 68 5b 30 5d 29 7b 00 .2:............if(filepath[0]){.
36ae0 00 00 3e 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 66 64 3d 6f 70 65 6e 28 66 69 6c 65 70 61 74 ..>..........int.fd=open(filepat
36b00 68 2c 4f 5f 57 52 4f 4e 4c 59 7c 4f 5f 43 52 45 41 54 7c 4f 5f 54 52 55 4e 43 2c 30 36 34 34 29 h,O_WRONLY|O_CREAT|O_TRUNC,0644)
36b20 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 69 66 28 66 64 3e 3d 30 29 7b 00 00 00 2c 20 20 20 ;..............if(fd>=0){...,...
36b40 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 3d 74 65 78 74 3b 69 6e 74 20 .........const.char.*p=text;int.
36b60 72 65 6d 3d 74 6c 65 6e 3b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 28 72 rem=tlen;...N............while(r
36b80 65 6d 3e 30 29 7b 73 73 69 7a 65 5f 74 20 6e 3d 77 72 69 74 65 28 66 64 2c 70 2c 72 65 6d 29 3b em>0){ssize_t.n=write(fd,p,rem);
36ba0 69 66 28 6e 3c 3d 30 29 62 72 65 61 6b 3b 70 2b 3d 6e 3b 72 65 6d 2d 3d 6e 3b 7d 00 00 00 23 20 if(n<=0)break;p+=n;rem-=n;}...#.
36bc0 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 20 64 69 72 74 79 3d 66 61 6c 73 ...........close(fd);.dirty=fals
36be0 65 3b 00 00 00 0b 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 14 20 20 20 20 20 20 20 20 20 20 72 e;..............}..............r
36c00 65 64 72 61 77 28 61 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 edraw(a);............}.else.{...
36c20 35 20 20 20 20 20 20 20 20 20 20 61 2d 3e 66 70 2e 6d 6f 64 65 3d 46 50 5f 53 41 56 45 3b 20 61 5..........a->fp.mode=FP_SAVE;.a
36c40 2d 3e 66 70 2e 71 75 69 74 5f 61 66 74 65 72 3d 66 61 6c 73 65 3b 00 00 00 28 20 20 20 20 20 20 ->fp.quit_after=false;...(......
36c60 20 20 20 20 7b 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 3d 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 ....{const.char.*h=getenv("HOME"
36c80 29 3b 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 61 2d 3e 66 70 2e );...>...........snprintf(a->fp.
36ca0 63 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 77 64 2c 22 25 73 22 2c 68 3f 68 3a 22 2f cwd,sizeof.a->fp.cwd,"%s",h?h:"/
36cc0 22 29 3b 7d 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 66 70 5f 6c 6f 61 64 5f 64 69 72 28 26 61 ");}..............fp_load_dir(&a
36ce0 2d 3e 66 70 29 3b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 64 65 66 5b 4d 41 58 ->fp);..............char.def[MAX
36d00 5f 50 41 54 48 5d 3b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 64 65 _PATH];...?..........snprintf(de
36d20 66 2c 73 69 7a 65 6f 66 20 64 65 66 2c 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 61 f,sizeof.def,"%s/untitled.txt",a
36d40 2d 3e 66 70 2e 63 77 64 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 20 20 66 70 5f 73 65 74 5f 69 ->fp.cwd);...#..........fp_set_i
36d60 6e 70 75 74 28 26 61 2d 3e 66 70 2c 64 65 66 29 3b 00 00 00 19 20 20 20 20 20 20 20 20 20 20 66 nput(&a->fp,def);..............f
36d80 70 5f 6f 70 65 6e 5f 77 69 6e 28 61 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 p_open_win(a);............}.....
36da0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 20 20 63 61 73 65 20 33 3a 00 00 .......break;..........case.3:..
36dc0 00 33 20 20 20 20 20 20 20 20 61 2d 3e 66 70 2e 6d 6f 64 65 3d 46 50 5f 53 41 56 45 3b 20 61 2d .3........a->fp.mode=FP_SAVE;.a-
36de0 3e 66 70 2e 71 75 69 74 5f 61 66 74 65 72 3d 66 61 6c 73 65 3b 00 00 00 26 20 20 20 20 20 20 20 >fp.quit_after=false;...&.......
36e00 20 7b 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 3d 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 3b 00 .{const.char.*h=getenv("HOME");.
36e20 00 00 19 20 20 20 20 20 20 20 20 20 69 66 28 66 69 6c 65 70 61 74 68 5b 30 5d 29 7b 00 00 00 46 ............if(filepath[0]){...F
36e40 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 74 6d 70 5b 4d 41 58 5f 50 41 54 48 5d 3b 20 73 ...........char.tmp[MAX_PATH];.s
36e60 6e 70 72 69 6e 74 66 28 74 6d 70 2c 73 69 7a 65 6f 66 20 74 6d 70 2c 22 25 73 22 2c 66 69 6c 65 nprintf(tmp,sizeof.tmp,"%s",file
36e80 70 61 74 68 29 3b 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 2a 73 6c 3d 73 74 path);...%...........char.*sl=st
36ea0 72 72 63 68 72 28 74 6d 70 2c 27 2f 27 29 3b 00 00 00 52 20 20 20 20 20 20 20 20 20 20 20 69 66 rrchr(tmp,'/');...R...........if
36ec0 28 73 6c 26 26 73 6c 3e 74 6d 70 29 7b 2a 73 6c 3d 27 5c 30 27 3b 73 6e 70 72 69 6e 74 66 28 61 (sl&&sl>tmp){*sl='\0';snprintf(a
36ee0 2d 3e 66 70 2e 63 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 77 64 2c 22 25 73 22 2c 74 ->fp.cwd,sizeof.a->fp.cwd,"%s",t
36f00 6d 70 29 3b 7d 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 73 6e 70 72 69 6e 74 mp);}...B...........else.snprint
36f20 66 28 61 2d 3e 66 70 2e 63 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 77 64 2c 22 25 73 f(a->fp.cwd,sizeof.a->fp.cwd,"%s
36f40 22 2c 68 3f 68 3a 22 2f 22 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 73 ",h?h:"/");...C.........}.else.s
36f60 6e 70 72 69 6e 74 66 28 61 2d 3e 66 70 2e 63 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 nprintf(a->fp.cwd,sizeof.a->fp.c
36f80 77 64 2c 22 25 73 22 2c 68 3f 68 3a 22 2f 22 29 3b 7d 00 00 00 1c 20 20 20 20 20 20 20 20 66 70 wd,"%s",h?h:"/");}............fp
36fa0 5f 6c 6f 61 64 5f 64 69 72 28 26 61 2d 3e 66 70 29 3b 00 00 00 3c 20 20 20 20 20 20 20 20 66 70 _load_dir(&a->fp);...<........fp
36fc0 5f 73 65 74 5f 69 6e 70 75 74 28 26 61 2d 3e 66 70 2c 66 69 6c 65 70 61 74 68 5b 30 5d 3f 66 69 _set_input(&a->fp,filepath[0]?fi
36fe0 6c 65 70 61 74 68 3a 61 2d 3e 66 70 2e 63 77 64 29 3b 00 00 00 1e 20 20 20 20 20 20 20 20 66 70 lepath:a->fp.cwd);............fp
37000 5f 6f 70 65 6e 5f 77 69 6e 28 61 29 3b 20 62 72 65 61 6b 3b 00 00 00 0d 20 20 20 20 20 20 63 61 _open_win(a);.break;..........ca
37020 73 65 20 34 3a 00 00 00 18 20 20 20 20 20 20 20 20 69 66 28 66 69 6c 65 70 61 74 68 5b 30 5d 29 se.4:............if(filepath[0])
37040 7b 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 66 64 3d 6f 70 65 6e 28 66 69 6c 65 70 {...>..........int.fd=open(filep
37060 61 74 68 2c 4f 5f 57 52 4f 4e 4c 59 7c 4f 5f 43 52 45 41 54 7c 4f 5f 54 52 55 4e 43 2c 30 36 34 ath,O_WRONLY|O_CREAT|O_TRUNC,064
37080 34 29 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 69 66 28 66 64 3e 3d 30 29 7b 00 00 00 2c 20 4);..............if(fd>=0){...,.
370a0 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 3d 74 65 78 74 3b 69 6e ...........const.char.*p=text;in
370c0 74 20 72 65 6d 3d 74 6c 65 6e 3b 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 t.rem=tlen;...N............while
370e0 28 72 65 6d 3e 30 29 7b 73 73 69 7a 65 5f 74 20 6e 3d 77 72 69 74 65 28 66 64 2c 70 2c 72 65 6d (rem>0){ssize_t.n=write(fd,p,rem
37100 29 3b 69 66 28 6e 3c 3d 30 29 62 72 65 61 6b 3b 70 2b 3d 6e 3b 72 65 6d 2d 3d 6e 3b 7d 00 00 00 );if(n<=0)break;p+=n;rem-=n;}...
37120 23 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 73 65 28 66 64 29 3b 20 64 69 72 74 79 3d 66 61 #............close(fd);.dirty=fa
37140 6c 73 65 3b 00 00 00 0b 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 12 20 20 20 20 20 20 20 20 20 lse;..............}.............
37160 20 65 78 69 74 28 30 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 .exit(0);............}.else.{...
37180 34 20 20 20 20 20 20 20 20 20 20 61 2d 3e 66 70 2e 6d 6f 64 65 3d 46 50 5f 53 41 56 45 3b 20 61 4..........a->fp.mode=FP_SAVE;.a
371a0 2d 3e 66 70 2e 71 75 69 74 5f 61 66 74 65 72 3d 74 72 75 65 3b 00 00 00 28 20 20 20 20 20 20 20 ->fp.quit_after=true;...(.......
371c0 20 20 20 7b 63 6f 6e 73 74 20 63 68 61 72 20 2a 68 3d 67 65 74 65 6e 76 28 22 48 4f 4d 45 22 29 ...{const.char.*h=getenv("HOME")
371e0 3b 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 61 2d 3e 66 70 2e 63 ;...>...........snprintf(a->fp.c
37200 77 64 2c 73 69 7a 65 6f 66 20 61 2d 3e 66 70 2e 63 77 64 2c 22 25 73 22 2c 68 3f 68 3a 22 2f 22 wd,sizeof.a->fp.cwd,"%s",h?h:"/"
37220 29 3b 7d 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 66 70 5f 6c 6f 61 64 5f 64 69 72 28 26 61 2d );}..............fp_load_dir(&a-
37240 3e 66 70 29 3b 00 00 00 1d 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 64 65 66 5b 4d 41 58 5f >fp);..............char.def[MAX_
37260 50 41 54 48 5d 3b 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 73 6e 70 72 69 6e 74 66 28 64 65 66 PATH];...?..........snprintf(def
37280 2c 73 69 7a 65 6f 66 20 64 65 66 2c 22 25 73 2f 75 6e 74 69 74 6c 65 64 2e 74 78 74 22 2c 61 2d ,sizeof.def,"%s/untitled.txt",a-
372a0 3e 66 70 2e 63 77 64 29 3b 00 00 00 23 20 20 20 20 20 20 20 20 20 20 66 70 5f 73 65 74 5f 69 6e >fp.cwd);...#..........fp_set_in
372c0 70 75 74 28 26 61 2d 3e 66 70 2c 64 65 66 29 3b 00 00 00 19 20 20 20 20 20 20 20 20 20 20 66 70 put(&a->fp,def);..............fp
372e0 5f 6f 70 65 6e 5f 77 69 6e 28 61 29 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 0e 20 20 _open_win(a);............}......
37300 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 16 20 20 20 20 20 20 63 61 73 65 20 35 3a 20 65 78 ......break;..........case.5:.ex
37320 69 74 28 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 7d 20 65 6c 73 65 20 69 66 28 6d it(0);........}......}.else.if(m
37340 3d 3d 4d 45 4e 55 5f 49 4e 46 4f 29 7b 00 00 00 1d 20 20 20 20 69 66 28 69 64 78 3d 3d 30 29 20 ==MENU_INFO){........if(idx==0).
37360 6f 70 65 6e 5f 61 62 6f 75 74 28 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 open_about(a);......}....}......
37380 00 47 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 73 74 61 72 74 28 76 6f 69 64 29 7b 72 65 74 .Gstatic.int.sel_start(void){ret
373a0 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 3f 73 65 6c 5f 61 6e 63 68 6f 72 urn.sel_anchor<cursor?sel_anchor
373c0 3a 63 75 72 73 6f 72 3b 7d 00 00 00 59 73 74 61 74 69 63 20 69 6e 74 20 73 65 6c 5f 6c 65 6e 28 :cursor;}...Ystatic.int.sel_len(
373e0 76 6f 69 64 29 20 20 7b 72 65 74 75 72 6e 20 73 65 6c 5f 61 6e 63 68 6f 72 3c 63 75 72 73 6f 72 void)..{return.sel_anchor<cursor
37400 3f 63 75 72 73 6f 72 2d 73 65 6c 5f 61 6e 63 68 6f 72 3a 73 65 6c 5f 61 6e 63 68 6f 72 2d 63 75 ?cursor-sel_anchor:sel_anchor-cu
37420 72 73 6f 72 3b 7d 00 00 00 1d 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 6c 65 74 65 5f 73 65 6c rsor;}....static.void.delete_sel
37440 28 76 6f 69 64 29 7b 00 00 00 1a 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3c 30 29 20 72 65 (void){......if(sel_anchor<0).re
37460 74 75 72 6e 3b 00 00 00 23 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 61 72 74 28 29 2c 6c 65 turn;...#..int.lo=sel_start(),le
37480 6e 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 2b 20 20 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 6c n=sel_len();...+..memmove(text+l
374a0 6f 2c 74 65 78 74 2b 6c 6f 2b 6c 65 6e 2c 74 6c 65 6e 2d 6c 6f 2d 6c 65 6e 29 3b 00 00 00 34 20 o,text+lo+len,tlen-lo-len);...4.
374c0 20 74 6c 65 6e 2d 3d 6c 65 6e 3b 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 63 75 72 73 6f .tlen-=len;text[tlen]='\0';curso
374e0 72 3d 6c 6f 3b 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 01 7d 00 00 00 27 73 74 61 74 r=lo;sel_anchor=-1;....}...'stat
37500 69 63 20 76 6f 69 64 20 69 6e 73 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 69 6e 74 20 6c 65 ic.void.ins(const.char.*s,int.le
37520 6e 29 7b 00 00 00 2d 20 20 69 66 28 74 6c 65 6e 2b 6c 65 6e 3e 3d 4d 41 58 5f 54 45 58 54 29 20 n){...-..if(tlen+len>=MAX_TEXT).
37540 6c 65 6e 3d 4d 41 58 5f 54 45 58 54 2d 74 6c 65 6e 2d 31 3b 00 00 00 33 20 20 6d 65 6d 6d 6f 76 len=MAX_TEXT-tlen-1;...3..memmov
37560 65 28 74 65 78 74 2b 63 75 72 73 6f 72 2b 6c 65 6e 2c 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 6c e(text+cursor+len,text+cursor,tl
37580 65 6e 2d 63 75 72 73 6f 72 29 3b 00 00 00 1c 20 20 6d 65 6d 63 70 79 28 74 65 78 74 2b 63 75 72 en-cursor);......memcpy(text+cur
375a0 73 6f 72 2c 73 2c 6c 65 6e 29 3b 00 00 00 33 20 20 74 6c 65 6e 2b 3d 6c 65 6e 3b 74 65 78 74 5b sor,s,len);...3..tlen+=len;text[
375c0 74 6c 65 6e 5d 3d 27 5c 30 27 3b 63 75 72 73 6f 72 2b 3d 6c 65 6e 3b 64 69 72 74 79 3d 74 72 75 tlen]='\0';cursor+=len;dirty=tru
375e0 65 3b 00 00 00 01 7d 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 63 6f 70 79 5f 73 65 6c 28 e;....}...$static.void.copy_sel(
37600 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 1a 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 struct.app.*a){......if(sel_anch
37620 6f 72 3c 30 29 20 72 65 74 75 72 6e 3b 00 00 00 23 20 20 69 6e 74 20 6c 6f 3d 73 65 6c 5f 73 74 or<0).return;...#..int.lo=sel_st
37640 61 72 74 28 29 2c 6c 65 6e 3d 73 65 6c 5f 6c 65 6e 28 29 3b 00 00 00 41 20 20 69 66 28 6c 65 6e art(),len=sel_len();...A..if(len
37660 3e 28 69 6e 74 29 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 29 20 6c 65 >(int)sizeof(a->clipboard)-1).le
37680 6e 3d 73 69 7a 65 6f 66 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 29 2d 31 3b 00 00 00 23 20 20 6d n=sizeof(a->clipboard)-1;...#..m
376a0 65 6d 63 70 79 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 74 65 78 74 2b 6c 6f 2c 6c 65 6e 29 3b emcpy(a->clipboard,text+lo,len);
376c0 00 00 00 2e 20 20 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5b 6c 65 6e 5d 3d 27 5c 30 27 3b 61 2d 3e ......a->clipboard[len]='\0';a->
376e0 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 3d 6c 65 6e 3b 00 00 00 36 20 20 69 66 28 61 2d 3e 64 73 clipboard_len=len;...6..if(a->ds
37700 29 7b 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 28 61 2d 3e 64 73 29 3b ){wl_data_source_destroy(a->ds);
37720 61 2d 3e 64 73 3d 4e 55 4c 4c 3b 7d 00 00 00 1d 20 20 69 66 28 21 61 2d 3e 64 64 6d 7c 7c 21 61 a->ds=NULL;}......if(!a->ddm||!a
37740 2d 3e 64 64 29 20 72 65 74 75 72 6e 3b 00 00 00 3a 20 20 61 2d 3e 64 73 3d 77 6c 5f 64 61 74 61 ->dd).return;...:..a->ds=wl_data
37760 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 63 72 65 61 74 65 5f 64 61 74 61 5f 73 6f 75 72 _device_manager_create_data_sour
37780 63 65 28 61 2d 3e 64 64 6d 29 3b 00 00 00 39 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f ce(a->ddm);...9..wl_data_source_
377a0 6f 66 66 65 72 28 61 2d 3e 64 73 2c 22 74 65 78 74 2f 70 6c 61 69 6e 3b 63 68 61 72 73 65 74 3d offer(a->ds,"text/plain;charset=
377c0 75 74 66 2d 38 22 29 3b 00 00 00 2b 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 utf-8");...+..wl_data_source_off
377e0 65 72 28 61 2d 3e 64 73 2c 22 74 65 78 74 2f 70 6c 61 69 6e 22 29 3b 00 00 00 2c 20 20 77 6c 5f er(a->ds,"text/plain");...,..wl_
37800 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 72 28 61 2d 3e 64 73 2c 22 55 54 46 38 5f 53 54 data_source_offer(a->ds,"UTF8_ST
37820 52 49 4e 47 22 29 3b 00 00 00 27 20 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 6f 66 66 65 RING");...'..wl_data_source_offe
37840 72 28 61 2d 3e 64 73 2c 22 53 54 52 49 4e 47 22 29 3b 00 00 00 3b 20 20 77 6c 5f 64 61 74 61 5f r(a->ds,"STRING");...;..wl_data_
37860 64 65 76 69 63 65 5f 73 65 74 5f 73 65 6c 65 63 74 69 6f 6e 28 61 2d 3e 64 64 2c 61 2d 3e 64 73 device_set_selection(a->dd,a->ds
37880 2c 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 34 73 74 ,a->last_serial);....}.......4st
378a0 61 74 69 63 20 76 6f 69 64 20 70 72 6f 63 65 73 73 5f 6b 65 79 28 73 74 72 75 63 74 20 61 70 70 atic.void.process_key(struct.app
378c0 20 2a 61 2c 75 69 6e 74 33 32 5f 74 20 6b 65 79 29 7b 00 00 00 27 20 20 69 66 28 61 2d 3e 66 70 .*a,uint32_t.key){...'..if(a->fp
378e0 2e 6f 70 65 6e 29 7b 66 70 5f 6b 65 79 28 61 2c 6b 65 79 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 .open){fp_key(a,key);return;}...
37900 1b 20 20 69 66 28 21 61 2d 3e 78 6b 62 5f 73 74 61 74 65 29 20 72 65 74 75 72 6e 3b 00 00 00 19 ...if(!a->xkb_state).return;....
37920 20 20 78 6b 62 5f 6b 65 79 63 6f 64 65 5f 74 20 6b 63 3d 6b 65 79 2b 38 3b 00 00 00 3e 20 20 78 ..xkb_keycode_t.kc=key+8;...>..x
37940 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 73 79 6d 3d 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 kb_keysym_t.sym=xkb_state_key_ge
37960 74 5f 6f 6e 65 5f 73 79 6d 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 29 3b 00 00 00 61 20 t_one_sym(a->xkb_state,kc);...a.
37980 20 69 6e 74 20 63 74 72 6c 3d 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 6d 65 5f 69 73 5f .int.ctrl=xkb_state_mod_name_is_
379a0 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 58 4b 42 5f 4d 4f 44 5f 4e 41 4d 45 active(a->xkb_state,XKB_MOD_NAME
379c0 5f 43 54 52 4c 2c 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 43 54 49 56 45 29 3b _CTRL,XKB_STATE_MODS_EFFECTIVE);
379e0 00 00 00 63 20 20 69 6e 74 20 73 68 69 66 74 3d 78 6b 62 5f 73 74 61 74 65 5f 6d 6f 64 5f 6e 61 ...c..int.shift=xkb_state_mod_na
37a00 6d 65 5f 69 73 5f 61 63 74 69 76 65 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 58 4b 42 5f 4d 4f me_is_active(a->xkb_state,XKB_MO
37a20 44 5f 4e 41 4d 45 5f 53 48 49 46 54 2c 58 4b 42 5f 53 54 41 54 45 5f 4d 4f 44 53 5f 45 46 46 45 D_NAME_SHIFT,XKB_STATE_MODS_EFFE
37a40 43 54 49 56 45 29 3b 00 00 00 46 20 20 78 6b 62 5f 6c 61 79 6f 75 74 5f 69 6e 64 65 78 5f 74 20 CTIVE);...F..xkb_layout_index_t.
37a60 6c 61 79 6f 75 74 3d 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 65 74 5f 6c 61 79 6f 75 74 28 layout=xkb_state_key_get_layout(
37a80 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 29 3b 00 00 00 19 20 20 63 6f 6e 73 74 20 78 6b 62 a->xkb_state,kc);......const.xkb
37aa0 5f 6b 65 79 73 79 6d 5f 74 20 2a 62 73 3b 00 00 00 48 20 20 69 6e 74 20 6e 3d 78 6b 62 5f 6b 65 _keysym_t.*bs;...H..int.n=xkb_ke
37ac0 79 6d 61 70 5f 6b 65 79 5f 67 65 74 5f 73 79 6d 73 5f 62 79 5f 6c 65 76 65 6c 28 61 2d 3e 78 6b ymap_key_get_syms_by_level(a->xk
37ae0 62 5f 6b 65 79 6d 61 70 2c 6b 63 2c 6c 61 79 6f 75 74 2c 30 2c 26 62 73 29 3b 00 00 00 23 20 20 b_keymap,kc,layout,0,&bs);...#..
37b00 78 6b 62 5f 6b 65 79 73 79 6d 5f 74 20 70 6c 61 69 6e 3d 6e 3e 30 3f 62 73 5b 30 5d 3a 73 79 6d xkb_keysym_t.plain=n>0?bs[0]:sym
37b20 3b 00 00 00 00 00 00 00 1a 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 73 63 61 70 ;..........if(sym==XKB_KEY_Escap
37b40 65 29 7b 00 00 00 55 20 20 20 20 69 66 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 e){...U....if(a->open_menu!=MENU
37b60 5f 4e 4f 4e 45 29 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 61 2d _NONE){a->open_menu=MENU_NONE;a-
37b80 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 7d 00 00 00 0b >hovered_item=-1;redraw(a);}....
37ba0 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 69 66 28 63 74 72 6c 29 ....return;......}......if(ctrl)
37bc0 7b 00 00 00 64 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 65 71 75 61 6c {...d....if(plain==XKB_KEY_equal
37be0 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 70 6c 75 73 29 7b 66 6f 6e 74 5f 70 74 2b 2b ||plain==XKB_KEY_plus){font_pt++
37c00 3b 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 72 65 64 72 61 77 28 61 29 ;update_font_metrics();redraw(a)
37c20 3b 72 65 74 75 72 6e 3b 7d 00 00 00 5e 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b ;return;}...^....if(plain==XKB_K
37c40 45 59 5f 6d 69 6e 75 73 29 7b 69 66 28 66 6f 6e 74 5f 70 74 3e 34 29 7b 66 6f 6e 74 5f 70 74 2d EY_minus){if(font_pt>4){font_pt-
37c60 2d 3b 75 70 64 61 74 65 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 72 65 64 72 61 77 28 61 -;update_font_metrics();redraw(a
37c80 29 3b 7d 72 65 74 75 72 6e 3b 7d 00 00 00 53 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 );}return;}...S....if(plain==XKB
37ca0 5f 4b 45 59 5f 30 29 7b 66 6f 6e 74 5f 70 74 3d 46 4f 4e 54 5f 53 49 5a 45 3b 75 70 64 61 74 65 _KEY_0){font_pt=FONT_SIZE;update
37cc0 5f 66 6f 6e 74 5f 6d 65 74 72 69 63 73 28 29 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e _font_metrics();redraw(a);return
37ce0 3b 7d 00 00 00 2b 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 73 7c 7c 70 ;}...+....if(plain==XKB_KEY_s||p
37d00 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 53 29 7b 00 00 00 27 20 20 20 20 20 20 66 69 72 65 5f lain==XKB_KEY_S){...'......fire_
37d20 69 74 65 6d 28 61 2c 4d 45 4e 55 5f 46 49 4c 45 2c 32 29 3b 20 72 65 74 75 72 6e 3b 00 00 00 05 item(a,MENU_FILE,2);.return;....
37d40 20 20 20 20 7d 00 00 00 56 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 61 ....}...V....if(plain==XKB_KEY_a
37d60 7c 7c 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 41 29 7b 73 65 6c 5f 61 6e 63 68 6f 72 3d 30 ||plain==XKB_KEY_A){sel_anchor=0
37d80 3b 63 75 72 73 6f 72 3d 74 6c 65 6e 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 ;cursor=tlen;redraw(a);return;}.
37da0 00 00 3f 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 63 7c 7c 70 6c 61 69 ..?....if(plain==XKB_KEY_c||plai
37dc0 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 43 29 7b 63 6f 70 79 5f 73 65 6c 28 61 29 3b 72 65 74 75 72 6e n==XKB_KEY_C){copy_sel(a);return
37de0 3b 7d 00 00 00 56 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 78 7c 7c 70 ;}...V....if(plain==XKB_KEY_x||p
37e00 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 58 29 7b 63 6f 70 79 5f 73 65 6c 28 61 29 3b 64 65 6c lain==XKB_KEY_X){copy_sel(a);del
37e20 65 74 65 5f 73 65 6c 28 29 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 7e ete_sel();redraw(a);return;}...~
37e40 20 20 20 20 69 66 28 70 6c 61 69 6e 3d 3d 58 4b 42 5f 4b 45 59 5f 76 7c 7c 70 6c 61 69 6e 3d 3d ....if(plain==XKB_KEY_v||plain==
37e60 58 4b 42 5f 4b 45 59 5f 56 29 7b 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 64 65 6c 65 XKB_KEY_V){if(sel_anchor>=0)dele
37e80 74 65 5f 73 65 6c 28 29 3b 69 6e 73 28 61 2d 3e 63 6c 69 70 62 6f 61 72 64 2c 61 2d 3e 63 6c 69 te_sel();ins(a->clipboard,a->cli
37ea0 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 pboard_len);redraw(a);return;}..
37ec0 00 03 20 20 7d 00 00 00 51 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 7c ....}...Q..if(sym==XKB_KEY_Left|
37ee0 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 |sym==XKB_KEY_Right||sym==XKB_KE
37f00 59 5f 48 6f 6d 65 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 29 7b 00 00 00 2e 20 20 Y_Home||sym==XKB_KEY_End){......
37f20 20 20 69 66 28 73 68 69 66 74 26 26 73 65 6c 5f 61 6e 63 68 6f 72 3c 30 29 20 73 65 6c 5f 61 6e ..if(shift&&sel_anchor<0).sel_an
37f40 63 68 6f 72 3d 63 75 72 73 6f 72 3b 00 00 00 22 20 20 20 20 65 6c 73 65 20 69 66 28 21 73 68 69 chor=cursor;..."....else.if(!shi
37f60 66 74 29 20 73 65 6c 5f 61 6e 63 68 6f 72 3d 2d 31 3b 00 00 00 2d 20 20 20 20 69 66 28 73 79 6d ft).sel_anchor=-1;...-....if(sym
37f80 3d 3d 58 4b 42 5f 4b 45 59 5f 4c 65 66 74 26 26 63 75 72 73 6f 72 3e 30 29 20 63 75 72 73 6f 72 ==XKB_KEY_Left&&cursor>0).cursor
37fa0 2d 2d 3b 00 00 00 31 20 20 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 69 67 68 74 --;...1....if(sym==XKB_KEY_Right
37fc0 26 26 63 75 72 73 6f 72 3c 74 6c 65 6e 29 20 63 75 72 73 6f 72 2b 2b 3b 00 00 00 49 20 20 20 20 &&cursor<tlen).cursor++;...I....
37fe0 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 48 6f 6d 65 29 7b 77 68 69 6c 65 28 63 75 72 73 if(sym==XKB_KEY_Home){while(curs
38000 6f 72 3e 30 26 26 74 65 78 74 5b 63 75 72 73 6f 72 2d 31 5d 21 3d 27 5c 6e 27 29 63 75 72 73 6f or>0&&text[cursor-1]!='\n')curso
38020 72 2d 2d 3b 7d 00 00 00 4a 20 20 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 45 6e 64 r--;}...J....if(sym==XKB_KEY_End
38040 29 20 7b 77 68 69 6c 65 28 63 75 72 73 6f 72 3c 74 6c 65 6e 26 26 74 65 78 74 5b 63 75 72 73 6f ).{while(cursor<tlen&&text[curso
38060 72 5d 21 3d 27 5c 6e 27 29 63 75 72 73 6f 72 2b 2b 3b 7d 00 00 00 30 20 20 20 20 69 66 28 73 68 r]!='\n')cursor++;}...0....if(sh
38080 69 66 74 26 26 73 65 6c 5f 61 6e 63 68 6f 72 3d 3d 63 75 72 73 6f 72 29 20 73 65 6c 5f 61 6e 63 ift&&sel_anchor==cursor).sel_anc
380a0 68 6f 72 3d 2d 31 3b 00 00 00 15 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b hor=-1;........redraw(a);return;
380c0 00 00 00 03 20 20 7d 00 00 00 1d 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 42 61 63 ......}......if(sym==XKB_KEY_Bac
380e0 6b 53 70 61 63 65 29 7b 00 00 00 22 20 20 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 kSpace){..."....if(sel_anchor>=0
38100 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 00 00 00 71 20 20 20 20 65 6c 73 65 20 69 66 28 63 75 )delete_sel();...q....else.if(cu
38120 72 73 6f 72 3e 30 29 7b 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 6f 72 2d 31 2c 74 65 rsor>0){memmove(text+cursor-1,te
38140 78 74 2b 63 75 72 73 6f 72 2c 74 6c 65 6e 2d 63 75 72 73 6f 72 29 3b 74 6c 65 6e 2d 2d 3b 63 75 xt+cursor,tlen-cursor);tlen--;cu
38160 72 73 6f 72 2d 2d 3b 74 65 78 74 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 64 69 72 74 79 3d 74 72 75 rsor--;text[tlen]='\0';dirty=tru
38180 65 3b 7d 00 00 00 15 20 20 20 20 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 00 00 00 03 e;}........redraw(a);return;....
381a0 20 20 7d 00 00 00 1a 20 20 69 66 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 44 65 6c 65 74 65 29 ..}......if(sym==XKB_KEY_Delete)
381c0 7b 00 00 00 22 20 20 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 3e 3d 30 29 64 65 6c 65 74 65 {..."....if(sel_anchor>=0)delete
381e0 5f 73 65 6c 28 29 3b 00 00 00 6d 20 20 20 20 65 6c 73 65 20 69 66 28 63 75 72 73 6f 72 3c 74 6c _sel();...m....else.if(cursor<tl
38200 65 6e 29 7b 6d 65 6d 6d 6f 76 65 28 74 65 78 74 2b 63 75 72 73 6f 72 2c 74 65 78 74 2b 63 75 72 en){memmove(text+cursor,text+cur
38220 73 6f 72 2b 31 2c 74 6c 65 6e 2d 63 75 72 73 6f 72 2d 31 29 3b 74 6c 65 6e 2d 2d 3b 74 65 78 74 sor+1,tlen-cursor-1);tlen--;text
38240 5b 74 6c 65 6e 5d 3d 27 5c 30 27 3b 64 69 72 74 79 3d 74 72 75 65 3b 7d 00 00 00 15 20 20 20 20 [tlen]='\0';dirty=true;}........
38260 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 31 20 20 69 66 redraw(a);return;......}...1..if
38280 28 73 79 6d 3d 3d 58 4b 42 5f 4b 45 59 5f 52 65 74 75 72 6e 7c 7c 73 79 6d 3d 3d 58 4b 42 5f 4b (sym==XKB_KEY_Return||sym==XKB_K
382a0 45 59 5f 4b 50 5f 45 6e 74 65 72 29 7b 00 00 00 3f 20 20 20 20 69 66 28 73 65 6c 5f 61 6e 63 68 EY_KP_Enter){...?....if(sel_anch
382c0 6f 72 3e 3d 30 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 69 6e 73 28 22 5c 6e 22 2c 31 29 3b 72 or>=0)delete_sel();ins("\n",1);r
382e0 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 4d 20 20 63 68 61 edraw(a);return;......}...M..cha
38300 72 20 62 75 66 5b 38 5d 3b 69 6e 74 20 6c 65 6e 3d 78 6b 62 5f 73 74 61 74 65 5f 6b 65 79 5f 67 r.buf[8];int.len=xkb_state_key_g
38320 65 74 5f 75 74 66 38 28 61 2d 3e 78 6b 62 5f 73 74 61 74 65 2c 6b 63 2c 62 75 66 2c 73 69 7a 65 et_utf8(a->xkb_state,kc,buf,size
38340 6f 66 20 62 75 66 29 3b 00 00 00 5d 20 20 69 66 28 6c 65 6e 3e 30 26 26 28 75 6e 73 69 67 6e 65 of.buf);...]..if(len>0&&(unsigne
38360 64 20 63 68 61 72 29 62 75 66 5b 30 5d 3e 3d 33 32 29 7b 69 66 28 73 65 6c 5f 61 6e 63 68 6f 72 d.char)buf[0]>=32){if(sel_anchor
38380 3e 3d 30 29 64 65 6c 65 74 65 5f 73 65 6c 28 29 3b 69 6e 73 28 62 75 66 2c 6c 65 6e 29 3b 72 65 >=0)delete_sel();ins(buf,len);re
383a0 64 72 61 77 28 61 29 3b 7d 00 00 00 01 7d 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 draw(a);}....}.......astatic.voi
383c0 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f d.wm_ping(void.*d,struct.xdg_wm_
383e0 62 61 73 65 20 2a 77 6d 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 7b 78 64 67 5f 77 6d base.*wm,uint32_t.serial){xdg_wm
38400 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 73 65 72 69 61 6c 29 3b 7d 00 00 00 45 73 74 61 74 69 _base_pong(wm,serial);}...Estati
38420 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 c.const.struct.xdg_wm_base_liste
38440 6e 65 72 20 77 6d 5f 6c 69 73 74 65 6e 65 72 3d 7b 2e 70 69 6e 67 3d 77 6d 5f 70 69 6e 67 7d 3b ner.wm_listener={.ping=wm_ping};
38460 00 00 00 00 00 00 00 25 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 .......%static.void.alloc_buf(st
38480 72 75 63 74 20 61 70 70 20 2a 61 29 7b 00 00 00 41 20 20 69 66 28 61 2d 3e 62 75 66 29 20 20 20 ruct.app.*a){...A..if(a->buf)...
384a0 20 7b 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 20 20 20 20 .{wl_buffer_destroy(a->buf);....
384c0 20 20 20 20 20 61 2d 3e 62 75 66 3d 4e 55 4c 4c 3b 7d 00 00 00 44 20 20 69 66 28 61 2d 3e 70 69 .....a->buf=NULL;}...D..if(a->pi
384e0 78 65 6c 73 29 20 7b 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 61 2d 3e 70 69 78 65 6c xels).{munmap(a->pixels,a->pixel
38500 73 5f 73 69 7a 65 29 3b 20 20 61 2d 3e 70 69 78 65 6c 73 3d 4e 55 4c 4c 3b 7d 00 00 00 3a 20 20 s_size);..a->pixels=NULL;}...:..
38520 61 2d 3e 70 69 78 65 6c 73 3d 6d 61 6b 65 5f 73 68 6d 28 61 2c 61 2d 3e 77 2c 61 2d 3e 68 2c 26 a->pixels=make_shm(a,a->w,a->h,&
38540 61 2d 3e 62 75 66 2c 26 61 2d 3e 70 69 78 65 6c 73 5f 73 69 7a 65 29 3b 00 00 00 01 7d 00 00 00 a->buf,&a->pixels_size);....}...
38560 43 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 Cstatic.void.xs_cfg(void.*d,stru
38580 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 ct.xdg_surface.*xs,uint32_t.seri
385a0 61 6c 29 7b 00 00 00 38 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 78 64 67 5f 73 al){...8..struct.app.*a=d;.xdg_s
385c0 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 73 65 72 69 61 6c 29 3b urface_ack_configure(xs,serial);
385e0 00 00 00 25 20 20 69 66 28 61 2d 3e 70 65 6e 64 69 6e 67 5f 77 3e 30 26 26 61 2d 3e 70 65 6e 64 ...%..if(a->pending_w>0&&a->pend
38600 69 6e 67 5f 68 3e 30 29 7b 00 00 00 46 20 20 20 20 61 2d 3e 77 3d 61 2d 3e 70 65 6e 64 69 6e 67 ing_h>0){...F....a->w=a->pending
38620 5f 77 3b 61 2d 3e 68 3d 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3b 61 2d 3e 70 65 6e 64 69 6e 67 5f _w;a->h=a->pending_h;a->pending_
38640 77 3d 30 3b 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3d 30 3b 00 00 00 03 20 20 7d 00 00 00 28 20 20 w=0;a->pending_h=0;......}...(..
38660 69 66 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 29 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 if(!a->configured).a->configured
38680 3d 74 72 75 65 3b 00 00 00 19 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 72 65 64 72 61 77 28 =true;......alloc_buf(a);redraw(
386a0 61 29 3b 00 00 00 01 7d 00 00 00 49 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 a);....}...Istatic.const.struct.
386c0 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 5f 6c 69 73 74 65 6e 65 72 xdg_surface_listener.xs_listener
386e0 3d 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 78 73 5f 63 66 67 7d 3b 00 00 00 5b 73 74 61 74 69 63 20 ={.configure=xs_cfg};...[static.
38700 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 78 64 67 5f 74 void.xt_cfg(void.*d,struct.xdg_t
38720 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 69 6e 74 33 32 5f 74 20 77 2c 69 6e 74 33 32 5f 74 20 68 2c oplevel.*xt,int32_t.w,int32_t.h,
38740 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 7b 00 00 00 3e 20 20 73 74 72 75 63 74 struct.wl_array.*s){...>..struct
38760 20 61 70 70 20 2a 61 3d 64 3b 69 66 28 77 3e 30 26 26 68 3e 30 29 7b 61 2d 3e 70 65 6e 64 69 6e .app.*a=d;if(w>0&&h>0){a->pendin
38780 67 5f 77 3d 77 3b 61 2d 3e 70 65 6e 64 69 6e 67 5f 68 3d 68 3b 7d 00 00 00 01 7d 00 00 00 3f 73 g_w=w;a->pending_h=h;}....}...?s
387a0 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 tatic.void.xt_close(void.*d,stru
387c0 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 7b 65 78 69 74 28 30 29 3b 7d 00 00 ct.xdg_toplevel.*xt){exit(0);}..
387e0 00 5a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 .Zstatic.const.struct.xdg_toplev
38800 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 5f 6c 69 73 74 65 6e 65 72 3d 7b 2e 63 6f 6e 66 69 67 el_listener.xt_listener={.config
38820 75 72 65 3d 78 74 5f 63 66 67 2c 2e 63 6c 6f 73 65 3d 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 ure=xt_cfg,.close=xt_close};....
38840 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 74 61 72 67 65 74 28 76 6f 69 64 20 2a ...Gstatic.void.ds_target(void.*
38860 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 20 2a 73 2c 63 6f 6e 73 74 d,struct.wl_data_source.*s,const
38880 20 63 68 61 72 20 2a 6d 29 7b 7d 00 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 73 65 .char.*m){}...Ostatic.void.ds_se
388a0 6e 64 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 nd(void.*d,struct.wl_data_source
388c0 20 2a 73 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 2c 69 6e 74 33 32 5f 74 20 66 64 29 7b 00 00 .*s,const.char.*m,int32_t.fd){..
388e0 00 44 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 77 72 69 74 65 28 66 64 2c 61 2d 3e .D..struct.app.*a=d;write(fd,a->
38900 63 6c 69 70 62 6f 61 72 64 2c 61 2d 3e 63 6c 69 70 62 6f 61 72 64 5f 6c 65 6e 29 3b 63 6c 6f 73 clipboard,a->clipboard_len);clos
38920 65 28 66 64 29 3b 00 00 00 01 7d 00 00 00 3b 73 74 61 74 69 63 20 76 6f 69 64 20 64 73 5f 63 61 e(fd);....}...;static.void.ds_ca
38940 6e 63 65 6c 6c 65 64 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 ncelled(void.*d,struct.wl_data_s
38960 6f 75 72 63 65 20 2a 73 29 7b 00 00 00 46 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b ource.*s){...F..struct.app.*a=d;
38980 69 66 28 61 2d 3e 64 73 29 7b 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f 64 65 73 74 72 6f 79 if(a->ds){wl_data_source_destroy
389a0 28 61 2d 3e 64 73 29 3b 61 2d 3e 64 73 3d 4e 55 4c 4c 3b 7d 00 00 00 01 7d 00 00 00 39 73 74 61 (a->ds);a->ds=NULL;}....}...9sta
389c0 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 73 6f 75 72 63 65 5f tic.const.struct.wl_data_source_
389e0 6c 69 73 74 65 6e 65 72 20 64 73 5f 6c 69 73 74 65 6e 65 72 3d 7b 00 00 00 39 20 20 2e 74 61 72 listener.ds_listener={...9...tar
38a00 67 65 74 3d 64 73 5f 74 61 72 67 65 74 2c 2e 73 65 6e 64 3d 64 73 5f 73 65 6e 64 2c 2e 63 61 6e get=ds_target,.send=ds_send,.can
38a20 63 65 6c 6c 65 64 3d 64 73 5f 63 61 6e 63 65 6c 6c 65 64 00 00 00 02 7d 3b 00 00 00 51 73 74 61 celled=ds_cancelled....};...Qsta
38a40 74 69 63 20 76 6f 69 64 20 64 64 5f 6f 66 66 65 72 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 tic.void.dd_offer(void.*d,struct
38a60 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 .wl_data_device.*dd,struct.wl_da
38a80 74 61 5f 6f 66 66 65 72 20 2a 6f 29 7b 7d 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 64 64 ta_offer.*o){}...Xstatic.void.dd
38aa0 5f 65 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 _enter(void.*d,struct.wl_data_de
38ac0 76 69 63 65 20 2a 64 64 2c 75 69 6e 74 33 32 5f 74 20 73 2c 73 74 72 75 63 74 20 77 6c 5f 73 75 vice.*dd,uint32_t.s,struct.wl_su
38ae0 72 66 61 63 65 20 2a 73 75 2c 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rface.*su,...I..................
38b00 20 20 20 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 77 6c 5f 66 69 78 65 64 5f 74 20 79 2c 73 74 72 ...wl_fixed_t.x,wl_fixed_t.y,str
38b20 75 63 74 20 77 6c 5f 64 61 74 61 5f 6f 66 66 65 72 20 2a 6f 29 7b 7d 00 00 00 39 73 74 61 74 69 uct.wl_data_offer.*o){}...9stati
38b40 63 20 76 6f 69 64 20 64 64 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 c.void.dd_leave(void.*d,struct.w
38b60 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 7b 7d 00 00 00 5f 73 74 61 74 69 63 20 76 l_data_device.*dd){}..._static.v
38b80 6f 69 64 20 64 64 5f 6d 6f 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f oid.dd_motion(void.*d,struct.wl_
38ba0 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 75 69 6e 74 33 32 5f 74 20 74 2c 77 6c 5f 66 69 data_device.*dd,uint32_t.t,wl_fi
38bc0 78 65 64 5f 74 20 78 2c 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 7b 7d 00 00 00 38 73 74 61 74 69 xed_t.x,wl_fixed_t.y){}...8stati
38be0 63 20 76 6f 69 64 20 64 64 5f 64 72 6f 70 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c c.void.dd_drop(void.*d,struct.wl
38c00 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 29 7b 7d 00 00 00 55 73 74 61 74 69 63 20 76 6f _data_device.*dd){}...Ustatic.vo
38c20 69 64 20 64 64 5f 73 65 6c 65 63 74 69 6f 6e 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 id.dd_selection(void.*d,struct.w
38c40 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 20 2a 64 64 2c 73 74 72 75 63 74 20 77 6c 5f 64 61 74 61 l_data_device.*dd,struct.wl_data
38c60 5f 6f 66 66 65 72 20 2a 6f 29 7b 7d 00 00 00 39 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 _offer.*o){}...9static.const.str
38c80 75 63 74 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6c 69 73 74 65 6e 65 72 20 64 64 5f 6c uct.wl_data_device_listener.dd_l
38ca0 69 73 74 65 6e 65 72 3d 7b 00 00 00 37 20 20 2e 64 61 74 61 5f 6f 66 66 65 72 3d 64 64 5f 6f 66 istener={...7...data_offer=dd_of
38cc0 66 65 72 2c 2e 65 6e 74 65 72 3d 64 64 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 64 64 5f 6c 65 fer,.enter=dd_enter,.leave=dd_le
38ce0 61 76 65 2c 00 00 00 39 20 20 2e 6d 6f 74 69 6f 6e 3d 64 64 5f 6d 6f 74 69 6f 6e 2c 2e 64 72 6f ave,...9...motion=dd_motion,.dro
38d00 70 3d 64 64 5f 64 72 6f 70 2c 2e 73 65 6c 65 63 74 69 6f 6e 3d 64 64 5f 73 65 6c 65 63 74 69 6f p=dd_drop,.selection=dd_selectio
38d20 6e 00 00 00 02 7d 3b 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 65 n....};.......Tstatic.void.ptr_e
38d40 6e 74 65 72 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a nter(void.*d,struct.wl_pointer.*
38d60 70 2c 75 69 6e 74 33 32 5f 74 20 73 2c 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a p,uint32_t.s,struct.wl_surface.*
38d80 73 75 2c 00 00 00 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 5f su,...1......................wl_
38da0 66 69 78 65 64 5f 74 20 78 2c 77 6c 5f 66 69 78 65 64 5f 74 20 79 29 7b 00 00 00 22 20 20 73 74 fixed_t.x,wl_fixed_t.y){..."..st
38dc0 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 20 61 2d 3e 70 74 72 5f 73 75 72 66 3d 73 75 3b 00 00 ruct.app.*a=d;.a->ptr_surf=su;..
38de0 00 32 20 20 69 6e 74 20 6d 78 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 78 29 2c 6d 79 .2..int.mx=wl_fixed_to_int(x),my
38e00 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b 00 00 00 2c 20 20 69 66 28 73 75 3d =wl_fixed_to_int(y);...,..if(su=
38e20 3d 61 2d 3e 66 70 2e 77 73 29 7b 61 2d 3e 66 70 2e 6d 78 3d 6d 78 3b 61 2d 3e 66 70 2e 6d 79 3d =a->fp.ws){a->fp.mx=mx;a->fp.my=
38e40 6d 79 3b 7d 00 00 00 1a 20 20 65 6c 73 65 7b 61 2d 3e 6d 78 3d 6d 78 3b 61 2d 3e 6d 79 3d 6d 79 my;}......else{a->mx=mx;a->my=my
38e60 3b 7d 00 00 00 01 7d 00 00 00 55 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6c 65 61 76 65 ;}....}...Ustatic.void.ptr_leave
38e80 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 75 69 (void.*d,struct.wl_pointer.*p,ui
38ea0 6e 74 33 32 5f 74 20 73 2c 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 7b nt32_t.s,struct.wl_surface.*su){
38ec0 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 27 20 20 69 66 28 61 ......struct.app.*a=d;...'..if(a
38ee0 2d 3e 70 74 72 5f 73 75 72 66 3d 3d 73 75 29 20 61 2d 3e 70 74 72 5f 73 75 72 66 3d 4e 55 4c 4c ->ptr_surf==su).a->ptr_surf=NULL
38f00 3b 00 00 00 01 7d 00 00 00 5a 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 6d 6f 74 69 6f 6e ;....}...Zstatic.void.ptr_motion
38f20 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 75 69 (void.*d,struct.wl_pointer.*p,ui
38f40 6e 74 33 32 5f 74 20 74 2c 77 6c 5f 66 69 78 65 64 5f 74 20 78 2c 77 6c 5f 66 69 78 65 64 5f 74 nt32_t.t,wl_fixed_t.x,wl_fixed_t
38f60 20 79 29 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 32 20 20 .y){......struct.app.*a=d;...2..
38f80 69 6e 74 20 6d 78 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 78 29 2c 6d 79 3d 77 6c 5f int.mx=wl_fixed_to_int(x),my=wl_
38fa0 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 79 29 3b 00 00 00 1c 20 20 69 66 28 61 2d 3e 70 74 72 5f fixed_to_int(y);......if(a->ptr_
38fc0 73 75 72 66 3d 3d 61 2d 3e 66 70 2e 77 73 29 7b 00 00 00 35 20 20 20 20 61 2d 3e 66 70 2e 6d 78 surf==a->fp.ws){...5....a->fp.mx
38fe0 3d 6d 78 3b 61 2d 3e 66 70 2e 6d 79 3d 6d 79 3b 66 70 5f 68 6f 76 65 72 28 61 2c 6d 78 2c 6d 79 =mx;a->fp.my=my;fp_hover(a,mx,my
39000 29 3b 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 14 20 20 61 2d 3e 6d 78 3d 6d 78 3b 61 );return;......}......a->mx=mx;a
39020 2d 3e 6d 79 3d 6d 79 3b 00 00 00 1e 20 20 69 66 28 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d ->my=my;......if(a->open_menu!=M
39040 45 4e 55 5f 4e 4f 4e 45 29 7b 00 00 00 26 20 20 20 20 69 6e 74 20 69 74 3d 69 74 65 6d 5f 61 74 ENU_NONE){...&....int.it=item_at
39060 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 6d 79 29 3b 00 00 00 41 20 20 20 20 69 66 28 69 (a,a->open_menu,my);...A....if(i
39080 74 21 3d 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 29 7b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 t!=a->hovered_item){a->hovered_i
390a0 74 65 6d 3d 69 74 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 03 20 20 7d tem=it;redraw(a);return;}......}
390c0 00 00 00 1d 20 20 69 66 28 6d 79 3e 3d 62 61 72 5f 79 28 61 29 29 20 72 65 64 72 61 77 28 61 29 ......if(my>=bar_y(a)).redraw(a)
390e0 3b 00 00 00 01 7d 00 00 00 4f 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 62 75 74 74 6f 6e ;....}...Ostatic.void.ptr_button
39100 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 75 69 (void.*d,struct.wl_pointer.*p,ui
39120 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 75 69 6e 74 33 32 5f 74 20 74 2c 00 00 00 34 20 20 20 nt32_t.serial,uint32_t.t,...4...
39140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 62 74 6e ....................uint32_t.btn
39160 2c 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 ,uint32_t.state){......struct.ap
39180 70 20 2a 61 3d 64 3b 00 00 00 34 20 20 69 66 28 73 74 61 74 65 21 3d 57 4c 5f 50 4f 49 4e 54 45 p.*a=d;...4..if(state!=WL_POINTE
391a0 52 5f 42 55 54 54 4f 4e 5f 53 54 41 54 45 5f 50 52 45 53 53 45 44 29 20 72 65 74 75 72 6e 3b 00 R_BUTTON_STATE_PRESSED).return;.
391c0 00 00 18 20 20 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 3d 73 65 72 69 61 6c 3b 00 00 00 42 20 .....a->last_serial=serial;...B.
391e0 20 69 66 28 61 2d 3e 70 74 72 5f 73 75 72 66 3d 3d 61 2d 3e 66 70 2e 77 73 29 7b 66 70 5f 63 6c .if(a->ptr_surf==a->fp.ws){fp_cl
39200 69 63 6b 28 61 2c 61 2d 3e 66 70 2e 6d 78 2c 61 2d 3e 66 70 2e 6d 79 29 3b 72 65 74 75 72 6e 3b ick(a,a->fp.mx,a->fp.my);return;
39220 7d 00 00 00 12 20 20 69 6e 74 20 62 79 3d 62 61 72 5f 79 28 61 29 3b 00 00 00 1e 20 20 69 66 28 }......int.by=bar_y(a);......if(
39240 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 21 3d 4d 45 4e 55 5f 4e 4f 4e 45 29 7b 00 00 00 29 20 20 20 a->open_menu!=MENU_NONE){...)...
39260 20 69 6e 74 20 69 74 3d 69 74 65 6d 5f 61 74 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 61 .int.it=item_at(a,a->open_menu,a
39280 2d 3e 6d 79 29 3b 00 00 00 33 20 20 20 20 69 66 28 69 74 3e 3d 30 29 7b 66 69 72 65 5f 69 74 65 ->my);...3....if(it>=0){fire_ite
392a0 6d 28 61 2c 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 2c 69 74 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 m(a,a->open_menu,it);return;}...
392c0 12 20 20 20 20 69 66 28 61 2d 3e 6d 79 3e 3d 62 79 29 7b 00 00 00 1b 20 20 20 20 20 20 66 6f 72 .....if(a->my>=by){..........for
392e0 28 69 6e 74 20 69 3d 30 3b 69 3c 32 3b 69 2b 2b 29 7b 00 00 00 24 20 20 20 20 20 20 20 20 69 6e (int.i=0;i<2;i++){...$........in
39300 74 20 62 78 3d 62 74 6e 5f 78 28 69 29 2c 62 77 3d 62 74 6e 5f 77 28 69 29 3b 00 00 00 5f 20 20 t.bx=btn_x(i),bw=btn_w(i);..._..
39320 20 20 20 20 20 20 69 66 28 61 2d 3e 6d 78 3e 3d 62 78 26 26 61 2d 3e 6d 78 3c 62 78 2b 62 77 29 ......if(a->mx>=bx&&a->mx<bx+bw)
39340 7b 61 2d 3e 6f 70 65 6e 5f 6d 65 6e 75 3d 28 4d 65 6e 75 49 64 29 69 3b 61 2d 3e 68 6f 76 65 72 {a->open_menu=(MenuId)i;a->hover
39360 65 64 5f 69 74 65 6d 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 ed_item=-1;redraw(a);return;}...
39380 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 3f 20 20 20 20 61 2d 3e 6f 70 65 6e .......}........}...?....a->open
393a0 5f 6d 65 6e 75 3d 4d 45 4e 55 5f 4e 4f 4e 45 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d _menu=MENU_NONE;a->hovered_item=
393c0 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 10 20 -1;redraw(a);return;......}.....
393e0 20 69 66 28 61 2d 3e 6d 79 3e 3d 62 79 29 7b 00 00 00 19 20 20 20 20 66 6f 72 28 69 6e 74 20 69 .if(a->my>=by){........for(int.i
39400 3d 30 3b 69 3c 32 3b 69 2b 2b 29 7b 00 00 00 22 20 20 20 20 20 20 69 6e 74 20 62 78 3d 62 74 6e =0;i<2;i++){..."......int.bx=btn
39420 5f 78 28 69 29 2c 62 77 3d 62 74 6e 5f 77 28 69 29 3b 00 00 00 5d 20 20 20 20 20 20 69 66 28 61 _x(i),bw=btn_w(i);...]......if(a
39440 2d 3e 6d 78 3e 3d 62 78 26 26 61 2d 3e 6d 78 3c 62 78 2b 62 77 29 7b 61 2d 3e 6f 70 65 6e 5f 6d ->mx>=bx&&a->mx<bx+bw){a->open_m
39460 65 6e 75 3d 28 4d 65 6e 75 49 64 29 69 3b 61 2d 3e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 enu=(MenuId)i;a->hovered_item=-1
39480 3b 72 65 64 72 61 77 28 61 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0b ;redraw(a);return;}........}....
394a0 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 03 20 20 7d 00 00 00 32 20 20 69 6e 74 20 63 78 3d 28 ....return;......}...2..int.cx=(
394c0 61 2d 3e 6d 78 2d 50 41 44 29 2f 63 65 6c 6c 5f 77 2c 63 79 3d 28 61 2d 3e 6d 79 2d 50 41 44 29 a->mx-PAD)/cell_w,cy=(a->my-PAD)
394e0 2f 63 65 6c 6c 5f 68 3b 00 00 00 18 20 20 69 6e 74 20 70 6f 73 3d 30 2c 63 6f 6c 3d 30 2c 72 6f /cell_h;......int.pos=0,col=0,ro
39500 77 3d 30 3b 00 00 00 1a 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 69 3c 74 6c 65 6e 3b 69 2b 2b w=0;......for(int.i=0;i<tlen;i++
39520 29 7b 00 00 00 2b 20 20 20 20 69 66 28 72 6f 77 3d 3d 63 79 26 26 63 6f 6c 3d 3d 63 78 29 7b 70 ){...+....if(row==cy&&col==cx){p
39540 6f 73 3d 69 3b 67 6f 74 6f 20 66 6f 75 6e 64 3b 7d 00 00 00 41 20 20 20 20 69 66 28 74 65 78 74 os=i;goto.found;}...A....if(text
39560 5b 69 5d 3d 3d 27 5c 6e 27 29 7b 69 66 28 72 6f 77 3d 3d 63 79 29 7b 70 6f 73 3d 69 3b 67 6f 74 [i]=='\n'){if(row==cy){pos=i;got
39580 6f 20 66 6f 75 6e 64 3b 7d 63 6f 6c 3d 30 3b 72 6f 77 2b 2b 3b 7d 00 00 00 0f 20 20 20 20 65 6c o.found;}col=0;row++;}........el
395a0 73 65 20 63 6f 6c 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 70 6f 73 3d 74 6c 65 6e 3b 00 se.col++;......}......pos=tlen;.
395c0 00 00 06 66 6f 75 6e 64 3a 00 00 00 25 20 20 63 75 72 73 6f 72 3d 70 6f 73 3b 73 65 6c 5f 61 6e ...found:...%..cursor=pos;sel_an
395e0 63 68 6f 72 3d 2d 31 3b 72 65 64 72 61 77 28 61 29 3b 00 00 00 01 7d 00 00 00 59 73 74 61 74 69 chor=-1;redraw(a);....}...Ystati
39600 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 c.void.ptr_axis(void.*d,struct.w
39620 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 75 69 6e 74 33 32 5f 74 20 74 2c 75 69 6e 74 33 32 5f 74 l_pointer.*p,uint32_t.t,uint32_t
39640 20 61 78 69 73 2c 77 6c 5f 66 69 78 65 64 5f 74 20 76 29 7b 00 00 00 12 20 20 73 74 72 75 63 74 .axis,wl_fixed_t.v){......struct
39660 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 25 20 20 69 66 28 61 2d 3e 70 74 72 5f 73 75 72 66 3d 3d .app.*a=d;...%..if(a->ptr_surf==
39680 61 2d 3e 66 70 2e 77 73 26 26 61 78 69 73 3d 3d 30 29 7b 00 00 00 2c 20 20 20 20 61 2d 3e 66 70 a->fp.ws&&axis==0){...,....a->fp
396a0 2e 73 63 72 6f 6c 6c 2b 3d 77 6c 5f 66 69 78 65 64 5f 74 6f 5f 69 6e 74 28 76 29 3e 30 3f 33 3a .scroll+=wl_fixed_to_int(v)>0?3:
396c0 2d 33 3b 00 00 00 26 20 20 20 20 69 66 28 61 2d 3e 66 70 2e 73 63 72 6f 6c 6c 3c 30 29 20 61 2d -3;...&....if(a->fp.scroll<0).a-
396e0 3e 66 70 2e 73 63 72 6f 6c 6c 3d 30 3b 00 00 00 11 20 20 20 20 72 65 64 72 61 77 5f 66 70 28 61 >fp.scroll=0;........redraw_fp(a
39700 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 35 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 );......}....}...5static.void.pt
39720 72 5f 66 72 61 6d 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 r_frame(void.*d,struct.wl_pointe
39740 72 20 2a 70 29 7b 7d 00 00 00 48 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 73 5f r.*p){}...Hstatic.void.ptr_axis_
39760 73 6f 75 72 63 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 6e 74 65 72 source(void.*d,struct.wl_pointer
39780 20 2a 70 2c 75 69 6e 74 33 32 5f 74 20 73 72 63 29 7b 7d 00 00 00 52 73 74 61 74 69 63 20 76 6f .*p,uint32_t.src){}...Rstatic.vo
397a0 69 64 20 70 74 72 5f 61 78 69 73 5f 73 74 6f 70 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 id.ptr_axis_stop(void.*d,struct.
397c0 77 6c 5f 70 6f 69 6e 74 65 72 20 2a 70 2c 75 69 6e 74 33 32 5f 74 20 74 2c 75 69 6e 74 33 32 5f wl_pointer.*p,uint32_t.t,uint32_
397e0 74 20 61 78 69 73 29 7b 7d 00 00 00 58 73 74 61 74 69 63 20 76 6f 69 64 20 70 74 72 5f 61 78 69 t.axis){}...Xstatic.void.ptr_axi
39800 73 5f 64 69 73 63 72 65 74 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 70 6f 69 s_discrete(void.*d,struct.wl_poi
39820 6e 74 65 72 20 2a 70 2c 75 69 6e 74 33 32 5f 74 20 61 78 69 73 2c 69 6e 74 33 32 5f 74 20 64 69 nter.*p,uint32_t.axis,int32_t.di
39840 73 63 29 7b 7d 00 00 00 36 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f sc){}...6static.const.struct.wl_
39860 70 6f 69 6e 74 65 72 5f 6c 69 73 74 65 6e 65 72 20 70 74 72 5f 6c 69 73 74 65 6e 65 72 3d 7b 00 pointer_listener.ptr_listener={.
39880 00 00 59 20 20 2e 65 6e 74 65 72 3d 70 74 72 5f 65 6e 74 65 72 2c 2e 6c 65 61 76 65 3d 70 74 72 ..Y...enter=ptr_enter,.leave=ptr
398a0 5f 6c 65 61 76 65 2c 2e 6d 6f 74 69 6f 6e 3d 70 74 72 5f 6d 6f 74 69 6f 6e 2c 2e 62 75 74 74 6f _leave,.motion=ptr_motion,.butto
398c0 6e 3d 70 74 72 5f 62 75 74 74 6f 6e 2c 2e 61 78 69 73 3d 70 74 72 5f 61 78 69 73 2c 00 00 00 49 n=ptr_button,.axis=ptr_axis,...I
398e0 20 20 2e 66 72 61 6d 65 3d 70 74 72 5f 66 72 61 6d 65 2c 2e 61 78 69 73 5f 73 6f 75 72 63 65 3d ...frame=ptr_frame,.axis_source=
39900 70 74 72 5f 61 78 69 73 5f 73 6f 75 72 63 65 2c 2e 61 78 69 73 5f 73 74 6f 70 3d 70 74 72 5f 61 ptr_axis_source,.axis_stop=ptr_a
39920 78 69 73 5f 73 74 6f 70 2c 00 00 00 23 20 20 2e 61 78 69 73 5f 64 69 73 63 72 65 74 65 3d 70 74 xis_stop,...#...axis_discrete=pt
39940 72 5f 61 78 69 73 5f 64 69 73 63 72 65 74 65 2c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 5c 73 74 r_axis_discrete,....};.......\st
39960 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6b 65 79 6d 61 70 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 atic.void.kb_keymap(void.*d,stru
39980 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 75 69 6e 74 33 32 5f 74 20 66 6d 74 2c ct.wl_keyboard.*kb,uint32_t.fmt,
399a0 69 6e 74 33 32 5f 74 20 66 64 2c 75 69 6e 74 33 32 5f 74 20 73 69 7a 65 29 7b 00 00 00 12 20 20 int32_t.fd,uint32_t.size){......
399c0 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 3e 20 20 69 66 28 66 6d 74 21 3d 57 4c struct.app.*a=d;...>..if(fmt!=WL
399e0 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 58 4b 42 5f 56 31 29 7b _KEYBOARD_KEYMAP_FORMAT_XKB_V1){
39a00 63 6c 6f 73 65 28 66 64 29 3b 72 65 74 75 72 6e 3b 7d 00 00 00 3f 20 20 63 68 61 72 20 2a 73 3d close(fd);return;}...?..char.*s=
39a20 6d 6d 61 70 28 4e 55 4c 4c 2c 73 69 7a 65 2c 50 52 4f 54 5f 52 45 41 44 2c 4d 41 50 5f 50 52 49 mmap(NULL,size,PROT_READ,MAP_PRI
39a40 56 41 54 45 2c 66 64 2c 30 29 3b 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1b 20 20 69 66 28 73 3d VATE,fd,0);close(fd);......if(s=
39a60 3d 4d 41 50 5f 46 41 49 4c 45 44 29 20 72 65 74 75 72 6e 3b 00 00 00 46 20 20 69 66 28 61 2d 3e =MAP_FAILED).return;...F..if(a->
39a80 78 6b 62 5f 73 74 61 74 65 29 20 7b 78 6b 62 5f 73 74 61 74 65 5f 75 6e 72 65 66 28 61 2d 3e 78 xkb_state).{xkb_state_unref(a->x
39aa0 6b 62 5f 73 74 61 74 65 29 3b 20 61 2d 3e 78 6b 62 5f 73 74 61 74 65 3d 4e 55 4c 4c 3b 7d 00 00 kb_state);.a->xkb_state=NULL;}..
39ac0 00 48 20 20 69 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 7b 78 6b 62 5f 6b 65 79 6d 61 70 .H..if(a->xkb_keymap){xkb_keymap
39ae0 5f 75 6e 72 65 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 3b 61 2d 3e 78 6b 62 5f 6b 65 79 _unref(a->xkb_keymap);a->xkb_key
39b00 6d 61 70 3d 4e 55 4c 4c 3b 7d 00 00 00 52 20 20 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 3d 78 6b map=NULL;}...R..a->xkb_keymap=xk
39b20 62 5f 6b 65 79 6d 61 70 5f 6e 65 77 5f 66 72 6f 6d 5f 73 74 72 69 6e 67 28 61 2d 3e 78 6b 62 5f b_keymap_new_from_string(a->xkb_
39b40 63 74 78 2c 73 2c 58 4b 42 5f 4b 45 59 4d 41 50 5f 46 4f 52 4d 41 54 5f 54 45 58 54 5f 56 31 2c ctx,s,XKB_KEYMAP_FORMAT_TEXT_V1,
39b60 00 00 00 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...I............................
39b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4b 42 5f 4b 45 59 4d 41 50 5f 43 4f 4d 50 49 ................XKB_KEYMAP_COMPI
39ba0 4c 45 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 11 20 20 6d 75 6e 6d 61 70 28 73 2c 73 69 7a 65 LE_NO_FLAGS);......munmap(s,size
39bc0 29 3b 00 00 00 3e 20 20 69 66 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d 61 70 29 20 61 2d 3e 78 6b 62 );...>..if(a->xkb_keymap).a->xkb
39be0 5f 73 74 61 74 65 3d 78 6b 62 5f 73 74 61 74 65 5f 6e 65 77 28 61 2d 3e 78 6b 62 5f 6b 65 79 6d _state=xkb_state_new(a->xkb_keym
39c00 61 70 29 3b 00 00 00 01 7d 00 00 00 6a 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 65 6e 74 65 ap);....}...jstatic.void.kb_ente
39c20 72 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 r(void.*d,struct.wl_keyboard.*kb
39c40 2c 75 69 6e 74 33 32 5f 74 20 73 2c 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 ,uint32_t.s,struct.wl_surface.*s
39c60 75 2c 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 6b 29 7b 7d 00 00 00 56 73 74 61 74 69 u,struct.wl_array.*k){}...Vstati
39c80 63 20 76 6f 69 64 20 6b 62 5f 6c 65 61 76 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 c.void.kb_leave(void.*d,struct.w
39ca0 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 75 69 6e 74 33 32 5f 74 20 73 2c 73 74 72 75 63 74 l_keyboard.*kb,uint32_t.s,struct
39cc0 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 29 7b 00 00 00 54 20 20 73 74 72 75 63 74 20 61 70 .wl_surface.*su){...T..struct.ap
39ce0 70 20 2a 61 3d 64 3b 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 30 7d 3b p.*a=d;struct.itimerspec.ts={0};
39d00 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 timerfd_settime(a->repeat_fd,0,&
39d20 74 73 2c 4e 55 4c 4c 29 3b 00 00 00 01 7d 00 00 00 4d 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 ts,NULL);....}...Mstatic.void.kb
39d40 5f 6b 65 79 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 _key(void.*d,struct.wl_keyboard.
39d60 2a 6b 62 2c 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 2c 75 69 6e 74 33 32 5f 74 20 74 2c 00 *kb,uint32_t.serial,uint32_t.t,.
39d80 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 6b ..0...................uint32_t.k
39da0 65 79 2c 75 69 6e 74 33 32 5f 74 20 73 74 61 74 65 29 7b 00 00 00 28 20 20 73 74 72 75 63 74 20 ey,uint32_t.state){...(..struct.
39dc0 61 70 70 20 2a 61 3d 64 3b 61 2d 3e 6c 61 73 74 5f 73 65 72 69 61 6c 3d 73 65 72 69 61 6c 3b 00 app.*a=d;a->last_serial=serial;.
39de0 00 00 2b 20 20 69 66 28 73 74 61 74 65 3d 3d 57 4c 5f 4b 45 59 42 4f 41 52 44 5f 4b 45 59 5f 53 ..+..if(state==WL_KEYBOARD_KEY_S
39e00 54 41 54 45 5f 50 52 45 53 53 45 44 29 7b 00 00 00 29 20 20 20 20 70 72 6f 63 65 73 73 5f 6b 65 TATE_PRESSED){...)....process_ke
39e20 79 28 61 2c 6b 65 79 29 3b 61 2d 3e 72 65 70 65 61 74 5f 6b 65 79 3d 6b 65 79 3b 00 00 00 19 20 y(a,key);a->repeat_key=key;.....
39e40 20 20 20 69 66 28 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 3e 30 29 7b 00 00 00 1c 20 20 20 20 ...if(a->repeat_rate>0){........
39e60 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 00 00 00 5d 20 20 20 20 ..struct.itimerspec.ts={...]....
39e80 20 20 20 20 2e 69 74 5f 76 61 6c 75 65 20 20 20 3d 7b 2e 74 76 5f 73 65 63 3d 61 2d 3e 72 65 70 .....it_value...={.tv_sec=a->rep
39ea0 65 61 74 5f 64 65 6c 61 79 2f 31 30 30 30 2c 2e 74 76 5f 6e 73 65 63 3d 28 61 2d 3e 72 65 70 65 eat_delay/1000,.tv_nsec=(a->repe
39ec0 61 74 5f 64 65 6c 61 79 25 31 30 30 30 29 2a 31 30 30 30 30 30 30 4c 7d 2c 00 00 00 45 20 20 20 at_delay%1000)*1000000L},...E...
39ee0 20 20 20 20 20 2e 69 74 5f 69 6e 74 65 72 76 61 6c 3d 7b 2e 74 76 5f 73 65 63 3d 30 2c 2e 74 76 ......it_interval={.tv_sec=0,.tv
39f00 5f 6e 73 65 63 3d 31 30 30 30 30 30 30 30 30 30 4c 2f 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 _nsec=1000000000L/a->repeat_rate
39f20 7d 2c 00 00 00 08 20 20 20 20 20 20 7d 3b 00 00 00 2f 20 20 20 20 20 20 74 69 6d 65 72 66 64 5f },..........};.../......timerfd_
39f40 73 65 74 74 69 6d 65 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 settime(a->repeat_fd,0,&ts,NULL)
39f60 3b 00 00 00 05 20 20 20 20 7d 00 00 00 4d 20 20 7d 20 65 6c 73 65 20 7b 73 74 72 75 63 74 20 69 ;........}...M..}.else.{struct.i
39f80 74 69 6d 65 72 73 70 65 63 20 74 73 3d 7b 30 7d 3b 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 timerspec.ts={0};timerfd_settime
39fa0 28 61 2d 3e 72 65 70 65 61 74 5f 66 64 2c 30 2c 26 74 73 2c 4e 55 4c 4c 29 3b 7d 00 00 00 01 7d (a->repeat_fd,0,&ts,NULL);}....}
39fc0 00 00 00 50 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 6d 6f 64 69 66 69 65 72 73 28 76 6f 69 ...Pstatic.void.kb_modifiers(voi
39fe0 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 75 69 6e 74 d.*d,struct.wl_keyboard.*kb,uint
3a000 33 32 5f 74 20 73 2c 75 69 6e 74 33 32 5f 74 20 64 65 70 2c 00 00 00 44 20 20 20 20 20 20 20 20 32_t.s,uint32_t.dep,...D........
3a020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 6c 61 74 2c 75 69 .................uint32_t.lat,ui
3a040 6e 74 33 32 5f 74 20 6c 6f 63 6b 65 64 2c 75 69 6e 74 33 32 5f 74 20 67 72 70 29 7b 00 00 00 5d nt32_t.locked,uint32_t.grp){...]
3a060 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 69 66 28 61 2d 3e 78 6b 62 5f 73 74 61 74 ..struct.app.*a=d;if(a->xkb_stat
3a080 65 29 78 6b 62 5f 73 74 61 74 65 5f 75 70 64 61 74 65 5f 6d 61 73 6b 28 61 2d 3e 78 6b 62 5f 73 e)xkb_state_update_mask(a->xkb_s
3a0a0 74 61 74 65 2c 64 65 70 2c 6c 61 74 2c 6c 6f 63 6b 65 64 2c 30 2c 30 2c 67 72 70 29 3b 00 00 00 tate,dep,lat,locked,0,0,grp);...
3a0c0 01 7d 00 00 00 51 73 74 61 74 69 63 20 76 6f 69 64 20 6b 62 5f 72 65 70 65 61 74 28 76 6f 69 64 .}...Qstatic.void.kb_repeat(void
3a0e0 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 20 2a 6b 62 2c 69 6e 74 33 32 .*d,struct.wl_keyboard.*kb,int32
3a100 5f 74 20 72 61 74 65 2c 69 6e 74 33 32 5f 74 20 64 65 6c 61 79 29 7b 00 00 00 3c 20 20 73 74 72 _t.rate,int32_t.delay){...<..str
3a120 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 61 2d 3e 72 65 70 65 61 74 5f 72 61 74 65 3d 72 61 74 65 uct.app.*a=d;a->repeat_rate=rate
3a140 3b 61 2d 3e 72 65 70 65 61 74 5f 64 65 6c 61 79 3d 64 65 6c 61 79 3b 00 00 00 01 7d 00 00 00 3c ;a->repeat_delay=delay;....}...<
3a160 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f static.const.struct.wl_keyboard_
3a180 6c 69 73 74 65 6e 65 72 20 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 6e 65 72 3d 7b 00 00 00 40 listener.keyboard_listener={...@
3a1a0 20 20 2e 6b 65 79 6d 61 70 3d 6b 62 5f 6b 65 79 6d 61 70 2c 2e 65 6e 74 65 72 3d 6b 62 5f 65 6e ...keymap=kb_keymap,.enter=kb_en
3a1c0 74 65 72 2c 2e 6c 65 61 76 65 3d 6b 62 5f 6c 65 61 76 65 2c 2e 6b 65 79 3d 6b 62 5f 6b 65 79 2c ter,.leave=kb_leave,.key=kb_key,
3a1e0 00 00 00 30 20 20 2e 6d 6f 64 69 66 69 65 72 73 3d 6b 62 5f 6d 6f 64 69 66 69 65 72 73 2c 2e 72 ...0...modifiers=kb_modifiers,.r
3a200 65 70 65 61 74 5f 69 6e 66 6f 3d 6b 62 5f 72 65 70 65 61 74 00 00 00 02 7d 3b 00 00 00 00 00 00 epeat_info=kb_repeat....};......
3a220 00 42 73 74 61 74 69 63 20 76 6f 69 64 20 73 65 61 74 5f 63 61 70 73 28 76 6f 69 64 20 2a 64 2c .Bstatic.void.seat_caps(void.*d,
3a240 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 2a 73 65 61 74 2c 75 69 6e 74 33 32 5f 74 20 63 61 struct.wl_seat.*seat,uint32_t.ca
3a260 70 73 29 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 37 20 20 ps){......struct.app.*a=d;...7..
3a280 69 66 28 28 63 61 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 if((caps&WL_SEAT_CAPABILITY_KEYB
3a2a0 4f 41 52 44 29 26 26 21 61 2d 3e 6b 65 79 62 6f 61 72 64 29 7b 00 00 00 2b 20 20 20 20 61 2d 3e OARD)&&!a->keyboard){...+....a->
3a2c0 6b 65 79 62 6f 61 72 64 3d 77 6c 5f 73 65 61 74 5f 67 65 74 5f 6b 65 79 62 6f 61 72 64 28 73 65 keyboard=wl_seat_get_keyboard(se
3a2e0 61 74 29 3b 00 00 00 3f 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 61 64 64 5f 6c 69 73 74 at);...?....wl_keyboard_add_list
3a300 65 6e 65 72 28 61 2d 3e 6b 65 79 62 6f 61 72 64 2c 26 6b 65 79 62 6f 61 72 64 5f 6c 69 73 74 65 ener(a->keyboard,&keyboard_liste
3a320 6e 65 72 2c 61 29 3b 00 00 00 3e 20 20 7d 20 65 6c 73 65 20 69 66 28 21 28 63 61 70 73 26 57 4c ner,a);...>..}.else.if(!(caps&WL
3a340 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 4b 45 59 42 4f 41 52 44 29 26 26 61 2d 3e 6b _SEAT_CAPABILITY_KEYBOARD)&&a->k
3a360 65 79 62 6f 61 72 64 29 7b 00 00 00 36 20 20 20 20 77 6c 5f 6b 65 79 62 6f 61 72 64 5f 72 65 6c eyboard){...6....wl_keyboard_rel
3a380 65 61 73 65 28 61 2d 3e 6b 65 79 62 6f 61 72 64 29 3b 61 2d 3e 6b 65 79 62 6f 61 72 64 3d 4e 55 ease(a->keyboard);a->keyboard=NU
3a3a0 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 35 20 20 69 66 28 28 63 61 70 73 26 57 4c 5f 53 45 41 54 LL;......}...5..if((caps&WL_SEAT
3a3c0 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 26 26 21 61 2d 3e 70 6f 69 6e 74 65 _CAPABILITY_POINTER)&&!a->pointe
3a3e0 72 29 7b 00 00 00 29 20 20 20 20 61 2d 3e 70 6f 69 6e 74 65 72 3d 77 6c 5f 73 65 61 74 5f 67 65 r){...)....a->pointer=wl_seat_ge
3a400 74 5f 70 6f 69 6e 74 65 72 28 73 65 61 74 29 3b 00 00 00 38 20 20 20 20 77 6c 5f 70 6f 69 6e 74 t_pointer(seat);...8....wl_point
3a420 65 72 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 70 6f 69 6e 74 65 72 2c 26 70 74 72 5f er_add_listener(a->pointer,&ptr_
3a440 6c 69 73 74 65 6e 65 72 2c 61 29 3b 00 00 00 3c 20 20 7d 20 65 6c 73 65 20 69 66 28 21 28 63 61 listener,a);...<..}.else.if(!(ca
3a460 70 73 26 57 4c 5f 53 45 41 54 5f 43 41 50 41 42 49 4c 49 54 59 5f 50 4f 49 4e 54 45 52 29 26 26 ps&WL_SEAT_CAPABILITY_POINTER)&&
3a480 61 2d 3e 70 6f 69 6e 74 65 72 29 7b 00 00 00 33 20 20 20 20 77 6c 5f 70 6f 69 6e 74 65 72 5f 72 a->pointer){...3....wl_pointer_r
3a4a0 65 6c 65 61 73 65 28 61 2d 3e 70 6f 69 6e 74 65 72 29 3b 61 2d 3e 70 6f 69 6e 74 65 72 3d 4e 55 elease(a->pointer);a->pointer=NU
3a4c0 4c 4c 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 73 LL;......}....}...Fstatic.void.s
3a4e0 65 61 74 5f 6e 61 6d 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 20 eat_name(void.*d,struct.wl_seat.
3a500 2a 73 65 61 74 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29 7b 7d 00 00 00 5d 73 74 61 *seat,const.char.*name){}...]sta
3a520 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 73 65 61 74 5f 6c 69 73 74 65 6e 65 tic.const.struct.wl_seat_listene
3a540 72 20 73 65 61 74 5f 6c 69 73 74 65 6e 65 72 3d 7b 2e 63 61 70 61 62 69 6c 69 74 69 65 73 3d 73 r.seat_listener={.capabilities=s
3a560 65 61 74 5f 63 61 70 73 2c 2e 6e 61 6d 65 3d 73 65 61 74 5f 6e 61 6d 65 7d 3b 00 00 00 00 00 00 eat_caps,.name=seat_name};......
3a580 00 5f 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 ._static.void.reg_global(void.*d
3a5a0 2c 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 75 69 6e 74 33 32 5f 74 20 ,struct.wl_registry.*r,uint32_t.
3a5c0 69 64 2c 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 66 61 63 65 2c 75 69 6e 74 33 32 5f 74 20 76 29 id,const.char.*iface,uint32_t.v)
3a5e0 7b 00 00 00 12 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 3d 64 3b 00 00 00 6e 20 20 69 66 20 {......struct.app.*a=d;...n..if.
3a600 20 20 20 20 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f ....(!strcmp(iface,"wl_composito
3a620 72 22 29 29 20 20 20 20 20 20 20 20 20 20 20 61 2d 3e 63 6f 6d 70 3d 77 6c 5f 72 65 67 69 73 74 r"))...........a->comp=wl_regist
3a640 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 ry_bind(r,id,&wl_compositor_inte
3a660 72 66 61 63 65 2c 34 29 3b 00 00 00 67 20 20 65 6c 73 65 20 69 66 28 21 73 74 72 63 6d 70 28 69 rface,4);...g..else.if(!strcmp(i
3a680 66 61 63 65 2c 22 77 6c 5f 73 68 6d 22 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 face,"wl_shm")).................
3a6a0 20 61 2d 3e 73 68 6d 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 69 64 2c 26 .a->shm.=wl_registry_bind(r,id,&
3a6c0 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 9c 20 20 65 6c 73 65 20 69 wl_shm_interface,1);......else.i
3a6e0 66 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 f(!strcmp(iface,"xdg_wm_base")).
3a700 20 20 20 20 20 20 20 20 20 20 20 7b 61 2d 3e 77 6d 20 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f ...........{a->wm..=wl_registry_
3a720 62 69 6e 64 28 72 2c 69 64 2c 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 bind(r,id,&xdg_wm_base_interface
3a740 2c 31 29 3b 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e ,1);xdg_wm_base_add_listener(a->
3a760 77 6d 2c 26 77 6d 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 7d 00 00 00 98 20 20 65 6c 73 65 20 69 wm,&wm_listener,a);}......else.i
3a780 66 28 21 73 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 73 65 61 74 22 29 29 20 20 20 20 20 f(!strcmp(iface,"wl_seat")).....
3a7a0 20 20 20 20 20 20 20 20 20 20 20 7b 61 2d 3e 73 65 61 74 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f ...........{a->seat=wl_registry_
3a7c0 62 69 6e 64 28 72 2c 69 64 2c 26 77 6c 5f 73 65 61 74 5f 69 6e 74 65 72 66 61 63 65 2c 35 29 3b bind(r,id,&wl_seat_interface,5);
3a7e0 77 6c 5f 73 65 61 74 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 73 65 61 74 2c 26 73 65 wl_seat_add_listener(a->seat,&se
3a800 61 74 5f 6c 69 73 74 65 6e 65 72 2c 61 29 3b 7d 00 00 00 77 20 20 65 6c 73 65 20 69 66 28 21 73 at_listener,a);}...w..else.if(!s
3a820 74 72 63 6d 70 28 69 66 61 63 65 2c 22 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 trcmp(iface,"wl_data_device_mana
3a840 67 65 72 22 29 29 20 20 61 2d 3e 64 64 6d 20 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 ger"))..a->ddm.=wl_registry_bind
3a860 28 72 2c 69 64 2c 26 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 67 65 72 5f 69 6e (r,id,&wl_data_device_manager_in
3a880 74 65 72 66 61 63 65 2c 33 29 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 terface,3);....}...Cstatic.void.
3a8a0 72 65 67 5f 72 65 6d 6f 76 65 28 76 6f 69 64 20 2a 64 2c 73 74 72 75 63 74 20 77 6c 5f 72 65 67 reg_remove(void.*d,struct.wl_reg
3a8c0 69 73 74 72 79 20 2a 72 2c 75 69 6e 74 33 32 5f 74 20 69 64 29 7b 7d 00 00 00 65 73 74 61 74 69 istry.*r,uint32_t.id){}...estati
3a8e0 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 c.const.struct.wl_registry_liste
3a900 6e 65 72 20 72 65 67 5f 6c 69 73 74 65 6e 65 72 3d 7b 2e 67 6c 6f 62 61 6c 3d 72 65 67 5f 67 6c ner.reg_listener={.global=reg_gl
3a920 6f 62 61 6c 2c 2e 67 6c 6f 62 61 6c 5f 72 65 6d 6f 76 65 3d 72 65 67 5f 72 65 6d 6f 76 65 7d 3b obal,.global_remove=reg_remove};
3a940 00 00 00 00 00 00 00 0f 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 7b 00 00 00 53 20 20 69 66 28 ........int.main(void){...S..if(
3a960 21 6c 6f 61 64 5f 66 6f 6e 74 28 29 29 7b 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 66 61 !load_font()){fprintf(stderr,"fa
3a980 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 66 6f 6e 74 3a 20 25 73 5c 6e 22 2c 46 4f 4e 54 5f 4e 41 iled.to.load.font:.%s\n",FONT_NA
3a9a0 4d 45 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 13 20 20 73 74 72 75 63 74 20 61 ME);return.1;}..........struct.a
3a9c0 70 70 20 61 3d 7b 30 7d 3b 00 00 00 12 20 20 61 2e 77 3d 36 34 30 3b 61 2e 68 3d 34 38 30 3b 00 pp.a={0};......a.w=640;a.h=480;.
3a9e0 00 00 26 20 20 61 2e 72 65 70 65 61 74 5f 72 61 74 65 3d 32 35 3b 61 2e 72 65 70 65 61 74 5f 64 ..&..a.repeat_rate=25;a.repeat_d
3aa00 65 6c 61 79 3d 34 30 30 3b 00 00 00 2a 20 20 61 2e 6f 70 65 6e 5f 6d 65 6e 75 3d 4d 45 4e 55 5f elay=400;...*..a.open_menu=MENU_
3aa20 4e 4f 4e 45 3b 61 2e 68 6f 76 65 72 65 64 5f 69 74 65 6d 3d 2d 31 3b 00 00 00 23 20 20 61 2e 66 NONE;a.hovered_item=-1;...#..a.f
3aa40 70 2e 73 65 6c 65 63 74 65 64 3d 2d 31 3b 61 2e 66 70 2e 68 6f 76 65 72 65 64 3d 2d 31 3b 00 00 p.selected=-1;a.fp.hovered=-1;..
3aa60 00 00 00 00 00 32 20 20 61 2e 78 6b 62 5f 63 74 78 3d 78 6b 62 5f 63 6f 6e 74 65 78 74 5f 6e 65 .....2..a.xkb_ctx=xkb_context_ne
3aa80 77 28 58 4b 42 5f 43 4f 4e 54 45 58 54 5f 4e 4f 5f 46 4c 41 47 53 29 3b 00 00 00 44 20 20 69 66 w(XKB_CONTEXT_NO_FLAGS);...D..if
3aaa0 28 21 61 2e 78 6b 62 5f 63 74 78 29 7b 66 70 75 74 73 28 22 78 6b 62 5f 63 6f 6e 74 65 78 74 5f (!a.xkb_ctx){fputs("xkb_context_
3aac0 6e 65 77 20 66 61 69 6c 65 64 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e 20 31 3b 7d new.failed\n",stderr);return.1;}
3aae0 00 00 00 00 00 00 00 47 20 20 61 2e 72 65 70 65 61 74 5f 66 64 3d 74 69 6d 65 72 66 64 5f 63 72 .......G..a.repeat_fd=timerfd_cr
3ab00 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 54 46 44 5f 43 4c 4f 45 58 45 43 eate(CLOCK_MONOTONIC,TFD_CLOEXEC
3ab20 7c 54 46 44 5f 4e 4f 4e 42 4c 4f 43 4b 29 3b 00 00 00 37 20 20 69 66 28 61 2e 72 65 70 65 61 74 |TFD_NONBLOCK);...7..if(a.repeat
3ab40 5f 66 64 3c 30 29 7b 70 65 72 72 6f 72 28 22 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 22 29 3b _fd<0){perror("timerfd_create");
3ab60 72 65 74 75 72 6e 20 31 3b 7d 00 00 00 00 00 00 00 1f 20 20 61 2e 64 3d 77 6c 5f 64 69 73 70 6c return.1;}..........a.d=wl_displ
3ab80 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 49 20 20 69 66 28 21 61 2e 64 29 7b ay_connect(NULL);...I..if(!a.d){
3aba0 66 70 75 74 73 28 22 63 61 6e 6e 6f 74 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 fputs("cannot.connect.to.Wayland
3abc0 20 64 69 73 70 6c 61 79 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e 20 31 3b 7d 00 00 .display\n",stderr);return.1;}..
3abe0 00 00 00 00 00 25 20 20 61 2e 72 65 67 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 .....%..a.reg=wl_display_get_reg
3ac00 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 33 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 istry(a.d);...3..wl_registry_add
3ac20 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 26 72 65 67 5f 6c 69 73 74 65 6e 65 72 2c 26 61 _listener(a.reg,&reg_listener,&a
3ac40 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 );......wl_display_roundtrip(a.d
3ac60 29 3b 00 00 00 00 00 00 00 5a 20 20 69 66 28 21 61 2e 63 6f 6d 70 7c 7c 21 61 2e 73 68 6d 7c 7c );.......Z..if(!a.comp||!a.shm||
3ac80 21 61 2e 77 6d 7c 7c 21 61 2e 73 65 61 74 29 7b 66 70 75 74 73 28 22 6d 69 73 73 69 6e 67 20 57 !a.wm||!a.seat){fputs("missing.W
3aca0 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 2c 73 74 64 65 72 72 29 3b 72 65 74 75 72 6e ayland.globals\n",stderr);return
3acc0 20 31 3b 7d 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 .1;}......wl_display_roundtrip(a
3ace0 2e 64 29 3b 00 00 00 00 00 00 00 14 20 20 69 66 28 61 2e 64 64 6d 26 26 61 2e 73 65 61 74 29 7b .d);..........if(a.ddm&&a.seat){
3ad00 00 00 00 3e 20 20 20 20 61 2e 64 64 3d 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 6d 61 6e 61 ...>....a.dd=wl_data_device_mana
3ad20 67 65 72 5f 67 65 74 5f 64 61 74 61 5f 64 65 76 69 63 65 28 61 2e 64 64 6d 2c 61 2e 73 65 61 74 ger_get_data_device(a.ddm,a.seat
3ad40 29 3b 00 00 00 36 20 20 20 20 77 6c 5f 64 61 74 61 5f 64 65 76 69 63 65 5f 61 64 64 5f 6c 69 73 );...6....wl_data_device_add_lis
3ad60 74 65 6e 65 72 28 61 2e 64 64 2c 26 64 64 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 00 03 tener(a.dd,&dd_listener,&a);....
3ad80 20 20 7d 00 00 00 00 00 00 00 2c 20 20 61 2e 77 73 3d 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f ..}.......,..a.ws=wl_compositor_
3ada0 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 2e 20 20 61 2e 78 create_surface(a.comp);......a.x
3adc0 73 3d 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e s=xdg_wm_base_get_xdg_surface(a.
3ade0 77 6d 2c 61 2e 77 73 29 3b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c wm,a.ws);...1..xdg_surface_add_l
3ae00 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 26 78 73 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 istener(a.xs,&xs_listener,&a);..
3ae20 00 26 20 20 61 2e 78 74 3d 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 .&..a.xt=xdg_surface_get_topleve
3ae40 6c 28 61 2e 78 73 29 3b 00 00 00 32 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c l(a.xs);...2..xdg_toplevel_add_l
3ae60 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 26 78 74 5f 6c 69 73 74 65 6e 65 72 2c 26 61 29 3b 00 00 istener(a.xt,&xt_listener,&a);..
3ae80 00 26 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c .&..xdg_toplevel_set_title(a.xt,
3aea0 22 77 6c 65 64 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 "wled");......wl_surface_commit(
3aec0 61 2e 77 73 29 3b 00 00 00 00 00 00 00 16 20 20 77 68 69 6c 65 28 21 61 2e 63 6f 6e 66 69 67 75 a.ws);..........while(!a.configu
3aee0 72 65 64 29 00 00 00 2b 20 20 20 20 69 66 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 red)...+....if(wl_display_dispat
3af00 63 68 28 61 2e 64 29 3d 3d 2d 31 29 20 62 72 65 61 6b 3b 00 00 00 00 00 00 00 23 20 20 69 6e 74 ch(a.d)==-1).break;.......#..int
3af20 20 77 6c 5f 66 64 3d 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 3b 00 00 .wl_fd=wl_display_get_fd(a.d);..
3af40 00 0b 20 20 77 68 69 6c 65 28 31 29 7b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f ....while(1){........wl_display_
3af60 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 flush(a.d);........struct.pollfd
3af80 20 66 64 73 5b 32 5d 3d 7b 00 00 00 27 20 20 20 20 20 20 7b 2e 66 64 3d 77 6c 5f 66 64 2c 20 20 .fds[2]={...'......{.fd=wl_fd,..
3afa0 20 20 20 20 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 00 00 00 27 20 20 20 20 20 20 7b 2e .....events=POLLIN},...'......{.
3afc0 66 64 3d 61 2e 72 65 70 65 61 74 5f 66 64 2c 2e 65 76 65 6e 74 73 3d 50 4f 4c 4c 49 4e 7d 2c 00 fd=a.repeat_fd,.events=POLLIN},.
3afe0 00 00 06 20 20 20 20 7d 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 72 65 74 3d 70 6f 6c 6c 28 66 64 .......};........int.ret=poll(fd
3b000 73 2c 32 2c 2d 31 29 3b 00 00 00 2e 20 20 20 20 69 66 28 72 65 74 3c 30 29 7b 69 66 28 65 72 72 s,2,-1);........if(ret<0){if(err
3b020 6e 6f 3d 3d 45 49 4e 54 52 29 63 6f 6e 74 69 6e 75 65 3b 62 72 65 61 6b 3b 7d 00 00 00 1e 20 20 no==EINTR)continue;break;}......
3b040 20 20 69 66 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 26 50 4f 4c 4c 49 4e 29 7b 00 00 00 35 ..if(fds[1].revents&POLLIN){...5
3b060 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 65 78 70 3b 72 65 61 64 28 61 2e 72 65 70 65 61 74 ......uint64_t.exp;read(a.repeat
3b080 5f 66 64 2c 26 65 78 70 2c 73 69 7a 65 6f 66 20 65 78 70 29 3b 00 00 00 23 20 20 20 20 20 20 70 _fd,&exp,sizeof.exp);...#......p
3b0a0 72 6f 63 65 73 73 5f 6b 65 79 28 26 61 2c 61 2e 72 65 70 65 61 74 5f 6b 65 79 29 3b 00 00 00 05 rocess_key(&a,a.repeat_key);....
3b0c0 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 26 50 ....}........if(fds[0].revents&P
3b0e0 4f 4c 4c 49 4e 29 00 00 00 2d 20 20 20 20 20 20 69 66 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 OLLIN)...-......if(wl_display_di
3b100 73 70 61 74 63 68 28 61 2e 64 29 3d 3d 2d 31 29 20 62 72 65 61 6b 3b 35 81 f5 18 00 00 00 00 02 spatch(a.d)==-1).break;5........
3b120 00 00 00 0a 00 00 00 5f 04 00 00 26 00 00 00 81 06 00 00 07 00 00 00 4f 00 00 00 00 00 00 00 14 ......._...&...........O........
3b140 a2 00 00 00 00 00 00 f2 bd 00 00 00 00 00 00 35 81 5f d0 00 00 00 19 00 00 00 1b 00 00 00 00 00 ...............5._..............
3b160 00 00 00 00 00 00 1a 00 00 00 15 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ................................
3b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cb ff 04 01 00 00 00 00 00 .....................i..........
3b2e0 f5 18 00 00 00 15 00 00 00 17 00 00 06 88 00 00 00 01 00 00 00 00 f5 18 00 00 00 15 00 00 00 17 ................................
3b300 00 00 06 87 00 00 00 00 35 81 f5 18 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........5.......................
3b320 01 00 00 00 00 00 00 00 ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................................
3b340 f5 18 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 ff 01 ................................
3b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 15 00 00 00 ................................
3b380 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 04 00 00 00 00 02 00 00 00 00 00 00 01 00 00 00 ................................
3b3a0 00 00 00 00 04 00 00 00 00 00 00 00 f5 18 00 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 04 00 ................................
3b3c0 00 00 00 00 00 00 07 00 00 00 00 02 00 00 00 00 00 00 04 00 00 00 00 00 00 00 07 00 00 00 00 00 ................................
3b3e0 00 00 f5 18 00 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 01 00 00 00 ................................
3b400 00 02 00 00 00 00 00 00 07 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 15 00 ................................
3b420 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 10 00 00 00 00 02 00 00 00 00 00 00 01 00 ................................
3b440 00 00 00 00 00 00 10 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1a 00 00 00 1c 00 00 00 00 00 00 ..............5._...............
3b460 00 00 00 00 00 1b 00 00 00 16 00 00 00 0f 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 ................................
3b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cc 02 04 01 00 00 00 13 00 f5 ....................i...........
3b5e0 18 00 00 00 12 00 00 00 17 00 00 06 88 00 00 00 04 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 .....................#include.<u
3b600 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c nistd.h>....#include.<wayland-cl
3b620 69 65 6e 74 2e 68 3e 00 00 00 20 23 69 6e 63 6c 75 64 65 20 3c 78 6b 62 63 6f 6d 6d 6f 6e 2f 78 ient.h>....#include.<xkbcommon/x
3b640 6b 62 63 6f 6d 6d 6f 6e 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e kbcommon.h>....#include.<time.h>
3b660 35 81 f5 18 00 00 00 00 12 00 00 00 0a 00 00 00 03 00 00 00 0e 00 00 00 03 00 00 00 1d 00 00 00 5...............................
3b680 b8 01 00 00 00 00 00 00 55 00 00 00 00 00 00 00 55 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1b ........U.......U.......5._.....
3b6a0 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 06 38 00 00 00 00 00 00 00 00 ff ff ff ff ...................8............
3b6c0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f ..............................i.
3b820 cc 11 04 01 00 00 00 00 00 f5 18 00 00 06 39 00 00 06 40 00 00 06 8a 00 00 00 01 00 00 00 02 20 ..............9...@.............
3b840 20 f5 18 00 00 06 3a 00 00 06 3b 00 00 06 8a 00 00 00 00 f5 18 00 00 06 38 00 00 06 3b 00 00 06 ......:...;.............8...;...
3b860 89 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 06 38 00 00 06 3a 00 00 06 88 00 00 00 00 35 81 f5 ................8...:........5..
3b880 18 00 00 00 00 38 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 b2 b6 00 .....8..........................
3b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 38 06 00 00 00 ...........................8....
3b8c0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 b2 b6 00 00 00 00 00 00 02 00 00 00 00 ................................
3b8e0 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 38 06 00 00 00 00 00 00 00 00 00 00 00 00 00 .................8..............
3b900 00 01 00 00 00 02 00 00 00 b2 b6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 ................................
3b920 00 f5 18 00 00 00 00 39 06 00 00 02 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 29 00 00 00 b5 .......9...................)....
3b940 b6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1c 00 .......................5._......
3b960 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 1d 00 00 06 3f 00 00 00 28 00 00 00 00 ff ff ff ff 00 ..................?...(.........
3b980 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cc .............................i..
3bae0 13 04 01 00 00 00 14 00 f5 18 00 00 06 39 00 00 06 3b 00 00 06 8f 00 00 00 01 00 00 00 1c 20 20 .............9...;..............
3bb00 20 20 74 69 6d 65 5f 74 20 6e 6f 77 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 35 81 f5 18 00 00 ..time_t.now.=.time(NULL);5.....
3bb20 00 00 39 06 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 b5 b6 00 00 00 00 ..9.............................
3bb40 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1d 00 00 00 1f 00 00 ..................5._...........
3bb60 00 00 00 00 00 00 00 00 00 1e 00 00 06 3f 00 00 00 1a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .............?..................
3bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9f cc 15 04 01 00 00 ........................i.......
3bce0 00 16 00 f5 18 00 00 06 3e 00 00 06 40 00 00 06 8f 00 00 00 01 00 00 00 29 20 20 70 72 69 6e 74 ........>...@...........)..print
3bd00 66 28 22 46 6f 72 6d 61 74 74 65 64 20 74 69 6d 65 3a 20 25 73 5c 6e 22 2c 20 62 75 66 66 65 72 f("Formatted.time:.%s\n",.buffer
3bd20 29 3b 35 81 f5 18 00 00 00 00 3e 06 00 00 0a 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 0b 00 );5.......>.....................
3bd40 00 00 4b b7 00 00 00 00 00 00 10 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 35 81 5f d0 00 00 ..K.......................5._...
3bd60 00 1e 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 06 8d 00 00 00 02 00 00 00 00 ff ff ................................
3bd80 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bee0 69 9f cc 7b 04 01 00 00 00 00 00 f5 18 00 00 06 8e 00 00 06 93 00 00 06 91 00 00 00 01 00 00 00 i..{............................
3bf00 02 20 20 f5 18 00 00 06 8f 00 00 06 90 00 00 06 91 00 00 00 00 f5 18 00 00 06 8d 00 00 06 90 00 ................................
3bf20 00 06 90 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 06 8d 00 00 06 8f 00 00 06 8f 00 00 00 00 35 ...............................5
3bf40 81 f5 18 00 00 00 00 8d 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 13 ................................
3bf60 bf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 8d 06 00 ................................
3bf80 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 13 bf 00 00 00 00 00 00 02 00 00 ................................
3bfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 8d 06 00 00 00 00 00 00 00 00 00 00 00 ................................
3bfc0 00 00 00 01 00 00 00 02 00 00 00 13 bf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ................................
3bfe0 00 00 00 f5 18 00 00 00 00 8e 06 00 00 02 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 ................................
3c000 00 16 bf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .................Y.......5._....
3c020 1f 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 20 00 00 06 92 00 00 00 00 00 00 00 00 ff ff ff ....!...........................
3c040 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
3c1a0 9f cc 7e 04 01 00 00 00 18 00 f5 18 00 00 06 91 00 00 06 93 00 00 06 94 00 00 00 01 00 00 00 01 ..~.............................
3c1c0 7d 35 81 f5 18 00 00 00 00 91 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 }5..............................
3c1e0 00 6e bf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .n.......................5._....
3c200 20 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 21 00 00 06 8f 00 00 00 02 00 00 00 00 ff ff ff ...."...........!...............
3c220 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 92 00 ................................
3c360 00 00 02 00 00 00 00 00 00 06 8f 00 00 00 02 00 00 00 00 00 00 00 56 00 00 00 02 00 00 00 00 69 ......................V........i
3c380 9f cc 87 04 01 00 00 00 19 00 f5 18 00 00 06 8e 00 00 06 8f 00 00 00 00 00 00 00 04 00 00 00 14 ................................
3c3a0 20 20 69 66 20 28 21 63 6f 6e 66 69 67 75 72 65 64 29 20 7b 00 00 00 38 20 20 20 20 66 70 72 69 ..if.(!configured).{...8....fpri
3c3c0 6e 74 66 28 73 74 64 65 72 72 2c 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 ntf(stderr,."wayland.surface.not
3c3e0 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 .configured\n");........return;.
3c400 00 00 03 20 20 7d 35 81 f5 18 00 00 00 00 8e 06 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 .....}5.........................
3c420 00 00 00 00 00 00 14 bf 00 00 00 00 00 00 5e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 ..............^...............5.
3c440 5f d0 00 00 00 21 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 22 00 00 06 8e 00 00 00 00 00 00 _....!...#..........."..........
3c460 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c5a0 00 00 06 8f 00 00 00 02 00 00 00 00 00 00 06 8f 00 00 00 02 00 00 00 00 00 00 00 56 00 00 00 02 ...........................V....
3c5c0 00 00 00 00 69 9f cc 88 04 01 00 00 00 1a 00 f5 18 00 00 06 8d 00 00 06 8e 00 00 00 00 00 00 00 ....i...........................
3c5e0 01 00 00 00 00 35 81 f5 18 00 00 00 00 8d 06 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 .....5..........................
3c600 00 00 00 00 00 13 bf 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f .............................5._
3c620 d0 00 00 00 22 00 00 00 2f 00 00 00 00 00 00 00 00 00 00 00 23 00 00 06 75 00 00 00 27 00 00 00 ....".../...........#...u...'...
3c640 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c780 00 06 74 00 00 00 14 00 00 00 00 00 00 06 76 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 ..t...........v...........V.....
3c7a0 00 00 00 69 9f cc b7 04 01 00 00 00 00 00 f5 18 00 00 06 74 00 00 06 76 00 00 06 8f 00 00 00 01 ...i...............t...v........
3c7c0 00 00 00 27 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 ...'....if.(wl_display_dispatch(
3c7e0 61 2e 64 29 20 3d 3d 20 2d 31 29 35 81 f5 18 00 00 00 00 74 06 00 00 27 00 00 00 00 00 00 00 00 a.d).==.-1)5.......t...'........
3c800 00 00 00 00 00 00 00 01 00 00 00 dc bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
3c820 00 00 00 35 81 5f d0 00 00 00 23 00 00 00 30 00 00 00 24 00 00 00 00 00 00 00 2f 00 00 06 76 00 ...5._....#...0...$......./...v.
3c840 00 00 0b 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c980 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 76 00 00 00 0c 00 00 00 00 00 00 00 ........t...........v...........
3c9a0 56 00 00 00 12 00 00 00 00 69 9f cc fe 04 01 00 00 00 1c 00 f5 18 00 00 06 74 00 00 06 76 00 00 V........i...............t...v..
3c9c0 06 8f 00 00 00 01 00 00 00 28 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 .........(....if.(wl_display_dis
3c9e0 70 61 74 63 68 28 61 2e 64 29 20 3d 3d 20 2d 31 29 20 35 81 f5 18 00 00 00 00 74 06 00 00 27 00 patch(a.d).==.-1).5.......t...'.
3ca00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 dc bc 00 00 00 00 00 00 01 00 00 00 00 00 ................................
3ca20 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2f 00 00 00 31 00 00 00 00 00 00 00 00 00 00 ..........5._..../...1..........
3ca40 00 30 00 00 06 76 00 00 00 0b 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .0...v..........................
3ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 76 00 00 00 0c ...............t...........v....
3cba0 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc fe 04 01 00 00 00 00 00 f5 18 00 00 06 .......V........i...............
3cbc0 77 00 00 06 7d 00 00 06 91 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 06 78 00 00 06 79 00 00 06 w...}...................x...y...
3cbe0 91 00 00 00 00 f5 18 00 00 06 76 00 00 06 79 00 00 06 90 00 00 00 01 00 00 00 02 20 20 f5 18 00 ..........v...y.................
3cc00 00 06 76 00 00 06 78 00 00 06 8f 00 00 00 00 35 81 f5 18 00 00 00 00 76 06 00 00 00 00 00 00 00 ..v...x........5.......v........
3cc20 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ea bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ................................
3cc40 00 00 00 00 00 00 00 f5 18 00 00 00 00 76 06 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 .............v..................
3cc60 00 02 00 00 00 ea bc 00 00 00 00 00 00 03 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 ................................
3cc80 00 00 00 76 06 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 ea bc 00 00 00 ...v............................
3cca0 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 76 06 00 00 00 00 00 .........................v......
3ccc0 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 ea bc 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cce0 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 77 06 00 00 02 00 00 00 00 00 00 00 00 00 00 00 04 ...............w................
3cd00 00 00 00 01 00 00 00 ed bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 99 00 00 00 00 00 00 00 35 ...............................5
3cd20 81 5f d0 00 00 00 30 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 31 00 00 06 7c 00 00 00 00 00 ._....0...2...........1...|.....
3cd40 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ce80 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 76 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 ....t...........v...........V...
3cea0 12 00 00 00 00 69 9f cd 06 04 01 00 00 00 1d 00 f5 18 00 00 06 79 00 00 06 7d 00 00 06 95 00 00 .....i...............y...}......
3cec0 00 03 00 00 00 08 7d 20 65 6c 73 65 20 7b 00 00 00 38 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 ......}.else.{...8....fprintf(st
3cee0 64 65 72 72 2c 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 20 63 6f 6e 66 69 derr,."wayland.surface.not.confi
3cf00 67 75 72 65 64 5c 6e 22 29 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 79 06 00 00 00 00 00 00 02 gured\n");....}5.......y........
3cf20 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 43 bd 00 00 00 00 00 00 42 00 00 00 00 00 00 00 46 ...............C.......B.......F
3cf40 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 31 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 32 00 .......5._....1...3...........2.
3cf60 00 06 7c 00 00 00 01 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..|.............................
3cf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d0a0 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 76 00 00 00 0c 00 00 00 ............t...........v.......
3d0c0 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cd 0a 04 01 00 00 00 00 00 f5 18 00 00 06 7d 00 00 ....V........i...............}..
3d0e0 06 82 00 00 06 97 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 06 7e 00 00 06 7f 00 00 06 97 00 00 .....................~..........
3d100 00 00 f5 18 00 00 06 7c 00 00 06 7f 00 00 06 96 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 06 7c .......|.......................|
3d120 00 00 06 7e 00 00 06 95 00 00 00 00 35 81 f5 18 00 00 00 00 7c 06 00 00 00 00 00 00 00 00 00 00 ...~........5.......|...........
3d140 00 00 00 00 01 00 00 00 00 00 00 00 8b bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 ................................
3d160 00 00 00 00 f5 18 00 00 00 00 7c 06 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ..........|.....................
3d180 00 00 8b bd 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
3d1a0 7c 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 8b bd 00 00 00 00 00 00 |...............................
3d1c0 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 7d 06 00 00 02 00 00 00 00 00 ......................}.........
3d1e0 00 00 00 00 00 00 03 00 00 00 35 00 00 00 8e bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8b 00 ..........5.....................
3d200 00 00 00 00 00 00 35 81 5f d0 00 00 00 32 00 00 00 34 00 00 00 00 00 00 00 00 00 00 00 33 00 00 ......5._....2...4...........3..
3d220 06 78 00 00 00 15 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .x..............................
3d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d360 00 00 00 00 00 00 00 00 00 00 06 7d 00 00 00 00 00 00 00 00 00 00 06 78 00 00 00 15 00 00 00 00 ...........}...........x........
3d380 00 00 00 56 00 00 00 34 00 00 00 00 69 9f cd 0d 04 01 00 00 00 00 00 f5 18 00 00 06 77 00 00 06 ...V...4....i...............w...
3d3a0 78 00 00 00 00 00 00 00 06 00 00 00 15 20 20 69 66 20 28 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 x..............if.(a.configured)
3d3c0 20 7b 00 00 00 41 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 6f 75 74 2c 20 22 77 61 79 6c 61 .{...A....fprintf(stdout,."wayla
3d3e0 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 nd.surface.successfully.configur
3d400 65 64 5c 6e 22 29 3b 00 00 00 0a 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 38 20 20 20 20 66 70 72 ed\n");......}.else.{...8....fpr
3d420 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f intf(stderr,."wayland.surface.no
3d440 74 20 63 6f 6e 66 69 67 75 72 65 64 5c 6e 22 29 3b 00 00 00 03 20 20 7d 00 00 00 00 35 81 f5 18 t.configured\n");......}....5...
3d460 00 00 00 00 77 06 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 eb bc 00 00 ....w...........................
3d480 00 00 00 00 a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 33 00 00 00 00 ....................5._....3....
3d4a0 00 00 00 00 00 00 00 00 00 00 00 34 00 00 06 78 00 00 00 12 00 00 00 00 ff ff ff ff 00 01 00 00 ...........4...x................
3d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 78 00 00 00 00 00 00 .........................x......
3d600 00 00 00 00 06 78 00 00 00 15 00 00 00 00 00 00 00 56 00 00 00 34 00 00 00 00 69 9f cd 0e 04 01 .....x...........V...4....i.....
3d620 00 00 00 20 00 f5 18 00 00 06 79 00 00 06 7b 00 00 06 94 00 00 00 01 00 00 00 04 65 6c 73 65 35 ..........y...{............else5
3d640 81 f5 18 00 00 00 00 79 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 3e .......y.......................>
3d660 bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 23 00 .......................5._....#.
3d680 00 00 25 00 00 00 00 00 00 00 2f 00 00 00 24 00 00 06 76 00 00 00 0b 00 00 00 00 ff ff ff ff 00 ..%......./...$...v.............
3d6a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 ............................t...
3d7e0 14 00 00 00 00 00 00 06 76 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc ........v...........V........i..
3d800 b8 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 00 06 77 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 .............u...w........5.....
3d820 00 00 75 06 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 de bc 00 00 00 00 ..u.............................
3d840 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 24 00 00 00 26 00 00 ..................5._....$...&..
3d860 00 00 00 00 00 00 00 00 00 25 00 00 06 75 00 00 00 28 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .........%...u...(..............
3d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 .......................t........
3d9c0 00 00 06 76 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc bb 04 01 00 00 ...v...........V........i.......
3d9e0 00 00 00 f5 18 00 00 06 74 00 00 06 76 00 00 06 8e 00 00 00 01 00 00 00 2a 20 20 20 20 69 66 20 ........t...v...........*....if.
3da00 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 3d 3d 20 2d 31 29 (wl_display_dispatch(a.d).==.-1)
3da20 20 7b 7d 35 81 f5 18 00 00 00 00 74 06 00 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 .{}5.......t...(................
3da40 00 00 00 dd bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 ...........................5._..
3da60 00 00 25 00 00 00 27 00 00 00 00 00 00 00 00 00 00 00 26 00 00 06 75 00 00 00 29 00 00 00 00 ff ..%...'...........&...u...).....
3da80 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3db00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3db20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 ................................
3dbc0 74 00 00 00 14 00 00 00 00 00 00 06 78 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 t...........x...........V.......
3dbe0 00 69 9f cc bb 04 01 00 00 00 00 00 f5 18 00 00 06 74 00 00 06 76 00 00 06 8e 00 00 00 02 00 00 .i...............t...v..........
3dc00 00 29 20 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e .)....if.(wl_display_dispatch(a.
3dc20 64 29 20 3d 3d 20 2d 31 29 20 7b 00 00 00 02 09 7d f5 18 00 00 06 75 00 00 06 77 00 00 00 00 00 d).==.-1).{.....}.....u...w.....
3dc40 00 00 01 00 00 00 02 09 7d f5 18 00 00 06 74 00 00 06 76 00 00 06 8f 00 00 00 02 00 00 00 29 20 ........}.....t...v...........).
3dc60 20 20 20 69 66 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 20 ...if.(wl_display_dispatch(a.d).
3dc80 3d 3d 20 2d 31 29 20 7b 00 00 00 09 09 09 66 70 72 69 6e 74 66 35 81 f5 18 00 00 00 00 74 06 00 ==.-1).{......fprintf5.......t..
3dca0 00 29 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 de bc 00 00 00 00 00 00 00 00 00 .)..............................
3dcc0 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 00 00 00 00 74 06 00 00 29 00 00 00 00 00 00 00 00 ...................t...)........
3dce0 00 00 00 01 00 00 00 01 00 00 00 de bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................................
3dd00 00 00 00 f5 18 00 00 00 00 75 06 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 09 00 00 .........u......................
3dd20 00 df bc 00 00 00 00 00 00 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
3dd40 26 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 27 00 00 06 76 00 00 00 09 00 00 00 00 ff ff ff &...(...........'...v...........
3dd60 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 ..............................t.
3dea0 00 00 14 00 00 00 00 00 00 06 78 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 ..........x...........V........i
3dec0 9f cc c1 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 00 06 77 00 00 06 90 00 00 00 01 00 00 00 0b ...............u...w............
3dee0 09 09 66 70 72 69 6e 74 66 28 29 35 81 f5 18 00 00 00 00 75 06 00 00 09 00 00 00 00 00 00 00 00 ..fprintf()5.......u............
3df00 00 00 00 00 00 00 00 02 00 00 00 e8 bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 ................................
3df20 00 00 00 35 81 5f d0 00 00 00 27 00 00 00 29 00 00 00 00 00 00 00 00 00 00 00 28 00 00 06 76 00 ...5._....'...)...........(...v.
3df40 00 00 0a 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e080 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 78 00 00 00 0c 00 00 00 00 00 00 00 ........t...........x...........
3e0a0 56 00 00 00 12 00 00 00 00 69 9f cc c1 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 00 06 77 00 00 V........i...............u...w..
3e0c0 06 90 00 00 00 01 00 00 00 0d 09 09 66 70 72 69 6e 74 66 28 22 22 29 35 81 f5 18 00 00 00 00 75 ............fprintf("")5.......u
3e0e0 06 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 e9 bc 00 00 00 00 00 00 00 ................................
3e100 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 28 00 00 00 2a 00 00 00 00 00 ...............5._....(...*.....
3e120 00 00 00 00 00 00 29 00 00 06 76 00 00 00 0b 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ......)...v.....................
3e140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 ....................t...........
3e280 78 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc c2 04 01 00 00 00 00 00 x...........V........i..........
3e2a0 f5 18 00 00 06 75 00 00 06 77 00 00 06 90 00 00 00 01 00 00 00 13 09 09 66 70 72 69 6e 74 66 28 .....u...w..............fprintf(
3e2c0 73 74 64 65 72 72 2c 20 29 35 81 f5 18 00 00 00 00 75 06 00 00 0a 00 00 00 00 00 00 00 02 00 00 stderr,.)5.......u..............
3e2e0 00 00 00 00 00 02 00 00 00 e9 bc 00 00 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
3e300 00 f5 18 00 00 00 00 75 06 00 00 0b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 ea .......u........................
3e320 bc 00 00 00 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 29 00 .......................5._....).
3e340 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 2a 00 00 06 76 00 00 00 12 00 00 00 00 ff ff ff ff 00 ..+...........*...v.............
3e360 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 ............................t...
3e4a0 14 00 00 00 00 00 00 06 78 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc ........x...........V........i..
3e4c0 c4 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 00 06 77 00 00 06 90 00 00 00 01 00 00 00 15 09 09 .............u...w..............
3e4e0 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 22 29 35 81 f5 18 00 00 00 00 75 06 00 00 12 fprintf(stderr,."")5.......u....
3e500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 f1 bc 00 00 00 00 00 00 00 00 00 00 00 ................................
3e520 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2a 00 00 00 2c 00 00 00 00 00 00 00 00 00 ...........5._....*...,.........
3e540 00 00 2b 00 00 06 76 00 00 00 13 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 ..+...v.........................
3e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 78 00 00 00 ................t...........x...
3e6a0 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc c6 04 01 00 00 00 00 00 f5 18 00 00 ........V........i..............
3e6c0 06 75 00 00 06 77 00 00 06 90 00 00 00 01 00 00 00 3c 09 09 66 70 72 69 6e 74 66 28 73 74 64 65 .u...w...........<..fprintf(stde
3e6e0 72 72 2c 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 20 70 72 6f 70 65 72 6c rr,."wayland.surface.not.properl
3e700 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 35 81 f5 18 00 00 00 00 75 06 00 00 13 00 00 00 00 00 y.configured")5.......u.........
3e720 00 00 00 00 00 00 00 00 00 00 25 00 00 00 f2 bc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 00 ..........%...................%.
3e740 00 00 00 00 00 00 f5 18 00 00 00 00 75 06 00 00 13 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 ............u...........%.......
3e760 0a 00 00 00 f2 bc 00 00 00 00 00 00 25 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 f5 18 00 00 ............%...................
3e780 00 00 75 06 00 00 1b 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 0d 00 00 00 fa bc 00 00 00 00 ..u.............................
3e7a0 00 00 02 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 f5 18 00 00 00 00 75 06 00 00 23 00 00 00 ........................u...#...
3e7c0 00 00 00 00 05 00 00 00 00 00 00 00 17 00 00 00 02 bd 00 00 00 00 00 00 05 00 00 00 00 00 00 00 ................................
3e7e0 17 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2b 00 00 00 2d 00 00 00 00 00 00 00 00 00 00 00 2c ........5._....+...-...........,
3e800 00 00 06 76 00 00 00 3c 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...v...<........................
3e820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e940 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 78 00 00 00 0c 00 00 .............t...........x......
3e960 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc d5 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 .....V........i...............u.
3e980 00 06 77 00 00 06 90 00 00 00 01 00 00 00 3e 09 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c ..w...........>..fprintf(stderr,
3e9a0 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 63 ."wayland.surface.not.properly.c
3e9c0 6f 6e 66 69 67 75 72 65 64 22 29 27 27 35 81 f5 18 00 00 00 00 75 06 00 00 3c 00 00 00 00 00 00 onfigured")''5.......u...<......
3e9e0 00 00 00 00 00 00 00 00 00 02 00 00 00 1b bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 ................................
3ea00 00 00 00 00 00 35 81 5f d0 00 00 00 2c 00 00 00 2e 00 00 00 00 00 00 00 00 00 00 00 2d 00 00 06 .....5._....,...............-...
3ea20 76 00 00 00 3d 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 v...=...........................
3ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ea60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ea80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eb60 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 79 00 00 00 0c 00 00 00 00 00 ..........t...........y.........
3eb80 00 00 56 00 00 00 12 00 00 00 00 69 9f cc d5 04 01 00 00 00 00 00 f5 18 00 00 06 75 00 00 06 77 ..V........i...............u...w
3eba0 00 00 06 90 00 00 00 02 00 00 00 3d 09 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 77 ...........=..fprintf(stderr,."w
3ebc0 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 63 6f 6e 66 ayland.surface.not.properly.conf
3ebe0 69 67 75 72 65 64 22 29 3b 00 00 00 08 09 09 62 72 65 61 6b 3b 35 81 f5 18 00 00 00 00 75 06 00 igured");......break;5.......u..
3ec00 00 3c 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 1b bd 00 00 00 00 00 00 02 00 00 .<..............................
3ec20 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 75 06 00 00 3d 00 00 00 00 00 00 00 00 ...................u...=........
3ec40 00 00 00 01 00 00 00 02 00 00 00 1c bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ................................
3ec60 00 00 00 f5 18 00 00 00 00 76 06 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .........v......................
3ec80 00 1f bd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 76 ...............................v
3eca0 06 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 06 00 00 00 1f bd 00 00 00 00 00 00 01 ................................
3ecc0 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2d 00 00 00 00 00 00 00 00 00 ...............5._....-.........
3ece0 00 00 00 00 00 00 2e 00 00 06 77 00 00 00 07 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 ..........w.....................
3ed00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ed20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ed40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ed60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ed80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3eda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3edc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ede0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ee00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ee20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 74 00 00 00 14 00 00 00 00 00 00 06 ....................t...........
3ee40 79 00 00 00 0c 00 00 00 00 00 00 00 56 00 00 00 12 00 00 00 00 69 9f cc ec 04 01 00 00 00 1b 00 y...........V........i..........
3ee60 f5 18 00 00 06 75 00 00 06 79 00 00 06 91 00 00 00 03 00 00 00 41 20 20 20 20 20 20 66 70 72 69 .....u...y...........A......fpri
3ee80 6e 74 66 28 73 74 64 65 72 72 2c 20 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 6e 6f 74 ntf(stderr,."wayland.surface.not
3eea0 20 70 72 6f 70 65 72 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 00 0c 20 20 20 20 20 .properly.configured");.........
3eec0 20 62 72 65 61 6b 3b 00 00 00 05 20 20 20 20 7d 35 81 f5 18 00 00 00 00 75 06 00 00 00 00 00 00 .break;........}5.......u.......
3eee0 02 00 00 00 01 00 00 00 02 00 00 00 04 00 00 00 df bc 00 00 00 00 00 00 48 00 00 00 00 00 00 00 ........................H.......
3ef00 53 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 15 S.......5._.....................
3ef20 00 00 04 23 00 00 00 37 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...#...7........................
3ef40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ef60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ef80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3efa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3efc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f060 00 00 00 00 00 00 00 00 00 00 00 00 04 24 00 00 00 0a 00 00 00 00 00 00 04 24 00 00 00 18 00 00 .............$...........$......
3f080 00 00 00 00 00 76 00 00 00 18 00 00 00 00 69 9f c7 93 04 01 00 00 00 00 00 f5 18 00 00 04 23 00 .....v........i...............#.
3f0a0 00 04 24 00 00 04 71 00 00 00 00 f5 18 00 00 04 22 00 00 04 24 00 00 04 71 00 00 00 01 00 00 00 ..$...q........."...$...q.......
3f0c0 4d 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 M..strftime(buffer,.sizeof(buffe
3f0e0 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 46 6f 72 6d 61 74 74 65 r),."%d-%m-%Y.%I:%M:%S.%Formatte
3f100 64 20 74 69 6d 65 3a 70 22 2c 20 74 29 3b 35 81 f5 18 00 00 00 00 22 04 00 00 37 00 00 00 00 00 d.time:p",.t);5......."...7.....
3f120 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 ad 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 ...............w................
3f140 00 00 00 00 00 00 35 81 e7 aa ......5...