On 22/12/10 17:35, Maximilian Albert wrote:
I thought I'd use this as a small project after a long break to take a first step back into Inkscape development (see bzr rev. #9976). You can now cycle through items that are stacked on top of each other by using Alt+mouse wheel scroll (use Shift+Alt to add to selection). I hope it is intuitive enough but let me know of any problems or suggestions you might have. At the moment, groups are not honoured (i.e., only individual items within groups are selected). Should this be added (perhaps using Ctrl as the keyboard modifier)? Could there be problems with nested groups, though?
Inkscape 0.48+devel r9976 on OS X 10.5.8:
Great feature :) - haven't tested in depth though for further feedback because Inkscape immediately crashes/hangs if the mouse pointer is moved just a little bit while 'Alt' is still pressed and one object is selected while the other ones stacked below the pointer area are rendered with reduced opacity.
Reproducible with default preferences, SVG file used for testing attached (objects on three layers), as well as backtrace.
~suv
Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x000000bc 0x0014fee9 in SPItem::get_arenaitem (this=0x0, key=0) at sp-item.cpp:1544 1544 for ( SPItemView *iv = display ; iv ; iv = iv->next ) { (gdb) bt #0 0x0014fee9 in SPItem::get_arenaitem (this=0x0, key=0) at sp-item.cpp:1544 #1 0x000f22dc in sp_select_context_root_handler (event_context=0x5141428, event=0x6e88f08) at select-context.cpp:532 #2 0x0006df4c in sp_event_context_virtual_root_handler (event_context=0x5141428, event=0x6e88f08) at event-context.cpp:966 #3 0x0006e93c in sp_event_context_virtual_item_handler (event_context=0x5141428, item=0x54a5350, event=0x6e88f08) at event-context.cpp:1007 #4 0x00333cdc in sp_marshal_INT__POINTER_POINTER (closure=0x50d2510, return_value=0xbfffe65c, n_param_values=3, param_values=0x5141428, invocation_hint=0xbfffe510, marshal_data=0x30640) at helper/sp-marshal.cpp:247 #5 0x032c80a9 in g_closure_invoke () #6 0x032da163 in signal_emit_unlocked_R () #7 0x032db537 in g_signal_emit_valist () #8 0x018fe741 in gtk_signal_emit () #9 0x0023fd35 in sp_canvas_arena_send_event [inlined] () at display/canvas-arena.cpp:335 #10 sp_canvas_arena_event (item=0x52e2028, event=0x6e88f08) at display/canvas-arena.cpp:322 #11 0x00333f75 in sp_marshal_BOOLEAN__POINTER (closure=0x50b7350, return_value=0xbfffeaac, n_param_values=2, param_values=0x6d1f6f8, invocation_hint=0xbfffe960, marshal_data=0x23fc90) at helper/sp-marshal.cpp:124 #12 0x032c80a9 in g_closure_invoke () #13 0x032da2e8 in signal_emit_unlocked_R () #14 0x032db537 in g_signal_emit_valist () #15 0x018fe741 in gtk_signal_emit () #16 0x00264443 in emit_event (canvas=<value temporarily unavailable, due to optimizations>, event=0x6e88418) at display/sp-canvas.cpp:1364 #17 0x0026aba2 in sp_canvas_motion (widget=0x4388380, event=0x6e88418) at display/sp-canvas.cpp:1622 #18 0x0176652b in _gtk_marshal_BOOLEAN__BOXED () #19 0x032c80a9 in g_closure_invoke () #20 0x032da2e8 in signal_emit_unlocked_R () #21 0x032db537 in g_signal_emit_valist () #22 0x032dbaf9 in g_signal_emit () #23 0x018958a6 in gtk_widget_event_internal () #24 0x01764728 in gtk_propagate_event () #25 0x01764c9d in gtk_main_do_event () #26 0x02756b15 in gdk_event_dispatch () #27 0x03380a9d in g_main_context_dispatch () #28 0x0338459b in g_main_context_iterate () #29 0x03384877 in g_main_loop_run () #30 0x01763c71 in gtk_main () #31 0x01178d4b in Gtk::Main::run () #32 0x00005cec in ~vector [inlined] () at stl_vector.h:986 #33 sp_main_gui (argc=1, argv=0xbffff374) at main.cpp:993 #34 0x000048e6 in start () (gdb) quit