https://bugs.documentfoundation.org/show_bug.cgi?id=157671
Julien Nabet <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #3 from Julien Nabet <[email protected]> --- On pc Debian x86-64 with master sources updated today, I gave a new try, I could reproduce this. I retrieved some bts with gen rendering: first OnFocusGained is called with: #0 FmXGridCell::onFocusGained(com::sun::star::awt::FocusEvent const&) (this=0x559179c9c6a0, _rEvent=...) at svx/source/fmcomp/gridcell.cxx:3449 #1 0x00007f6642c831d0 in FmXGridCell::OnFocusGained(LinkParamNone*) (this=0x559179c9c6a0) at svx/source/fmcomp/gridcell.cxx:3467 #2 0x00007f6642c81c0d in FmXGridCell::LinkStubOnFocusGained(void*, LinkParamNone*) (instance=0x559179c9c6a0, data=0x0) at svx/source/fmcomp/gridcell.cxx:3458 #3 0x00007f6641e86b78 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const (this=0x559179c2ccd8, data=0x0) at include/tools/link.hxx:111 #4 0x00007f6641e81068 in svt::ControlBase::FocusInHdl(weld::Widget&) (this=0x559179c2cb90) at svtools/source/brwbox/ebbcontrols.cxx:396 #5 0x00007f6641e7cf0d in svt::ControlBase::LinkStubFocusInHdl(void*, weld::Widget&) (instance=0x559179c2cb90, data=...) at svtools/source/brwbox/ebbcontrols.cxx:394 #6 0x00007f6640130b28 in Link<weld::Widget&, void>::Call(weld::Widget&) const (this=0x559179bab738, data=...) at include/tools/link.hxx:111 #7 0x00007f66400f1f95 in SalInstanceWidget::HandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:735 #8 0x00007f664013af05 in SalInstanceComboBox<ComboBox>::CallHandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/inc/salvtables.hxx:934 #9 0x00007f6640125254 in SalInstanceComboBoxWithEdit::HandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:6765 #10 0x00007f66400f269d in SalInstanceWidget::EventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:822 #11 0x00007f66400eeefd in SalInstanceWidget::LinkStubEventListener(void*, VclWindowEvent&) (instance=0x559179bab690, data=...) at vcl/source/app/salvtables.cxx:820 #12 0x00007f663f7cedd8 in Link<VclWindowEvent&, void>::Call(VclWindowEvent&) const (this=0x559179d406b0, data=...) at include/tools/link.hxx:111 #13 0x00007f663f7cbb4e in vcl::Window::CallEventListeners(VclEventId, void*) (this=0x559179c92980, nEvent=VclEventId::WindowGetFocus, pData=0x0) at vcl/source/window/event.cxx:262 #14 0x00007f663f7cb64c in vcl::Window::PreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/window/event.cxx:70 #15 0x00007f663f9b6689 in Edit::PreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/control/edit.cxx:1925 #16 0x00007f663f93834d in vcl::Window::CompatPreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/window/window.cxx:3940 #17 0x00007f663f948501 in ImplCallPreNotify(NotifyEvent&) (rEvt=...) at vcl/source/window/winproc.cxx:69 FIRST GAP #18 0x00007f663f85b92e in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c92980, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:383 SECOND GAP #19 0x00007f663f925537 in vcl::Window::GrabFocus() (this=0x559179c92980) at vcl/source/window/window.cxx:2988 #20 0x00007f66400ef681 in SalInstanceWidget::grab_focus() (this=0x559179bab690) at vcl/source/app/salvtables.cxx:389 #21 0x00007f663f9fcde0 in InterimItemWindow::GetFocus() (this=0x559179c2cb90) at vcl/source/control/InterimItemWindow.cxx:135 #22 0x00007f663f93823c in vcl::Window::CompatGetFocus() (this=0x559179c2cb90) at vcl/source/window/window.cxx:3908 #23 0x00007f663f85b9a1 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c2cb90, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:384 #24 0x00007f663f925537 in vcl::Window::GrabFocus() (this=0x559179c2cb90) at vcl/source/window/window.cxx:2988 #25 0x00007f6641e8d298 in svt::EditBrowseBox::StartEditHdl(void*) (this=0x559179c52260) at svtools/source/brwbox/editbrowsebox.cxx:208 #26 0x00007f6641e8d1ed in svt::EditBrowseBox::LinkStubStartEditHdl(void*, void*) (instance=0x559179c52260, data=0x0) at svtools/source/brwbox/editbrowsebox.cxx:201 and when OnFocusLost is called: #0 FmXGridCell::onFocusLost(com::sun::star::awt::FocusEvent const&) (this=0x559179c9c6a0, _rEvent=...) at svx/source/fmcomp/gridcell.cxx:3455 #1 0x00007f6642c832d0 in FmXGridCell::OnFocusLost(LinkParamNone*) (this=0x559179c9c6a0) at svx/source/fmcomp/gridcell.cxx:3479 #2 0x00007f6642c81c3d in FmXGridCell::LinkStubOnFocusLost(void*, LinkParamNone*) (instance=0x559179c9c6a0, data=0x0) at svx/source/fmcomp/gridcell.cxx:3470 #3 0x00007f6641e86b78 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const (this=0x559179c2cd00, data=0x0) at include/tools/link.hxx:111 #4 0x00007f6641e810b8 in svt::ControlBase::FocusOutHdl(weld::Widget&) (this=0x559179c2cb90) at svtools/source/brwbox/ebbcontrols.cxx:402 #5 0x00007f6641e7cf3d in svt::ControlBase::LinkStubFocusOutHdl(void*, weld::Widget&) (instance=0x559179c2cb90, data=...) at svtools/source/brwbox/ebbcontrols.cxx:400 #6 0x00007f6640130b28 in Link<weld::Widget&, void>::Call(weld::Widget&) const (this=0x559179bab760, data=...) at include/tools/link.hxx:111 #7 0x00007f66400f1fca in SalInstanceWidget::HandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:737 #8 0x00007f664013af05 in SalInstanceComboBox<ComboBox>::CallHandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/inc/salvtables.hxx:934 #9 0x00007f6640125254 in SalInstanceComboBoxWithEdit::HandleEventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:6765 #10 0x00007f66400f269d in SalInstanceWidget::EventListener(VclWindowEvent&) (this=0x559179bab690, rEvent=...) at vcl/source/app/salvtables.cxx:822 #11 0x00007f66400eeefd in SalInstanceWidget::LinkStubEventListener(void*, VclWindowEvent&) (instance=0x559179bab690, data=...) at vcl/source/app/salvtables.cxx:820 #12 0x00007f663f7cedd8 in Link<VclWindowEvent&, void>::Call(VclWindowEvent&) const (this=0x559179d3c350, data=...) at include/tools/link.hxx:111 #13 0x00007f663f7cbb4e in vcl::Window::CallEventListeners(VclEventId, void*) (this=0x559179c92980, nEvent=VclEventId::WindowLoseFocus, pData=0x0) at vcl/source/window/event.cxx:262 #14 0x00007f663f7cb71a in vcl::Window::PreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/window/event.cxx:82 #15 0x00007f663f9b6689 in Edit::PreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/control/edit.cxx:1925 #16 0x00007f663f93834d in vcl::Window::CompatPreNotify(NotifyEvent&) (this=0x559179c92980, rNEvt=...) at vcl/source/window/window.cxx:3940 #17 0x00007f663f948501 in ImplCallPreNotify(NotifyEvent&) (rEvt=...) at vcl/source/window/winproc.cxx:69 FIRST GAP #18 0x00007f663f85b5a5 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c971a0, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:355 #19 0x00007f663f9b5fe0 in Edit::GetFocus() (this=0x559179c92980) at vcl/source/control/edit.cxx:1845 #20 0x00007f663f93823c in vcl::Window::CompatGetFocus() (this=0x559179c92980) at vcl/source/window/window.cxx:3908 #21 0x00007f663f85b9a1 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c92980, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:384 SECOND GAP #22 0x00007f663f925537 in vcl::Window::GrabFocus() (this=0x559179c92980) at vcl/source/window/window.cxx:2988 #23 0x00007f66400ef681 in SalInstanceWidget::grab_focus() (this=0x559179bab690) at vcl/source/app/salvtables.cxx:389 #24 0x00007f663f9fcde0 in InterimItemWindow::GetFocus() (this=0x559179c2cb90) at vcl/source/control/InterimItemWindow.cxx:135 #25 0x00007f663f93823c in vcl::Window::CompatGetFocus() (this=0x559179c2cb90) at vcl/source/window/window.cxx:3908 #26 0x00007f663f85b9a1 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c2cb90, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:384 #27 0x00007f663f925537 in vcl::Window::GrabFocus() (this=0x559179c2cb90) at vcl/source/window/window.cxx:2988 #28 0x00007f6641e8d298 in svt::EditBrowseBox::StartEditHdl(void*) (this=0x559179c52260) at svtools/source/brwbox/editbrowsebox.cxx:208 #29 0x00007f6641e8d1ed in svt::EditBrowseBox::LinkStubStartEditHdl(void*, void*) (instance=0x559179c52260, data=0x0) at svtools/source/brwbox/editbrowsebox.cxx:201 In both bts, I put FIRST GAP and SECOND GAP. After SECOND GAP, I think it's pure common part. Before FIRST GAP, I'm quite sure we can tell event is onFocusGain/onFocusLost depending on first or second bt. The interesting part is between both gaps In first one, we just call: #18 0x00007f663f85b92e in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c92980, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:383 in the second one: #18 0x00007f663f85b5a5 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c971a0, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:355 #19 0x00007f663f9b5fe0 in Edit::GetFocus() (this=0x559179c92980) at vcl/source/control/edit.cxx:1845 #20 0x00007f663f93823c in vcl::Window::CompatGetFocus() (this=0x559179c92980) at vcl/source/window/window.cxx:3908 #21 0x00007f663f85b9a1 in vcl::Window::ImplGrabFocus(GetFocusFlags) (this=0x559179c92980, nFlags=GetFocusFlags::NONE) at vcl/source/window/mouse.cxx:384 Now I'm not an expert but it seems a method call CompatGetFocus must some kind of technical debt on LO code that we must deal with. -- You are receiving this mail because: You are the assignee for the bug.
