Remove the "Edit Family" option from the "Edit Family" menu. Also change the title text for "Change Family Members" to "Edit Family". This prevents the genealogist from opening the Edit Family interface that results in unlinking all family members if used, and substitutes the "Change Family Members" interface.
It's not clear if this is a workaround or a resolution. IMO nothing is lost with this and the UI is smooth. Family notes are still accessible from the Family page. The "Change Family" functionality makes sense under the title "Edit Family". There is a bit of a dislocation in the code with "Change Family Members" shifted to "Edit Family". The terminology change could be made at a lower level in the code for better code understandability. However, the change as it stands requires minimal code modification. Edit raw gedcom can be used if there are inaccessible entries from unpatched versions (not sure if this is an issue).
Because this can be serious (read what the reporter went through) I would suggest that this bug warrants a 4.2.4 release.
Complete file attached for trunk - includes/controllers/family_ctrl.php
Patch tested for both 4.2.3 and SVN 6975
Diff for 4.2.3 (should be identical except perhaps line numbers for trunk version):
343,351d342
< $submenu->addOnclick("return edit_family('".$this->getFamilyID()."');");
< if (!empty($PGV_IMAGES["edit_fam"]["small"])) {
< $submenu->addIcon("{$PGV_IMAGE_DIR}/{$PGV_IMAGES['edit_fam']['small']}");
< }
< $submenu->addClass("submenuitem{$ff}", "submenuitem_hover{$ff}");
< $menu->addSubmenu($submenu);
<
< // edit_fam / members
< $submenu = new Menu($pgv_lang['change_family_members']);
Note: I would have attached the files for both 4.2.3 and trunk but sourceforge only allows one attachment. Contact me for the 4.2.3 version. They are not interchangeable.
trunk version patched file family_ctrl.php
4.2.3 release version patched file includes/controllers/family_ctrl.php
Changed priority and added patch file for release 4.2.3
Trunk was patched (patch should be reviewed and dead code removed)