On Mon, 2007-10-01 at 16:50 +0200, Ondrej Mikle wrote: > Lars Clausen wrote: > > On Sun, 2007-09-30 at 14:38 +0200, Lars Clausen wrote: > >> So all this talk about delete key make me think more about how edit mode > >> would happen, and eventually I sat down and did the first essentials. > >> The current SVN uses edit mode, entering it automatically when an object > >> with text is created or on Enter or F2, and exiting on deselecting the > >> object or Escape. It doesn't fix the menus or anything, but I'm piling > >> up remaining tasks on > >> <URL:http://live.gnome.org/Dia/CurrentDevelopment>. > > > > Forgot to say that everybody's welcome to join in the fray and make > > patches or suggestions for these tasks, or for tasks that have not been > > noticed yet. If testing, please make sure to check any problems you > > find are not covered by the remaining tasks before complaining about > > them. Then hopefully next weekend we can have a bug-closing fest, as > > this enables us to get through a number of old problems. > > > > Cool. The new behavior looks good. Here are few suggestions for the > remaining tasks: > > 1) "Figure out how to handle changing between multiple diagrams." > > - I'd suggest each diagram has its own focus instead of switching the > focus object pointer each time diagram loses/gains focus. This would > also preserve the edit mode per diagram which is IMHO better than having > to press Enter each time user exits and enters the diagram (when he had > left with some text focused in textedit mode). This would require adding > something like Focus* diagram_focus and gboolean diagram_textedit_mode > to struct _DDisplay. > > Then there is question what to do with active_focus_ptr? Two possibilities: > a) it remains as the "really active" focus, i.e. the one where text > would be added when user presses the keystrokes > b) we wouldn't need it anymore and functions such as request_focus, > give_focus, remove_focus would first ask ddisplay_active and work with > the active's display focus (I like this option better, but I have to > check what happens if one of them is called while no display has focus). > > 2) "Make sure text edit mode is properly left at appropriate times." > > There is a minor bug that text edit mode is quit twice when Delete is > pressed (edit_delete_callback) while in text mode. I'll look at it > during the week when I have a bit of time.
Delete of course should now behave differently in the two modes, but I need to look into the menu system to see how to replace them (I'm sure it's easy). However, there's still something fishy in how this works. > First it is removed here: > #0 remove_focus_object (obj=0x20d35d0) at focus.c:173 > #1 0x0000000000466274 in textedit_remove_focus (obj=0x20d35d0, > diagram=0x2045000) at textedit.c:238 > #2 0x000000000041f705 in diagram_unselect_object (diagram=0x2045000, > obj=0x20d35d0) at diagram.c:671 > #3 0x000000000041f7da in diagram_unselect_objects (dia=0x2045000, > obj_list=0x2212980) at diagram.c:690 > #4 0x0000000000427903 in delete_objects_apply (change=0x200d1a0, > dia=0x2045000) at undo.c:576 > #5 0x000000000042e0a6 in edit_delete_callback (action=0x1d2fd30) at > commands.c:527 > > And then again: > #0 0x00002b3402074626 in raise () from /lib/libc.so.6 > #1 0x00002b3402075710 in abort () from /lib/libc.so.6 > #2 0x00002b34016df6a5 in g_logv () from /usr/lib/libglib-2.0.so.0 > #3 0x00002b34016df725 in g_log () from /usr/lib/libglib-2.0.so.0 > #4 0x00002b34016df793 in g_assert_warning () from /usr/lib/libglib-2.0.so.0 > #5 0x0000000000465f8e in textedit_end_edit (ddisp=0x204a3d0, > focus=0x20c4cc0) at textedit.c:107 > #6 0x0000000000466289 in textedit_remove_focus (obj=0x20d6e60, > diagram=0x2045000) at textedit.c:240 > #7 0x000000000041f705 in diagram_unselect_object (diagram=0x2045000, > obj=0x20d6e60) at diagram.c:671 > #8 0x000000000041f7da in diagram_unselect_objects (dia=0x2045000, > obj_list=0x20e2100) at diagram.c:690 > #9 0x0000000000427903 in delete_objects_apply (change=0x220fbb0, > dia=0x2045000) at undo.c:576 > #10 0x000000000042e0a6 in edit_delete_callback (action=0x1d2fd30) at > commands.c:527 > > Ondrej Mikle > _______________________________________________ > Dia-list mailing list > Dia-list@gnome.org > http://mail.gnome.org/mailman/listinfo/dia-list > FAQ at http://live.gnome.org/Dia/Faq > Main page at http://live.gnome.org/Dia > _______________________________________________ Dia-list mailing list Dia-list@gnome.org http://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia