Bug 127533 - Have the tip of the day window available while following the tip.
Summary: Have the tip of the day window available while following the tip.
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
6.3.1.2 release
Hardware: All All
: medium enhancement
Assignee: Matt K
URL:
Whiteboard: target:7.2.0
Keywords: difficultyMedium, easyHack, skillCpp, topicUI
: 126763 128144 (view as bug list)
Depends on:
Blocks: Tip-Of-The-Day
  Show dependency treegraph
 
Reported: 2019-09-13 08:31 UTC by Corné Beerse
Modified: 2024-01-18 22:19 UTC (History)
8 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Corné Beerse 2019-09-13 08:31:45 UTC
Description:
This morning I got a 'tip of the day' in LO-calc that I liked. Unfortunately, I needed to close/confirm the window to follow the tip. I wanted to return to the tip window but it was gone.

Steps to Reproduce:
1. Open LibreOffice Calc
2. Look at the tip of the day
3. Try to follow it 
4. See the tip of the day window is gone.

Actual Results:
left over with the idea of a tip and a loose route to the solution.

Expected Results:
Be able to return to the tip of the day 


Reproducible: Always


User Profile Reset: No



Additional Info:
There are alternate ways to return to the tip of the day. Like a new option at the help menu. I think about creating an alternate enhancement request for that.
Comment 1 Corné Beerse 2019-09-13 09:24:44 UTC
The idea came while working on Libre Office Calc, hence I started this bug on calc.
Since the TipOfTheDay and the help menu are on every Window of Libre Office, I changed it to UI.

On the version: This is the version I work on. If it is not to much work, it could be transferred to older (supported) versions too.
Comment 2 Xisco Faulí 2019-10-03 11:27:17 UTC
This is fixed since the dialog is no longer modal after https://git.libreoffice.org/core/commit/97bcd0e416b1fb725b5aaade811e80d46fdaf1e2
Closing as duplicate of bug 127400

*** This bug has been marked as a duplicate of bug 127400 ***
Comment 3 Xisco Faulí 2019-10-07 08:05:07 UTC
The dialog became modal again in 
https://git.libreoffice.org/core/commit/9be58fddb9c88d0fb058dcb7936a17c9d45d0237, thus, moving it to NEW...

Code pointer: https://bugs.documentfoundation.org/show_bug.cgi?id=127946#c7
Comment 4 Xisco Faulí 2019-10-07 08:08:54 UTC
*** Bug 126763 has been marked as a duplicate of this bug. ***
Comment 5 Heiko Tietze 2019-10-15 06:39:18 UTC
Xisco, can't we resolve this as fixed?
Comment 6 Xisco Faulí 2019-10-15 07:31:41 UTC
(In reply to Heiko Tietze from comment #5)
> Xisco, can't we resolve this as fixed?

mmm why?
At least in

Version: 6.4.0.0.alpha0+
Build ID: 4704acf63f4fed3a99fc95ff63c82eb5a9ae3908
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

I can't do anything else until I close the dialog...
Comment 7 Heiko Tietze 2019-10-15 07:59:55 UTC
*** Bug 128144 has been marked as a duplicate of this bug. ***
Comment 8 Matt K 2021-03-24 01:39:24 UTC
Using version 7.1.1.2, there is a Help menu option for "Show Tip of the Day" which shows the same tip that was closed previously.  Is there any other change to be made here?
Comment 9 Heiko Tietze 2021-03-24 08:28:50 UTC
(In reply to Matt K from comment #8)
> Using version 7.1.1.2, there is a Help menu option for "Show Tip of the Day"
> which shows the same tip that was closed previously.  Is there any other
> change to be made here?

While Corné's wish probably was to have the dialog amodal (which was problematic and is not a good solution anyway) the access via Help > TotD is a proper solution to me.

Thanks for looking into it.
Comment 10 Matt K 2021-03-27 02:10:09 UTC
(In reply to Heiko Tietze from comment #9)
> While Corné's wish probably was to have the dialog amodal (which was
> problematic and is not a good solution anyway) the access via Help > TotD is
> a proper solution to me.
> 
> Thanks for looking into it.

Sure, but perhaps the Tip of the day dialog should be updated to inform the user that they can re-show the tips is via Help -> TotD?
Comment 11 Corné Beerse 2021-03-30 12:39:42 UTC
For all of you: nice try and good you are looking at it.

What I intend to say is that the 'tip of the day' window is showing some instructions. With a clear view at these instructions, I like to test them. So I move the little window to the side and like to push buttons at the opened application to see if the tip actually works. At the same time, I do need the tip-of-the-day widow open with the tip exposed so i can follow the instructions.

With the current setup, I do need to memorize the entire tip of the day, click the <ok> button and only then, after the tip of the day window is closed, I can perform the action as shown in the tip of the day.

For you rexample: Memorize the next tip of the day:
    Use Page/Slide -> Properties -> Fit object to paper fomat in Draw/Impress to resize the objects so that they fit on yoru chose paper format.
Now close this window, open LibreOffice and see if you can find the option to see how it works. After you opened Libre Office, I bet you re-opened this message to peek at the mentioned path. That's why i like to keep the Tip of the Day wlndow open while working in Libre Office.

BTW: I donnot care how the window is generated. The main thing is: there is no reason to block the Libre Office interface while showing this tiny help window so donnot block the libre office interface. That is the same with every other window: If there is no reason to block the other windows, donnot block.

In the end, I would like to have my entire screen cluttered with multiple tip-of-the-day messages. That should be no problem.
Comment 12 Matt K 2021-04-01 03:28:25 UTC
Assigning to myself
Comment 13 Matt K 2021-04-01 03:32:06 UTC
(In reply to Heiko Tietze from comment #9)
> While Corné's wish probably was to have the dialog amodal (which was
> problematic and is not a good solution anyway)

I think the behavior described in comment 11 could be implemented; is there a reason why this wouldn't be a good solution?
Comment 14 Heiko Tietze 2021-04-06 08:08:32 UTC
See c2 and c3. I disagree with Corné, dialogs should be modal (and limited to only necessary). TotD is not a manual to follow step by step; if a tip is too difficult to follow we should remove it.
Comment 15 Matt K 2021-04-07 00:52:13 UTC
(In reply to Heiko Tietze from comment #14)

It seems that we just need to find a way to cleanup the dialog when the application closes.

I think modal dialogs are only for cases where the main window UI would be impacted by the actions performed by the dialog, or to alert the user of an error.  That doesn't seem necessary for TotD.

There are multiple existing dialogs that are non-modal.  For example, "Tools->Extension Manager", "Tools->Macros->XML Filter Settings", "Tools->Form Navigator", "Tools->Spelling", and the "Sidebar" when dragged off the side.

There is also bug 128144 which would still be a problem if the dialog isn't changed.
Comment 16 Corné Beerse 2021-04-11 22:13:01 UTC
(In reply to Heiko Tietze from comment #14)
> See c2 and c3. I disagree with Corné, dialogs should be modal (and limited
> to only necessary). TotD is not a manual to follow step by step; if a tip is
> too difficult to follow we should remove it.

I'm sorry, English is not my native language, I have no idea of your definition of 'modal'. My definition is way out of scope here.

What I do know, is that a tip of the day is a kind of manual and a couple of steps to follow step by step. That is at least for most tips I've seen in Libre Office.

It is not that the tip of the day is to dificult, it is that I would like to move it to the side, do my thing and then return to it. By the way, no widnow should block other windows unless explicitly necesary. A tip of the day window has no reason to block any other window at any time.
Comment 17 Buovjaga 2021-04-12 05:56:09 UTC
(In reply to Corné Beerse from comment #16)
> (In reply to Heiko Tietze from comment #14)
> > See c2 and c3. I disagree with Corné, dialogs should be modal (and limited
> > to only necessary). TotD is not a manual to follow step by step; if a tip is
> > too difficult to follow we should remove it.
> 
> I'm sorry, English is not my native language, I have no idea of your
> definition of 'modal'. My definition is way out of scope here.

https://en.wikipedia.org/wiki/Modal_window
Comment 18 Commit Notification 2021-05-18 07:02:47 UTC
Matt K committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/7f032b2f16fad56beea1df826eb59c6f85c71268

tdf#127533 Make Tip-of-the-Day dialog non-modal and allow multiple tips to open

It will be available in 7.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 19 Corné Beerse 2021-05-18 09:27:15 UTC
Thanks for the pointer to the wiki 'modal_window', now I understand.

With that, Thanks for the anouchement that the tip-of-the-day wil change to non-modal and allow multiple. I'm looking forward to it.
Comment 20 Gülşah Köse 2021-05-19 06:40:59 UTC
Hello,

There is a crash that I guess related to the latest commit of this bug.

1-) Open LibreOffice
2-) Open Writer
3-) Click to "OK" button of the tip of day dialog

LibreOffice crashed with

terminate called after throwing an instance of 'std::bad_function_call'
  what():  bad_function_call

Thread 1 "soffice.bin" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) 


And it tries to recover document

Back trace is here:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7a32859 in __GI_abort () at abort.c:79
#2  0x00007ffff78a8951 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff78b447c in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff78b44e7 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff78b4799 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff78ab590 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007fffe45c06a7 in std::function<void (int)>::operator()(int) const (this=0x7fffffffb850, __args#0=1) at /usr/include/c++/9/bits/std_function.h:687
#8  0x00007fffe4558a87 in (anonymous namespace)::GtkInstanceDialog::asyncresponse(gint) (this=0x55555b49d060, ret=-5) at /media/gulsah/EK/libreoffice-public-2/vcl/unx/gtk3/gtkinst.cxx:7874
#9  0x00007fffe454c6bf in (anonymous namespace)::GtkInstanceDialog::signalAsyncResponse(GtkWidget*, gint, gpointer) (ret=-5, widget=0x55555b49d060) at /media/gulsah/EK/libreoffice-public-2/vcl/unx/gtk3/gtkinst.cxx:5032
#10 0x00007fffe8f66802 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007fffe8f7a814 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007fffe8f85bbe in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007fffe8f66a56 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007fffe8f85b48 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007fffe3d462ae in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007fffe3d46318 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007fffe8f66802 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007fffe8f7a962 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007fffe8f85bbe in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007fffe3d44754 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007fffe3ff5ae1 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007fffe8f66a56 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007fffe8f85b48 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007fffe3e0cfcc in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007fffe8f69c56 in g_cclosure_marshal_VOID__BOXEDv () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007fffe8f66a56 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007fffe8f85b48 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007fffe3e0a012 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007fffe3e0b65b in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007fffe3e0e646 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007fffe3dd5bb0 in gtk_event_controller_handle_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007fffe3f9816d in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007fffe3fef5ef in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#39 0x00007fffe8f66a56 in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007fffe8f84df1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007fffe8f860f3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007fffe3f99c23 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007fffe3e55128 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007fffe3e573db in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007fffe3b3ff79 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#46 0x00007fffe3b73106 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#47 0x00007fffe8e7917d in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007fffe8e79400 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007fffe8e794a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007fffe4534381 in GtkSalData::Yield(bool, bool) (this=0x55555565dc10, bWait=true, bHandleAllCurrentEvents=false) at /media/gulsah/EK/libreoffice-public-2/vcl/unx/gtk3/gtkdata.cxx:394
#51 0x00007fffe4538b18 in GtkInstance::DoYield(bool, bool) (this=0x555555665820, bWait=true, bHandleAllCurrentEvents=false) at /media/gulsah/EK/libreoffice-public-2/vcl/unx/gtk3/gtkinst.cxx:412
#52 0x00007fffefaad33d in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /media/gulsah/EK/libreoffice-public-2/vcl/source/app/svapp.cxx:465
#53 0x00007fffefaadb45 in Application::Yield() () at /media/gulsah/EK/libreoffice-public-2/vcl/source/app/svapp.cxx:532
#54 0x00007fffefaad03a in Application::Execute() () at /media/gulsah/EK/libreoffice-public-2/vcl/source/app/svapp.cxx:444
#55 0x00007ffff7c8ba88 in desktop::Desktop::Main() (this=0x7fffffffda40) at /media/gulsah/EK/libreoffice-public-2/desktop/source/app/app.cxx:1587
#56 0x00007fffefacb08d in ImplSVMain() () at /media/gulsah/EK/libreoffice-public-2/vcl/source/app/svmain.cxx:198
#57 0x00007fffefacb1ba in SVMain() () at /media/gulsah/EK/libreoffice-public-2/vcl/source/app/svmain.cxx:230
#58 0x00007ffff7cf01eb in soffice_main() () at /media/gulsah/EK/libreoffice-public-2/desktop/source/app/sofficemain.cxx:98
#59 0x00005555555549ed in sal_main () at /media/gulsah/EK/libreoffice-public-2/desktop/source/app/main.c:49
#60 0x00005555555549cf in main (argc=1, argv=0x7fffffffddb8) at /media/gulsah/EK/libreoffice-public-2/desktop/source/app/main.c:47
Comment 21 Xisco Faulí 2021-05-19 08:07:18 UTC
it seems it only crashes with GTK3. I'll report it in a follow-up ticket
Comment 22 BogdanB 2021-05-25 17:10:01 UTC
Nice feature!
We can have now multiple tips of the day opened in the same time. Anmd the window can be moved apart from LibreOffice.

Verified in
Version: 7.2.0.0.alpha1+ / LibreOffice Community
Build ID: 42d2b2d55a27f11153ea1713737d93540a19211d
CPU threads: 4; OS: Linux 5.8; UI render: default; VCL: gtk3
Locale: ro-RO (ro_RO.UTF-8); UI: en-US
Calc: threaded