Tommaso Bianchi
c32aa3f8ba
Design: clicking the same face twice takes the body, and the status line moves onto the viewport
...
A click could point at a face, an edge or a vertex, but never at the body those
belong to: offer_selection_kind() can only return BodySolid when all three are
clear, which a viewport click never produces. The rubber band was the only door,
and the status line said "face 5 selected" while the user believed they had taken
the body. A second click on the SAME sub-element now escalates to it (snaporca-gem).
Not the pick cycle that was removed in bc2b741ce9 -- that one was silent and three
deep, so no click had a predictable meaning. Here the status line names the next
click before you make it, and a further click just takes the face under the cursor
again, which needs no teaching. Double-click is untouched: wx sends Down/Up/DClick/Up
and only the first Up carries a pending press, so a fast double-click still zooms to
fit and picks once.
The status line itself moved to the base of the viewport. In the side panel it was
clipped at ~73 characters with no warning and no wrap -- set_status()'s Wrap() never
took effect (snaporca-8cc) -- which silently length-limited every hint in the tab; the
first version of this change lost a clause to it. m_status is kept, hidden, as the
owner of the text and its colour, and the line is drawn in a bottom-left twin of the
readout HUD where there is a whole window's width.
Three defects found driving it on the rig, none of which the build could see:
* the HUD as a wxFrame took the WM's keyboard focus every time it was raised, and
the canvas then received NO key events -- every sketch shortcut silently dead.
Caught with SNAPORCA_KEYTRACE: shift+S logged a line, the following R logged
nothing. It is a wxPopupWindow now, which cannot be focused. SetFocus() on the
canvas does not fix it: focus was on another toplevel.
* zero vertical padding fits the popup tighter than the font's line box and clips
the glyphs; 6 (what the readout uses) reads as a two-line box. 3 is right.
* "has a caller chosen a colour?" compared the label's foreground against its
PARENT's, which differ by default, so every line counted as chosen and the
neutral text came out the panel's dark grey -- invisible on a dark chip. Compare
against the colour the label was created with, captured before any caller writes.
Verified on both rigs against fresh binaries: sketch -> extrude -> click face ->
click again -> whole body tinted, offer opens with the body rows live and Create /
Add material correctly greyed. Keyboard drives the whole sequence.
Filed and NOT fixed here: snaporca-od0 -- a bare-plate click does not deselect the
solid, so "click away, click back" escalates. Pre-existing; clearing there would also
drop the face the Thicken/Shell/Draft cards hold, which needs its own pass.
Refs: snaporca-gem, snaporca-8cc, snaporca-od0
2026-08-02 12:12:50 +02:00
..
2026-07-23 23:24:29 +08:00
2026-07-24 09:41:24 -03:00
2026-07-25 12:28:33 +02:00
2026-07-18 02:08:13 +08:00
2026-07-22 16:30:43 -03:00
2026-04-26 18:44:59 +08:00
2026-07-24 09:41:24 -03:00
2026-03-05 11:33:07 -03:00
2026-04-13 19:45:39 +08:00
2026-06-30 00:24:39 +02:00
2026-07-20 09:05:21 +08:00
2026-07-09 01:16:26 +08:00
2026-07-11 20:24:03 +03:00
2026-07-17 19:32:44 +08:00
2026-07-16 13:08:48 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 05:06:09 +08:00
2026-07-24 09:41:24 -03:00
2026-07-18 01:46:23 +08:00
2026-07-18 01:46:10 +08:00
2026-07-17 06:48:15 +08:00
2026-07-18 01:46:23 +08:00
2026-07-17 13:20:41 +08:00
2026-07-17 06:48:15 +08:00
2025-10-28 15:29:47 +08:00
2026-06-18 09:13:51 -03:00
2026-03-25 11:28:00 +08:00
2026-07-15 17:18:46 +08:00
2026-06-18 12:45:26 +08:00
2026-07-11 20:24:03 +03:00
2026-03-24 20:50:44 +08:00
2025-10-05 16:02:17 +08:00
2025-12-18 12:14:56 +00:00
2025-10-28 15:29:51 +08:00
2026-06-11 02:47:33 +08:00
2026-04-20 19:27:38 -03:00
2026-06-18 09:13:51 -03:00
2026-07-16 00:17:01 +08:00
2026-01-03 23:06:57 +08:00
2026-04-13 19:45:39 +08:00
2026-03-25 11:26:32 +08:00
2026-03-25 11:26:32 +08:00
2026-07-11 20:24:03 +03:00
2026-07-11 20:24:03 +03:00
2026-04-24 21:39:32 +08:00
2025-12-18 12:14:56 +00:00
2025-10-28 15:30:00 +08:00
2026-05-01 18:01:29 +08:00
2026-06-18 09:13:51 -03:00
2025-10-28 15:29:59 +08:00
2026-06-18 09:13:51 -03:00
2026-06-18 09:13:51 -03:00
2026-01-03 23:06:57 +08:00
2026-07-09 01:16:26 +08:00
2026-05-16 19:13:40 +08:00
2026-07-09 01:16:26 +08:00
2026-07-09 01:16:26 +08:00
2026-06-18 09:13:51 -03:00
2026-07-09 01:16:26 +08:00
2026-07-09 01:16:26 +08:00
2026-04-13 19:45:39 +08:00
2026-07-17 06:48:15 +08:00
2025-11-08 20:44:37 +08:00
2026-04-24 16:29:29 +08:00
2026-07-14 15:34:13 -03:00
2026-06-28 22:30:40 +08:00
2026-07-16 17:37:09 -03:00
2026-06-18 09:13:51 -03:00
2025-10-02 17:07:21 +08:00
2026-06-07 13:12:51 +08:00
2026-05-19 20:03:54 +00:00
2026-06-28 13:07:09 +08:00
2026-06-18 09:13:51 -03:00
2026-05-19 17:13:07 +08:00
2026-05-19 17:13:07 +08:00
2026-08-02 12:12:50 +02:00
2026-08-02 12:12:50 +02:00
2026-08-02 09:57:53 +02:00
2026-08-02 12:12:50 +02:00
2026-08-02 12:12:50 +02:00
2026-08-02 12:12:50 +02:00
2026-08-01 17:38:44 +02:00
2026-06-18 09:13:51 -03:00
2026-04-13 17:21:05 +08:00
2026-07-18 01:46:10 +08:00
2026-07-18 03:15:11 +08:00
2026-07-18 01:46:10 +08:00
2026-07-18 01:46:23 +08:00
2026-03-24 20:34:32 +08:00
2026-06-18 09:13:51 -03:00
2026-07-11 16:37:50 +08:00
2026-07-11 16:37:50 +08:00
2026-01-09 21:25:48 +08:00
2025-09-30 14:31:54 +08:00
2025-10-01 15:47:44 +08:00
2026-07-05 10:39:25 +08:00
2026-07-05 10:39:25 +08:00
2026-05-19 01:01:53 +08:00
2026-05-17 02:29:39 -05:00
2026-07-24 09:41:24 -03:00
2025-12-18 12:14:56 +00:00
2026-07-21 15:17:22 -03:00
2026-07-14 13:10:42 +08:00
2026-07-17 05:06:09 +08:00
2026-07-17 05:06:09 +08:00
2026-07-09 18:57:05 +08:00
2026-07-09 18:57:05 +08:00
2026-07-11 16:37:50 +08:00
2026-07-11 16:37:50 +08:00
2026-07-24 09:41:24 -03:00
2026-07-11 16:37:50 +08:00
2026-05-16 01:12:30 +08:00
2025-12-18 12:14:56 +00:00
2026-07-08 20:24:55 +08:00
2026-07-24 09:41:24 -03:00
2026-07-20 18:14:01 -03:00
2026-07-31 18:11:59 +02:00
2026-07-31 18:11:59 +02:00
2026-07-12 13:30:55 -03:00
2026-02-10 13:08:22 +08:00
2026-04-13 19:45:39 +08:00
2026-04-13 19:45:39 +08:00
2026-07-12 21:44:30 -03:00
2026-05-19 01:38:37 +08:00
2025-10-31 16:53:08 +08:00
2026-07-23 23:24:29 +08:00
2026-07-21 15:40:40 -03:00
2026-07-24 09:41:24 -03:00
2026-04-24 16:28:28 +08:00
2026-06-18 09:13:51 -03:00
2025-09-24 22:49:14 -04:00
2025-11-17 10:29:44 +08:00
2026-07-14 02:54:20 +08:00
2026-05-17 02:29:39 -05:00
2026-05-21 09:04:27 +08:00
2026-06-30 08:55:09 +08:00
2026-06-30 08:55:09 +08:00
2026-05-21 09:04:27 +08:00
2025-11-15 11:11:20 -05:00
2025-09-24 22:49:14 -04:00
2026-06-11 23:56:16 +08:00
2026-06-11 23:56:16 +08:00
2026-07-02 17:49:36 +08:00
2026-05-01 18:01:29 +08:00
2026-06-18 09:13:51 -03:00
2026-07-17 12:46:45 +08:00
2026-07-19 20:16:17 +08:00
2025-10-02 09:30:48 +08:00
2026-05-01 18:01:29 +08:00
2026-05-01 18:01:29 +08:00
2026-07-24 09:41:24 -03:00
2026-04-13 19:45:39 +08:00
2025-12-23 01:30:03 +08:00
2025-11-17 15:30:35 +00:00
2026-07-24 09:41:24 -03:00
2026-07-16 11:02:55 +08:00
2026-06-25 22:31:33 +08:00
2026-06-18 09:13:51 -03:00
2026-05-15 00:46:05 +08:00
2026-07-16 11:02:55 +08:00
2026-07-16 11:02:55 +08:00
2026-05-15 00:57:52 +08:00
2026-07-24 09:41:24 -03:00
2026-04-13 19:45:39 +08:00
2026-04-13 19:45:39 +08:00
2026-07-25 12:28:33 +02:00
2026-07-10 18:12:53 +02:00
2026-07-27 07:21:06 +02:00
2026-06-30 15:32:51 +02:00
2026-07-24 09:41:24 -03:00
2025-10-02 09:30:48 +08:00
2026-07-17 08:30:22 +08:00
2026-03-11 14:59:29 +08:00
2026-04-13 19:45:39 +08:00
2025-10-28 15:29:56 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 08:30:22 +08:00
2025-10-28 15:29:56 +08:00
2026-07-15 15:06:17 +08:00
2026-07-24 09:41:24 -03:00
2026-07-09 01:16:26 +08:00
2026-05-18 19:46:47 +08:00
2026-05-18 19:46:47 +08:00
2026-02-27 11:19:22 -03:00
2026-02-04 11:40:02 +00:00
2026-01-03 16:30:14 +08:00
2025-10-02 09:30:48 +08:00
2025-09-25 20:33:50 +08:00
2026-02-04 11:40:02 +00:00
2026-07-21 01:21:40 +03:00
2026-07-21 01:21:40 +03:00
2025-11-17 11:17:54 +08:00
2026-04-25 18:14:51 +08:00
2026-04-25 18:14:51 +08:00
2026-07-22 09:48:28 -03:00
2026-07-02 17:49:36 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-06-21 18:20:58 +08:00
2026-06-21 18:20:58 +08:00
2026-06-18 09:13:51 -03:00
2026-04-15 22:36:25 +08:00
2026-07-24 09:41:24 -03:00
2026-05-21 09:04:27 +08:00
2026-07-16 11:02:55 +08:00
2026-03-24 20:39:45 +08:00
2026-07-24 09:41:24 -03:00
2026-07-02 17:49:36 +08:00
2026-05-10 15:14:35 +08:00
2026-06-14 18:55:40 +08:00
2026-04-25 18:14:51 +08:00
2026-07-25 12:28:33 +02:00
2026-07-25 12:28:33 +02:00
2025-09-26 10:55:19 +08:00
2026-06-11 17:10:31 -03:00
2026-05-21 13:18:52 +03:00
2026-07-24 09:41:24 -03:00
2026-01-23 17:05:56 +08:00
2026-07-25 12:28:33 +02:00
2026-07-25 12:28:33 +02:00
2026-07-24 09:41:24 -03:00
2026-07-02 17:49:36 +08:00
2026-07-15 20:12:51 +08:00
2026-07-04 22:14:55 +08:00
2026-07-04 22:14:55 +08:00
2026-07-17 16:09:19 +08:00
2026-07-17 16:09:19 +08:00
2026-07-20 14:47:26 +08:00
2026-07-20 14:47:26 +08:00
2026-07-06 18:14:26 +08:00
2026-07-06 12:31:34 +08:00
2026-07-06 12:31:34 +08:00
2026-07-20 12:48:17 +08:00
2026-07-17 21:12:55 +08:00
2026-07-17 16:09:19 +08:00
2026-07-10 19:57:35 +08:00
2026-07-25 12:28:33 +02:00
2026-07-03 17:19:24 -03:00
2026-07-22 19:09:57 -03:00
2026-07-22 19:09:57 -03:00
2026-07-05 10:39:25 +08:00
2026-07-05 10:39:25 +08:00
2026-07-14 02:54:20 +08:00
2025-09-28 14:19:02 +08:00
2026-06-05 20:45:43 +08:00
2026-07-13 12:19:33 -03:00
2026-07-22 15:14:49 -03:00
2026-05-16 15:22:31 +08:00
2026-05-28 19:45:03 +08:00
2026-05-16 15:22:31 +08:00
2026-07-24 09:41:24 -03:00
2026-05-28 08:10:21 +00:00
2026-07-24 09:41:24 -03:00
2026-07-16 19:28:50 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2026-06-18 09:13:51 -03:00
2026-07-10 15:41:57 +08:00
2026-07-10 15:41:57 +08:00
2025-11-17 10:29:44 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-07-17 16:25:10 +08:00
2026-02-11 16:00:04 +08:00
2026-03-03 17:36:42 -03:00
2025-10-28 15:29:54 +08:00
2026-07-24 09:41:24 -03:00
2026-02-06 23:02:48 +08:00
2025-10-14 08:56:18 +08:00
2025-10-14 08:56:18 +08:00
2026-05-22 10:46:29 +08:00
2026-05-21 09:04:26 +08:00
2026-07-13 14:54:42 +08:00
2026-06-18 09:13:51 -03:00
2026-07-24 09:41:24 -03:00
2026-07-22 19:09:57 -03:00
2026-07-17 10:20:24 +08:00
2026-01-03 23:06:57 +08:00
2026-06-18 09:13:51 -03:00
2026-01-23 17:05:56 +08:00
2026-04-13 19:45:39 +08:00
2026-07-18 01:46:23 +08:00
2026-01-03 23:06:57 +08:00
2026-07-26 17:48:11 +02:00
2026-07-01 19:19:23 +02:00
2026-04-13 19:45:39 +08:00
2025-09-26 14:35:06 +08:00
2026-06-18 09:13:51 -03:00
2026-07-17 22:37:56 +08:00
2026-07-17 22:37:56 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 09:41:01 +08:00
2026-07-11 20:24:03 +03:00
2026-07-03 17:19:24 -03:00
2026-07-24 09:41:24 -03:00
2026-07-17 06:48:15 +08:00
2026-03-24 20:50:44 +08:00
2026-07-24 09:41:24 -03:00
2026-07-15 17:18:46 +08:00
2026-02-04 11:40:02 +00:00
2025-12-14 14:26:16 +01:00
2026-03-25 15:58:39 +08:00
2026-01-23 17:05:56 +08:00
2026-01-23 17:05:56 +08:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2026-04-13 19:45:39 +08:00
2025-10-28 15:30:06 +08:00
2025-10-28 15:30:06 +08:00
2026-07-21 15:16:07 -03:00
2026-06-06 23:44:39 +08:00
2026-07-13 12:19:33 -03:00
2026-05-21 09:04:26 +08:00
2025-12-18 12:14:56 +00:00
2026-07-19 20:16:17 +08:00
2026-07-17 09:41:01 +08:00
2026-05-01 18:01:29 +08:00
2025-10-28 15:29:56 +08:00
2026-06-26 18:37:33 +08:00
2026-04-24 13:54:09 +08:00
2026-07-13 12:19:33 -03:00
2026-05-01 18:01:29 +08:00
2026-07-24 09:41:24 -03:00
2026-05-01 18:01:29 +08:00
2026-05-21 11:42:18 +08:00
2025-10-28 15:29:58 +08:00
2026-07-06 11:28:03 +08:00
2026-04-25 18:14:51 +08:00
2026-03-24 20:44:32 +08:00
2026-05-13 00:01:10 +08:00
2026-05-13 00:01:10 +08:00