Display Dialog: Call for Testing

Harald Judt h.judt at gmx.at
Mon Oct 15 12:03:49 CEST 2012


Hi Simon and Sean,

Am 12.10.2012 11:40, schrieb Simon Steinbeiß:
> Once again, this time in short.
> To see the status quo and what has changed (with screenshots):
> http://wiki.xfce.org/design/xfce4-settings/display
>
> Code is here:
> http://git.xfce.org/xfce/xfce4-settings/log/?h=bluesabre/display-settings
>
> Please focus on changing display-positions in your multihead-setup when
> testing, because that is the main target of this branch.
>
> Looking forward to your feedback!
> Simon

Quick tests on my laptop (radeon r600g open source) with the built-in 
display panel and an external display showed no bugs so far in advanced 
mode, except the ones you've already mentioned. Everything works fine 
and looks nice too. The display identification popups are stylish yet 
unobtrusive and don't get in the way. I did not notice any flickering.

One thing though: You should make the confirmation dialog modal. I could 
focus the display settings window and change settings while the 
confirmation dialog was being displayed.

Next, I had a look at the minimal mode and it did not really work well 
here. First, there may be a build problem. Here are the steps I 
performed to build the display branch from git:
1) ./autogen --enable-gtk-docs
2) add some glade file to de/POTFILES.IN to make make stop complaining
3) make distcheck

While it built fine, it couldn't find some icons on runtime and I 
noticed they are searched for in the wrong place. That may be a problem 
with my system though, I'm not sure.

Next, when I tried different layouts, I got segmentation faults like 
this one:

Program received signal SIGSEGV, Segmentation fault.
display_settings_minimal_extend_right_toggled (builder=<optimized out>, 
button=<optimized out>) at main.c:1827
1827    main.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  display_settings_minimal_extend_right_toggled (builder=<optimized 
out>, button=<optimized out>)
     at main.c:1827
#1  display_settings_minimal_extend_right_toggled (button=<optimized 
out>, builder=<optimized out>)
     at main.c:1787
#2  0x00007ffff6507e2d in _g_closure_invoke_va (closure=0x661390, 
return_value=0x0, instance=0x6bd900,
     args=0x7fffffffc318, n_params=0, param_types=<optimized out>) at 
gclosure.c:840
#3  0x00007ffff6520581 in g_signal_emit_valist (instance=0x6bd900, 
signal_id=<optimized out>, detail=0,
     var_args=<optimized out>) at gsignal.c:3211
#4  0x00007ffff6521092 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>,
     detail=<optimized out>) at gsignal.c:3356
#5  0x00007ffff72b2738 in gtk_radio_button_clicked (button=0x6bd900) at 
gtkradiobutton.c:712
#6  0x00007ffff6507e2d in _g_closure_invoke_va (closure=0x6b7430, 
return_value=0x0, instance=0x6bd900,
     args=0x7fffffffc6c8, n_params=0, param_types=<optimized out>) at 
gclosure.c:840
#7  0x00007ffff6520581 in g_signal_emit_valist (instance=0x6bd900, 
signal_id=<optimized out>, detail=0,
     var_args=<optimized out>) at gsignal.c:3211
#8  0x00007ffff6521092 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>,
     detail=<optimized out>) at gsignal.c:3356
#9  0x00007ffff7339bcd in gtk_toggle_button_released (button=0x6bd900) 
at gtktogglebutton.c:485
#10 gtk_toggle_button_released (button=0x6bd900) at gtktogglebutton.c:478
#11 0x00007ffff6507e2d in _g_closure_invoke_va (closure=0x6bfc70, 
return_value=0x0, instance=0x6bd900,
     args=0x7fffffffca58, n_params=0, param_types=<optimized out>) at 
gclosure.c:840
#12 0x00007ffff6520581 in g_signal_emit_valist (instance=0x6bd900, 
signal_id=<optimized out>, detail=0,
     var_args=<optimized out>) at gsignal.c:3211
#13 0x00007ffff6521092 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>,
     detail=<optimized out>) at gsignal.c:3356
#14 0x00007ffff71cd16d in gtk_button_button_release (widget=<optimized 
out>, event=<optimized out>)
     at gtkbutton.c:1617
#15 0x00007ffff7276518 in _gtk_marshal_BOOLEAN__BOXED (closure=0x667bd0, 
return_value=0x7fffffffccd0,
     n_param_values=<optimized out>, param_values=0x7fffffffcd40, 
invocation_hint=<optimized out>,
     marshal_data=<optimized out>) at gtkmarshalers.c:86
#16 0x00007ffff6507c02 in g_closure_invoke (closure=0x667bd0, 
return_value=0x7fffffffccd0, n_param_values=2,
     param_values=0x7fffffffcd40, invocation_hint=<optimized out>) at 
gclosure.c:777
#17 0x00007ffff6519219 in signal_emit_unlocked_R (node=<optimized out>, 
detail=0, instance=<optimized out>,
     emission_return=0x7fffffffcf10, instance_and_params=0x7fffffffcd40) 
at gsignal.c:3589
#18 0x00007ffff6520bde in g_signal_emit_valist (instance=0x6bd900, 
signal_id=<optimized out>, detail=0,
     var_args=<optimized out>) at gsignal.c:3310
#19 0x00007ffff6521092 in g_signal_emit (instance=<optimized out>, 
signal_id=<optimized out>,
     detail=<optimized out>) at gsignal.c:3356
#20 0x00007ffff738f211 in gtk_widget_event_internal (widget=0x6bd900, 
event=0xb28110) at gtkwidget.c:5010
#21 0x00007ffff72746a3 in IA__gtk_propagate_event (widget=0x6bd900, 
event=0xb28110) at gtkmain.c:2490
#22 0x00007ffff7274a03 in IA__gtk_main_do_event (event=0xb28110) at 
gtkmain.c:1685
#23 0x00007ffff6cdb58c in gdk_event_dispatch (source=<optimized out>, 
callback=<optimized out>,
     user_data=<optimized out>) at gdkevents-x11.c:2403
#24 0x00007ffff6220b73 in g_main_dispatch (context=0x654470) at gmain.c:2539
#25 g_main_context_dispatch (context=0x654470) at gmain.c:3075
#26 0x00007ffff6220ec0 in g_main_context_iterate (dispatch=1, 
block=<optimized out>, context=0x654470,
     self=<optimized out>) at gmain.c:3146
#27 g_main_context_iterate (context=0x654470, block=<optimized out>, 
dispatch=1, self=<optimized out>)
     at gmain.c:3083
#28 0x00007ffff62212ba in g_main_loop_run (loop=0xb25f30) at gmain.c:3340
#29 0x00007ffff7273a57 in IA__gtk_main () at gtkmain.c:1257
#30 0x0000000000404539 in display_settings_show_minimal_dialog 
(error=0x0, event_base=<optimized out>,
     display=<optimized out>) at main.c:2007
#31 main (argc=1, argv=0x7fffffffd418) at main.c:2141

Looks strange. I think this happened when I switched back from two 
non-mirrored displays to a single display, then tried to extend to the 
right and that's where it crashed.

Apart from that, the advanced settings are more useful for my purposes, 
as I prefer to put the external monitor above my laptop display. While 
the quick settings mode is a good idea, I wonder if it wouldn't be more 
useful to allow the user to save and switch between custom presets? Of 
course, that would be more complicate too, and maybe unnecessary since 
you're planning to do an icon-view and drag-and-drop anyway.

All in all, nice improvements!

Harald

-- 
`Experience is the best teacher.'



More information about the Xfce4-dev mailing list