After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 105852 - add "Force Quit" action button
add "Force Quit" action button
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: window list
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-02-12 03:02 UTC by chrismazuc
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: Unversioned Enhancement



Description chrismazuc 2003-02-12 03:02:47 UTC
One of the features I liked about earlier versions
was the ability to select "kill program" (or
something to that effect) from the list that pops
up on right-click. Why was it removed?
Comment 1 Arvind S N 2003-02-12 05:28:12 UTC
The "Close" option in the tasklist menu does the same thing.
Is this option not there ? or am I getting your point wrong ?
Comment 2 Havoc Pennington 2003-02-12 05:48:23 UTC
There used to be "close" and "kill"

"kill" disconnected the program from the X server, which would sometimes 
cause the program to exit (and sometimes cause the program 
to continue in its infinite loop or whatever was wrong with it).

"close" will now offer to kill the process of (vs. just disconnect)
unresponsive apps, for GTK 2 apps that support detection of 
non-responsiveness.

it's impossible to explain the difference between close and kill, 
in fact most people who used kill did not understand what it did
(just disconnection, rather than actual kill), so having both 
in the UI was a terrible idea.
Comment 3 Mark McLoughlin 2003-02-12 06:02:43 UTC
I actually have a patch to add a "Kill Application" action button ...
its a more friendly version of xkill. (Calum wants it renamed "Force
Quit" or something silly like that).

I think it makes sense to have this since we can't completely rely on
_NET_CLOSE_WINDOW to actually kill an app.

Re-opening so I don't forget to get the patch in order.


=====================
o Sends a _NET_CLOSE_WINDOW ClientMessage to the root window
  indicating the window to close.
o According to the spec, window managers may try and be more
  clever than simply trying to close the window.
o In response to this message Metacity will do the following

    if (supports_wm_protocol (window, WM_DELETE_WINDOW)
      send_wm_delete_window_message (window)
    else
      XKillClient (window);

    if (supports_wm_protocol (window, _NET_WM_PING))
      if (send_net_wm_ping_message (window) == no_reply)
        if (pop_up_delete_dialog_question (window) == delete)
          {
            if (on_same_host (window) && has_pid_prop_set (window))
              kill (window->pid, SIGKILL)
            XKillClient (window);
          }

o Clearly doesn't work for us in the case where we have a hung app
  which supports WM_DELETE_WINDOW, but doesn't support _NET_WM_PING.
Comment 4 Havoc Pennington 2003-02-12 13:46:11 UTC
you can't rely on XKillClient() to kill an app either, though.
In fact the most recent cases of hung clients I can remember 
(Netscape 4's love of infinite loops, and XChat hanging on a thread
lock) would not be solved by XKillClient(). "Force quit" is kind of 
a misnomer here. More like "force to become invisible yet still use 
my CPU"

But you know. "Force quit button" is I guess mostly harmless, as long
as it isn't in the window list.

Comment 5 Sean Middleditch 2003-05-13 15:31:57 UTC
This could confuse users, tho, yes?  Why give them a button that
doesn't do as "advertised" (to their minds) vs. finding a better
method/procedure first that might do the job all the way?

Perhaps poll the app and see if it's shutting down yet after X second
of XKillClient or something?
Comment 6 Mark McLoughlin 2003-05-26 13:39:08 UTC
Fixed on HEAD:

2003-01-24  Mark McLoughlin  <mark@skynet.ie>
                                                                     
                                         
        * Makefile.am: add panel-force-quit.[ch] to the build.
                                                                     
                                         
        * panel-force-quit.[ch]: impl a safer more GNOMEish version
        of xkill.