John Labenski
2013-11-21 05:32:36 UTC
When I try to close my app using either the title-bar X close button or a
File->Close menu item the frame doesn't close. In fact, you can type into
the wxStyledTextCtrl, move splitters, show dialogs, but as soon as a menu
bar item is clicked it closes. The same effect occurs if the app is exited
using the menu accelerator and closing can be made to happen by pressing
Alt-F to pop-down the File menu..
This does not happen with the minimal, stc, or exec sample in wx 3.0, nor
does it happen with my app compiled against 2.8.
I do catch EVT_CLOSE() and I explicitly call event.Skip(true) just like the
samples. Even calling Destroy() on the frame in the EVT_CLOSE handler
doesn't help nor does remming out my handler altogether. It seems like the
event loop needs to be run to finish exiting.
Before I rip my app apart to find why it doesn't exit, has anyone else had
this problem?
Thanks,
John
Here's the backtrace after having pressed the title-bar close button when
it's sorta' hung and uses about 60% cpu.
#0 0x00007ff18255ff7d in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ff17c4f2982 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007ff17c4f3dbf in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007ff17c4f3ed2 in xcb_wait_for_reply () from
/usr/lib/x86_64-linux-gnu/libxcb.so.1
#4 0x00007ff18028f4e7 in _XReply () from
/usr/lib/x86_64-linux-gnu/libX11.so.6
#5 0x00007ff180274f85 in XGetGeometry () from
/usr/lib/x86_64-linux-gnu/libX11.so.6
#6 0x00007ff1814c6f00 in gdk_window_get_frame_extents () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#7 0x00007ff17652fb37 in
Oxygen::Gtk::gdk_toplevel_get_frame_size(_GdkDrawable*, int*, int*) () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#8 0x00007ff17652fe23 in
Oxygen::Gtk::gdk_window_map_to_toplevel(_GdkDrawable*, int*, int*, int*,
int*, bool) () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#9 0x00007ff176560c5e in Oxygen::Style::renderWindowBackground(_cairo*,
_GdkDrawable*, _GtkWidget*, _GdkRectangle*, int, int, int, int,
Oxygen::StyleOptions const&, Oxygen::Flags<Oxygen::TileSet::Tile>, bool)
() from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#10 0x00007ff1765631e9 in
Oxygen::Style::renderHoleBackground(_GdkDrawable*, _GtkWidget*,
_GdkRectangle*, int, int, int, int, Oxygen::StyleOptions const&,
Oxygen::Flags<Oxygen::TileSet::Tile>, int) ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#11 0x00007ff1764ea923 in ?? () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#12 0x00007ff176591134 in ?? () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#13 0x00007ff183453d8e in draw_border (widget=0x1d43300,
gdk_event=0x1fd9410, win=0x1e5db00) at
wxWidgets-trunk/src/gtk/window.cpp:346
#14 0x00007ff18183b645 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#15 0x00007ff180899188 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ff1808aadb1 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ff1808b24f9 in g_signal_emit_valist () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ff1808b2ae2 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ff18194b5f4 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00007ff1817c4678 in gtk_container_propagate_expose () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ff1817fabc8 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#22 0x00007ff1817c3204 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#23 0x00007ff18183b645 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#24 0x00007ff180899188 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ff1808aa8db in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ff1808b24f9 in g_signal_emit_valist () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ff1808b2ae2 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ff18194b5f4 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#29 0x00007ff18183a440 in gtk_main_do_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#30 0x00007ff18149cf2f in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#31 0x00007ff18149ced5 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#32 0x00007ff18149ced5 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#33 0x00007ff181499b6e in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#34 0x00007ff18149a458 in gdk_window_process_all_updates () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#35 0x00007ff18149a4b9 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#36 0x00007ff181479cf7 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#37 0x00007ff1805d03b6 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ff1805d0708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ff1805d0b0a in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ff181839277 in gtk_main () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#41 0x00007ff18343b6cb in wxGUIEventLoop::DoRun (this=0x1fd7cb0) at
wxWidgets-trunk/src/gtk/evtloop.cpp:65
#42 0x00007ff182e0c67e in wxEventLoopBase::Run (this=0x1fd7cb0) at
wxWidgets-trunk/src/common/evtloopcmn.cpp:78
#43 0x00007ff182dd095d in wxAppConsoleBase::MainLoop (this=0x1a96290) at
wxWidgets-trunk/src/common/appbase.cpp:334
#44 0x00007ff182dd0693 in wxAppConsoleBase::OnRun (this=0x1a96290) at
wxWidgets-trunk/src/common/appbase.cpp:259
#45 0x00007ff1834ee42d in wxAppBase::OnRun (this=0x1a96290) at
wxWidgets-trunk/src/common/appcmn.cpp:304
#46 0x00007ff182e3f50e in wxEntry (argc=@0x7ff1831b2170: 1, argv=0x1a96100)
at wxWidgets-trunk/src/common/init.cpp:495
#47 0x00007ff182e3f5d4 in wxEntry (argc=@0x7fff37ba601c: 1,
argv=0x7fff37ba6108) at wxWidgets-trunk/src/common/init.cpp:507
#48 0x0000000000418510 in main (argc=1, argv=0x7fff37ba6108) at
wxstedit/samples/stedit/wxstedit.cpp:120
File->Close menu item the frame doesn't close. In fact, you can type into
the wxStyledTextCtrl, move splitters, show dialogs, but as soon as a menu
bar item is clicked it closes. The same effect occurs if the app is exited
using the menu accelerator and closing can be made to happen by pressing
Alt-F to pop-down the File menu..
This does not happen with the minimal, stc, or exec sample in wx 3.0, nor
does it happen with my app compiled against 2.8.
I do catch EVT_CLOSE() and I explicitly call event.Skip(true) just like the
samples. Even calling Destroy() on the frame in the EVT_CLOSE handler
doesn't help nor does remming out my handler altogether. It seems like the
event loop needs to be run to finish exiting.
Before I rip my app apart to find why it doesn't exit, has anyone else had
this problem?
Thanks,
John
Here's the backtrace after having pressed the title-bar close button when
it's sorta' hung and uses about 60% cpu.
#0 0x00007ff18255ff7d in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ff17c4f2982 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007ff17c4f3dbf in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007ff17c4f3ed2 in xcb_wait_for_reply () from
/usr/lib/x86_64-linux-gnu/libxcb.so.1
#4 0x00007ff18028f4e7 in _XReply () from
/usr/lib/x86_64-linux-gnu/libX11.so.6
#5 0x00007ff180274f85 in XGetGeometry () from
/usr/lib/x86_64-linux-gnu/libX11.so.6
#6 0x00007ff1814c6f00 in gdk_window_get_frame_extents () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#7 0x00007ff17652fb37 in
Oxygen::Gtk::gdk_toplevel_get_frame_size(_GdkDrawable*, int*, int*) () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#8 0x00007ff17652fe23 in
Oxygen::Gtk::gdk_window_map_to_toplevel(_GdkDrawable*, int*, int*, int*,
int*, bool) () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#9 0x00007ff176560c5e in Oxygen::Style::renderWindowBackground(_cairo*,
_GdkDrawable*, _GtkWidget*, _GdkRectangle*, int, int, int, int,
Oxygen::StyleOptions const&, Oxygen::Flags<Oxygen::TileSet::Tile>, bool)
() from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#10 0x00007ff1765631e9 in
Oxygen::Style::renderHoleBackground(_GdkDrawable*, _GtkWidget*,
_GdkRectangle*, int, int, int, int, Oxygen::StyleOptions const&,
Oxygen::Flags<Oxygen::TileSet::Tile>, int) ()
from /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#11 0x00007ff1764ea923 in ?? () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#12 0x00007ff176591134 in ?? () from
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#13 0x00007ff183453d8e in draw_border (widget=0x1d43300,
gdk_event=0x1fd9410, win=0x1e5db00) at
wxWidgets-trunk/src/gtk/window.cpp:346
#14 0x00007ff18183b645 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#15 0x00007ff180899188 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ff1808aadb1 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ff1808b24f9 in g_signal_emit_valist () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ff1808b2ae2 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ff18194b5f4 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#20 0x00007ff1817c4678 in gtk_container_propagate_expose () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ff1817fabc8 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#22 0x00007ff1817c3204 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#23 0x00007ff18183b645 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#24 0x00007ff180899188 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ff1808aa8db in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ff1808b24f9 in g_signal_emit_valist () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ff1808b2ae2 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ff18194b5f4 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#29 0x00007ff18183a440 in gtk_main_do_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#30 0x00007ff18149cf2f in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#31 0x00007ff18149ced5 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#32 0x00007ff18149ced5 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#33 0x00007ff181499b6e in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#34 0x00007ff18149a458 in gdk_window_process_all_updates () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#35 0x00007ff18149a4b9 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#36 0x00007ff181479cf7 in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#37 0x00007ff1805d03b6 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ff1805d0708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ff1805d0b0a in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ff181839277 in gtk_main () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#41 0x00007ff18343b6cb in wxGUIEventLoop::DoRun (this=0x1fd7cb0) at
wxWidgets-trunk/src/gtk/evtloop.cpp:65
#42 0x00007ff182e0c67e in wxEventLoopBase::Run (this=0x1fd7cb0) at
wxWidgets-trunk/src/common/evtloopcmn.cpp:78
#43 0x00007ff182dd095d in wxAppConsoleBase::MainLoop (this=0x1a96290) at
wxWidgets-trunk/src/common/appbase.cpp:334
#44 0x00007ff182dd0693 in wxAppConsoleBase::OnRun (this=0x1a96290) at
wxWidgets-trunk/src/common/appbase.cpp:259
#45 0x00007ff1834ee42d in wxAppBase::OnRun (this=0x1a96290) at
wxWidgets-trunk/src/common/appcmn.cpp:304
#46 0x00007ff182e3f50e in wxEntry (argc=@0x7ff1831b2170: 1, argv=0x1a96100)
at wxWidgets-trunk/src/common/init.cpp:495
#47 0x00007ff182e3f5d4 in wxEntry (argc=@0x7fff37ba601c: 1,
argv=0x7fff37ba6108) at wxWidgets-trunk/src/common/init.cpp:507
#48 0x0000000000418510 in main (argc=1, argv=0x7fff37ba6108) at
wxstedit/samples/stedit/wxstedit.cpp:120
--
Please read http://www.wxwidgets.org/support/mlhowto.htm before posting.
To unsubscribe, send email to wx-users+***@googlegroups.com
or visit http://groups.google.com/group/wx-users
Please read http://www.wxwidgets.org/support/mlhowto.htm before posting.
To unsubscribe, send email to wx-users+***@googlegroups.com
or visit http://groups.google.com/group/wx-users