X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud03.udmedia.de; h= to:from:subject:message-id:date:mime-version:content-type :content-transfer-encoding; s=beta; bh=VE1AjAXmYq9gtr51ecsvHtWHN /E9lXXjEk5+smEuhgw=; b=v60aDEXh3r+juncRoKlocV9pSE5ViImkOSwY+/buC AFYbKgjeGgQ/kRNmDfDrSlaWFjGl37EDTNcuaBb4d3vjhrE45kOcG+lBHqIDtDUf cmwVhrnIYvEq9L8GrgHWWCpzV8+jBDXczoZ8ViIuKDNvXduPbu47r6afZzgUPJOq LI= To: geda-user AT delorie DOT com From: "Markus Hitter (mah AT jump-ing DOT de) [via geda-user AT delorie DOT com]" Subject: [geda-user] Clutterless user interface or even more custom special super features? X-Enigmail-Draft-Status: N1110 Message-ID: <56100AF8.4090802@jump-ing.de> Date: Sat, 3 Oct 2015 19:06:00 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Reply-To: geda-user AT delorie DOT com gEDAers, while investigating bug 1018103 ... https://bugs.launchpad.net/geda-project/+bug/1018103 ... I learned that there are no less than three special modes for ignoring text, hiding text and/or ignoring anything but text exist. The bug is a crashing one, hitting Undo takes the whole application with it, data lost. To me this bug is a typical example of what happens when custom behaviour is stacked on other custom behaviour, stacked on even more custom behaviour: each custom mode has to take into account every other custom mode, complexity of code explodes. Well, code explodes, or the application explodes at runtime, when a non-working combination of these features is hit. Hide names mode is documented as following (action.c, line 2586): > If set, only text will be sensitive for mouse clicks and actions > that work on objects under the mouse. You can still select other > objects with a lasso (left mouse drag) and perform actions on the > selection. The problem here is that despite anything but text is ignored, drawing lines is still allowed. I can see four solutions: 1. Add a lot more special case search code to check not only for mode flags like ONLYNAMESFLAG, but also under which conditions this search happens. This easily makes one special case for every other case. 3 names modes x 12 drawing modes = 36 cases. 2. Disable modes like track drawing mode while in names only mode. This would be the advertised behaviour. Also a lot of code and on top of this, unexpected user behaviour ("I can't draw tracks anymore and I don't know why"). 3. Try to make Undo() independent from this query. It's "undo last operation", after all, not "undo the object under the crosshair". 4. Remove these special modes. That'd be LOCKNAMESFLAG, HIDENAMESFLAG and ONLYNAMESFLAG. Chances are good they're barely known anyways and modal behaviour is usually considered to be bad for an intuitive user interface. It should certainly be possible to prefer or avoid text by the standard means (hiding or activating the corresponding layers). 5.: 3. and 4. together. 6. Doing nothing is _not_ an option. It's a crashing bug. I tend to do 4., then 3.. Anybody volunteering to write and test all 36 cases of 1. or 2.? Markus -- - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/