Author Topic: linux: Reload Modified Files -> Diff Selected -> Hangs UI  (Read 1344 times)

os2bird

  • Senior Community Member
  • Posts: 114
  • Hero Points: 13
linux: Reload Modified Files -> Diff Selected -> Hangs UI
« on: September 29, 2023, 02:55:52 PM »
I'm running beta3 on Fedora 38 (x86_64) and there are a bunch of situations where the SlickEdit UI will just lock up when it's about to pop up some new windows/dialog and it only being responsive to 'kill -9'. The UI is still talking to the window manager / X / Wayland, because I don't get the dialog about it being unresponsive.

1. When a file changed on disk and it pops up the "Reload Modified Files" dialog, pressing "Diff Selected" will trigger this.  The Diff dialog never shows. Here's the state:
(gdb) info threads
  Id   Target Id                                    Frame
* 1    Thread 0x7f47349ae940 (LWP 4127482) "vs_exe" 0x00007f473452735d in __GI___poll (fds=0x11d58880, nfds=3, timeout=99)
    at ../sysdeps/unix/sysv/linux/poll.c:29
  2    Thread 0x7f47242b96c0 (LWP 4127495) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393,
    expected=0, futex_word=0xb7b37b4) at futex-internal.c:57
  3    Thread 0x7f4720bff6c0 (LWP 4127497) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f4720bfbb20, op=393, expected=0, futex_word=0x7f4710009dc0) at futex-internal.c:57
  4    Thread 0x7f47207ff6c0 (LWP 4127498) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f47207fbb20, op=393, expected=0, futex_word=0x7f4710009dc0) at futex-internal.c:57
  5    Thread 0x7f471e8726c0 (LWP 4127499) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e86eb30, op=393, expected=0, futex_word=0x7f4710009ec4) at futex-internal.c:57
  6    Thread 0x7f471e7716c0 (LWP 4127500) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e76db30, op=393, expected=0, futex_word=0x7f4710009ec4) at futex-internal.c:57
  7    Thread 0x7f471e6706c0 (LWP 4127501) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e66cb30, op=393, expected=0, futex_word=0x7f4710009ec4) at futex-internal.c:57
  8    Thread 0x7f471e56f6c0 (LWP 4127502) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e56bb30, op=393, expected=0, futex_word=0x7f4710009ec4) at futex-internal.c:57
  9    Thread 0x7f471e46e6c0 (LWP 4127503) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e46ab30, op=393, expected=0, futex_word=0x7f4710009ec4) at futex-internal.c:57
  10   Thread 0x7f471e36d6c0 (LWP 4127504) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f471e3679d0, op=393, expected=0, futex_word=0x7f471000a0c0) at futex-internal.c:57
  11   Thread 0x7f470dfff6c0 (LWP 4127517) "vs_exe" 0x00007f47344f8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
    req=0x7f470dffbba0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
  12   Thread 0x7f470defe6c0 (LWP 4127518) "vs_exe" 0x00007f47344f8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
    req=0x7f470defabc0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
  13   Thread 0x7f470d00c6c0 (LWP 4127539) "vs_exe" 0x00007f47344ab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393,
    expected=0, futex_word=0xc224dd0) at futex-internal.c:57
(gdb) bt
#0  0x00007f473452735d in __GI___poll (fds=0x11d58880, nfds=3, timeout=99) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f47341715b9 in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x11d58880, timeout=<optimized out>, context=0x4f4cb50)
    at ../glib/gmain.c:4584
#2  g_main_context_iterate.isra.0 (context=0x4f4cb50, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4271
#3  0x00007f4734110b13 in g_main_context_iteration (context=0x4f4cb50, may_block=1) at ../glib/gmain.c:4343
#4  0x00007f473b9b9784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#5  0x00007f473bea7d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#6  0x00007f473b98c24f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#7  0x00007f473b98c555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#8  0x00000000006b9731 in gui_modal_wait(filewindow_t*) ()
#9  0x00000000006c4bab in p_modal_wait_op() ()
#10 0x0000000000616dc2 in run_proc(int) ()
#11 0x0000000000617109 in run_proc_immediate2(m_s*, int, int, VSARGTYPE const*, int, int) [clone .isra.436] ()
#12 0x00000000006172d7 in run_proc_immediate(int, int, VSARGTYPE const*, int, int) ()
#13 0x000000000088cef3 in se_call_event(filewindow_t*, unsigned int, int, int, VSARGTYPE const*, int) ()
#14 0x00007f473b9a4c03 in QObject::event(QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#15 0x00007f473be5a86c in QWidget::event(QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#16 0x00007f473be0bdac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#17 0x00007f473be12523 in QApplication::notify(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#18 0x00007f473b98da7d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#19 0x00007f473b990695 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#20 0x00007f473b9b9633 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#21 0x00007f473411348c in g_main_dispatch (context=0x4f4cb50) at ../glib/gmain.c:3460
#22 g_main_context_dispatch (context=0x4f4cb50) at ../glib/gmain.c:4200
#23 0x00007f4734171648 in g_main_context_iterate.isra.0 (context=0x4f4cb50, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#24 0x00007f4734110b13 in g_main_context_iteration (context=0x4f4cb50, may_block=1) at ../glib/gmain.c:4343
#25 0x00007f473b9b9784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#26 0x00007f473bea7d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#27 0x00007f473b98c24f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#28 0x00007f473b98c555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#29 0x00000000006b9731 in gui_modal_wait(filewindow_t*) ()
#30 0x00000000006c4bab in p_modal_wait_op() ()
#31 0x0000000000809aa3 in pmethod_op() ()
#32 0x0000000000616dc2 in run_proc(int) ()
#33 0x0000000000617109 in run_proc_immediate2(m_s*, int, int, VSARGTYPE const*, int, int) [clone .isra.436] ()
#34 0x00000000006172d7 in run_proc_immediate(int, int, VSARGTYPE const*, int, int) ()
#35 0x000000000088d181 in se_call_proc(filewindow_t*, char const*, int, int, VSARGTYPE const*) ()
#36 0x00000000008bc688 in vsCtlUtil::customEvent(QEvent*) ()
#37 0x00007f473b9a4c03 in QObject::event(QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#38 0x00007f473be5a86c in QWidget::event(QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#39 0x00007f473be0bdac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#40 0x00007f473be12523 in QApplication::notify(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#41 0x00007f473b98da7d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#42 0x00007f473b990695 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#43 0x00007f473b9b9633 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#44 0x00007f473411348c in g_main_dispatch (context=0x4f4cb50) at ../glib/gmain.c:3460
#45 g_main_context_dispatch (context=0x4f4cb50) at ../glib/gmain.c:4200
#46 0x00007f4734171648 in g_main_context_iterate.isra.0 (context=0x4f4cb50, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#47 0x00007f4734110b13 in g_main_context_iteration (context=0x4f4cb50, may_block=1) at ../glib/gmain.c:4343
#48 0x00007f473b9b9784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#49 0x00007f473bea7d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#50 0x00007f473b98c24f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#51 0x00007f473b98c555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#52 0x00007f473b991599 in QCoreApplication::exec() () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#53 0x00000000004d28aa in vmain(int, char**) ()
#54 0x0000000001ec3439 in xmain ()
#55 0x000000000046e069 in main ()
(gdb)


2. Another scenario that triggers a similar issue here is to try bring up the "Clipboards" dialog (Ctrl+Shift+V here) while in the "Find and Replace" dialog.

(gdb) info threads
  Id   Target Id                                  Frame
* 1    Thread 0x7f3695df7940 (LWP 78056) "vs_exe" 0x00007f368eb2735d in __GI___poll (fds=0x1220d200, nfds=3, timeout=249)
    at ../sysdeps/unix/sysv/linux/poll.c:29
  2    Thread 0x7f367ea6b6c0 (LWP 78065) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393,
    expected=0, futex_word=0x102b2654) at futex-internal.c:57
  3    Thread 0x7f367b1ff6c0 (LWP 78067) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f367b1fbb20, op=393, expected=0, futex_word=0x7f366c009dc4) at futex-internal.c:57
  4    Thread 0x7f367adff6c0 (LWP 78068) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f367adfbb20, op=393, expected=0, futex_word=0x7f366c009dc4) at futex-internal.c:57
  5    Thread 0x7f3678e726c0 (LWP 78069) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f3678e6eb30, op=393, expected=0, futex_word=0x7f366c009ec0) at futex-internal.c:57
  6    Thread 0x7f3678d716c0 (LWP 78070) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f3678d6db30, op=393, expected=0, futex_word=0x7f366c009ec0) at futex-internal.c:57
  7    Thread 0x7f3678c706c0 (LWP 78071) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f3678c6cb30, op=393, expected=0, futex_word=0x7f366c009ec0) at futex-internal.c:57
  8    Thread 0x7f3678b6f6c0 (LWP 78072) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f3678b6bb30, op=393, expected=0, futex_word=0x7f366c009ec0) at futex-internal.c:57
  9    Thread 0x7f3678a6e6c0 (LWP 78073) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f3678a6ab30, op=393, expected=0, futex_word=0x7f366c009ec0) at futex-internal.c:57
  10   Thread 0x7f367896d6c0 (LWP 78074) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true,
    abstime=0x7f36789679d0, op=393, expected=0, futex_word=0x7f366c00a0c4) at futex-internal.c:57
  11   Thread 0x7f36784a06c0 (LWP 78078) "vs_exe" 0x00007f368eaf8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
    req=0x7f367849cba0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
  12   Thread 0x7f367839f6c0 (LWP 78079) "vs_exe" 0x00007f368eaf8413 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
    req=0x7f367839bbc0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
  13   Thread 0x7f366814a6c0 (LWP 78085) "vs_exe" 0x00007f368eaab1d9 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393,
    expected=0, futex_word=0x121a26e0) at futex-internal.c:57
(gdb) bt
#0  0x00007f368eb2735d in __GI___poll (fds=0x1220d200, nfds=3, timeout=249) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f368e7715b9 in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x1220d200, timeout=<optimized out>, context=0x5080b50)
    at ../glib/gmain.c:4584
#2  g_main_context_iterate.isra.0 (context=0x5080b50, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4271
#3  0x00007f368e710b13 in g_main_context_iteration (context=0x5080b50, may_block=1) at ../glib/gmain.c:4343
#4  0x00007f36961b9784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#5  0x00007f36966a7d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#6  0x00007f369618c24f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#7  0x00007f369618c555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#8  0x00000000006b9731 in gui_modal_wait(filewindow_t*) ()
#9  0x00000000006c4bab in p_modal_wait_op() ()
#10 0x0000000000616dc2 in run_proc(int) ()
#11 0x000000000083ff99 in call_key_common(filewindow_t*, int, int, unsigned int, unsigned int, bool, unsigned char) ()
#12 0x0000000000840e25 in vs_call_keya(filewindow_t*, int, int) ()
#13 0x00000000008b90fb in vsCtlSlickCExecuteEvent ()
#14 0x00000000008c1e7c in vsQTSlickCExecuteKeyEvent ()
#15 0x00000000008c2ff6 in vsCtlComboBox::keyPressEvent(QKeyEvent*) ()
#16 0x000000000092a4c4 in vmyQComboBox::keyPressEvent(QKeyEvent*) ()
#17 0x00007f369665ab6b in QWidget::event(QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#18 0x00007f369660bdac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#19 0x00007f3696613257 in QApplication::notify(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#20 0x00007f369618da7d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#21 0x00007f36966a53c0 in QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#22 0x00007f36966a575e in QKeyMapperPrivate::translateKeyEvent(QWidget*, _XEvent const*, bool) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#23 0x00007f3696680f98 in QApplication::x11ProcessEvent(_XEvent*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#24 0x00007f36966a7cc2 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#25 0x00007f368e71348c in g_main_dispatch (context=0x5080b50) at ../glib/gmain.c:3460
#26 g_main_context_dispatch (context=0x5080b50) at ../glib/gmain.c:4200
#27 0x00007f368e771648 in g_main_context_iterate.isra.0 (context=0x5080b50, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#28 0x00007f368e710b13 in g_main_context_iteration (context=0x5080b50, may_block=1) at ../glib/gmain.c:4343
#29 0x00007f36961b9784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#30 0x00007f36966a7d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/slickedit-pro2023beta3/bin/libQtGui.so.4
#31 0x00007f369618c24f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#32 0x00007f369618c555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#33 0x00007f3696191599 in QCoreApplication::exec() () from /opt/slickedit-pro2023beta3/bin/libQtCore.so.4
#34 0x00000000004d28aa in vmain(int, char**) ()
#35 0x0000000001ec3439 in xmain ()
#36 0x000000000046e069 in main ()


This is another issue that has been happening for a while before the betas.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 7043
  • Hero Points: 535
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #1 on: September 29, 2023, 04:14:30 PM »
I'm wonder if you have SlickEdit maximized and/or the dialog is showing up being a SlickEdit window? It sounds like a modal dialog box is running which is why SlickEdit is still responding to key strokes/events.

os2bird

  • Senior Community Member
  • Posts: 114
  • Hero Points: 13
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #2 on: September 29, 2023, 07:31:41 PM »
Yes, I work with the SlickEdit window maximized on the middle monitor. The “Reload Modified Files” dialog is modal, the “Find and Replace” isn’t.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 7043
  • Hero Points: 535
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #3 on: September 29, 2023, 08:08:32 PM »
It doesn't matter whether the launched from dialog is modal. The dialog being displayed for "Diff select" is modal. The Clipboards dialog (Ctrl+Shift+V) is also modal. The modal dialog is probably hidden behind the SlickEdit main window. If you unmaximize the main window and maybe even move it around, you should be able to find the modal dialog.
« Last Edit: September 29, 2023, 08:19:30 PM by Clark »

Rodney

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 798
  • Hero Points: 54
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #4 on: September 29, 2023, 08:13:20 PM »
@os2bird
Please correct the email address in your profile. You will not receive topic notification emails until you do so.

++rodney

os2bird

  • Senior Community Member
  • Posts: 114
  • Hero Points: 13
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #5 on: September 29, 2023, 09:15:00 PM »
Clark is right, for the 2nd scenario with "Find and Replace", there is a "Select Text to Paste" window in the gnome looking glass window list. Unfortunately, I'm not smart enough to tease more information out of the lg tool at this point.  With gdbus I was eventually able to display the frame rectangle for the hidden window, and the x,y,width, and height was sensible (upper half of the left monitor, x=y=0).

Not sure if this is helpful, but the clipboard window usually shows up on the screen to the left of the slickedit window when I use if from other contexts, though I'm not sure if that matters much here.  I moved it to the same monitor, restarted slickedit to save the new position and it made no difference for the problem.   I've also tried using the system Qt libraries, but that doesn't help either.

Similarly, there seems to be a diff window hiding somewhere too for the first scenario with the "Reload Modified Files" dialog.
« Last Edit: October 02, 2023, 09:40:24 AM by os2bird »

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 7043
  • Hero Points: 535
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #6 on: October 02, 2023, 01:05:03 PM »
Try the Qt 5 installer. I have noticed that it can make a difference. For example, I use Linux Mint because I like the desktop manager. With Qt 4 version, when you have modified files and press Alt+F4 (has to be Alt+F4), the dialog prompting to save modified files ends up behind the main window. This doesn't seem to happen with the Qt 5 version.

The v28 Qt 5 beta 3 installer is here:

https://support.slickedit.com/outbound/2800/se_28000003_linux64qt5_beta3.tar.gz


os2bird

  • Senior Community Member
  • Posts: 114
  • Hero Points: 13
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #7 on: October 04, 2023, 09:21:15 AM »
Thanks Clark, the problem is not present with the Qt5 build, the dialogs show up as expected now.

That said, there an really annoying issue when closing the "Find and Replace" dialog, the cursor state doesn't get restored.  What I mean is that I'm using the "vertical cursor" style with a 1Hz blink rate, so when the "Find and Replace" dialog pops up it turns into a block cursor and stops blinking, so far so good. However, when I close the dialog the cursor remains in non-blinking-block-mode. I can work around the issue by clicking on the "Find and Replace" dialog with the mouse, or I can bring up the "Select Text to Paste" dialog while "Find and Replace" is open.  So, it kind of seems like the dialog isn't fully activated, in focus or something.
Update: After installing system updates and rebooting the problems went away, so please ignore.

Window management on Linux is such a joy. ;-)
« Last Edit: October 04, 2023, 11:21:30 AM by os2bird »

os2bird

  • Senior Community Member
  • Posts: 114
  • Hero Points: 13
Re: linux: Reload Modified Files -> Diff Selected -> Hangs UI
« Reply #8 on: October 06, 2023, 08:13:32 PM »
The problem with the "Find and Replace" and the "Select text to Paste" dialog happened with the Qt5 build while running with some malloc debug enabled (env.var. MALLOC_CHECK_=3; hoping to more useful info on a spurious 'smalloc(): unaligned fastbin chunk detected' that has triggered at least twice). I suspect the heap debugging code slow things down a little, hinting at some async event issue somewhere (could be in the window manager too ofc).

The cursor restore-and-resume-blinking problem has also popped up its head a few times today, once even without enabling the heap debugging.