! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
"Open in Terminal" won't work, if "StartupNotify=true" is specified in the .d...
Status:
RESOLVED: FIXED
Product:
Xfce4-panel
Component:
Directory Menu

Comments

Description belbo 2012-01-01 21:27:11 CET
Hello,

originally, my default terminal under XFCE was debian-x-terminal-emulator, and the "Open in Terminal" command of the directory menu worked well. Then I installed xfce4-terminal and made it the preferred termial in the XFCE "Preferred Application" settings. After that, "Open in Terminal" stopped doing anything!

I tracked down the problem with strace and found out, that it depends on the StartupNotify setting in debian-x-terminal-emulator.desktop resp. Terminal.desktop in /usr/share/xfce4/helpers/. Both the debian-x-terminal-emulator and the xfce4-terminal work well, if StartupNotify=false, and both fail if StartupNotify=true.
Comment 1 belbo 2012-01-01 21:28:56 CET
Created attachment 4067 
"strace -f -o StartupNotify.false.strace -p 11158" output with StartupNotify=false
Comment 2 belbo 2012-01-01 21:29:52 CET
Created attachment 4068 
"strace -f -o StartupNotify.true.strace -p 11158" with StartupNotify=true
Comment 3 belbo 2012-01-01 21:50:11 CET
Hello,

I've just added the output of "strace -f -o StartupNotify.<value>.strace -p 11158 for the two cases StartupNotify=false and StartupNotify=true with the xfce4-terminal. 11158 is the PID of the xfce4-panel process that executes "Open In Terminal". Note that in these traces I have local copies of the .desktop files under /home/belbo/.local/share/xfce4/helpers/


=== StartupNotify=true ===
Here, process 11158 forks a child 11900 that changes its directory to /media/sf_SharedFolder and then calls

    execve("/usr/bin/xfce4-terminal", ["/usr/bin/xfce4-terminal", "/media/sf_SharedFolder"], [/* 36 vars */] <unfinished ...>

Unfortunately, xfce4-terminal doesn't like to be called with a path as its first and only parameter, complains with

    write(2, "Unknown option \"/media/sf_Shared"..., 40) = 40

and exits immediately.


== StartupNotify=false ===
Here, process 11158 forks a child 11902 that forks another child 11903 that changes its directory to /media/sf_SharedFolder and then calls

    execve("/usr/lib/i386-linux-gnu/xfce4/exo-1/exo-helper-1", ["/usr/lib/i386-linux-gnu/xfce4/ex"..., "--launch", "TerminalEmulator"], [/* 35 vars */] <unfinished ...>

After doing a lot of things, that process forks another child 11904 which calls

    execve("/usr/bin/xfce4-terminal", ["/usr/bin/xfce4-terminal"], [/* 35 vars */] <unfinished ...>

so this time, xfce4-terminal is invoked with no parameters at all. And this works fine.
Comment 4 Nick Schermer editbugs 2012-01-15 20:18:16 CET
Could you attach the generated desktop file?
Comment 5 belbo 2012-01-15 21:34:44 CET
Created attachment 4103 
Original (non-working) desktop file for xfce4-terminal at /usr/share/xfce4/helpers/Terminal.desktop
Comment 6 Nick Schermer editbugs 2012-01-19 18:17:35 CET
Fixed in c189a35.

Bug #8298

Reported by:
belbo
Reported on: 2012-01-01
Last modified on: 2012-01-19

People

Assignee:
Nick Schermer
CC List:
0 users

Version

Attachments

Additional information