gboolean show = FALSE;
if (client_should_show(self)) {
+ /* replay pending pointer event before showing the window, in case it
+ should be going to something under the window */
+ mouse_replay_pointer();
+
frame_show(self->frame);
show = TRUE;
so trying to ignore them is futile in case 3 anyways
*/
+ /* replay pending pointer event before hiding the window, in case it
+ should be going to the window */
+ mouse_replay_pointer();
+
frame_hide(self->frame);
hide = TRUE;
if (!user)
ignore_start = event_start_ignore_all_enters();
+ /* replay pending pointer event before move the window, in case it
+ would change what window gets the event */
+ mouse_replay_pointer();
+
frame_adjust_area(self->frame, fmoved, fresized, FALSE);
if (!user)
{ _("Yes"), OB_KILL_RESULT_YES }
};
gchar *m;
+ const gchar *sig;
+
+ if (self->kill_level == 0)
+ sig = "terminate";
+ else
+ sig = "kill";
m = g_strdup_printf
- (_("The window \"%s\" does not seem to be responding. Do you want to force it to exit?"), self->original_title);
+ (_("The window \"%s\" does not seem to be responding. Do you want to force it to exit by sending the %s signal?"), self->original_title, sig);
self->kill_prompt = prompt_new(m, answers,
sizeof(answers)/sizeof(answers[0]),
void client_kill(ObClient *self)
{
+ /* don't kill our own windows */
+ if (self->prompt) return;
+
if (!self->client_machine && self->pid) {
/* running on the local host */
if (self->kill_level == 0) {