From deed8016ed3cdffd1eab3ff9bda71cbb639f8404 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 9 Jun 2002 04:14:40 +0000 Subject: [PATCH] don't raise/focus the window if minimize/close are clicked, patch from 2002-06-09 Havoc Pennington * src/frames.c (meta_frames_button_press_event): don't raise/focus the window if minimize/close are clicked, patch from Gaute Lindkvist #75460 --- ChangeLog | 6 ++++++ src/display.c | 19 +++++++++++++------ src/frames.c | 4 +++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8ca21b6a6..3f75d32b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-06-09 Havoc Pennington + + * src/frames.c (meta_frames_button_press_event): don't raise/focus + the window if minimize/close are clicked, patch from Gaute + Lindkvist #75460 + 2002-06-08 Havoc Pennington Cleanups to workspace popup patch. Space before all parens diff --git a/src/display.c b/src/display.c index fbaf4d9b0..46ba26991 100644 --- a/src/display.c +++ b/src/display.c @@ -1000,12 +1000,19 @@ event_callback (XEvent *event, if (unmodified || event->xbutton.button == 1) { - meta_window_raise (window); - - meta_topic (META_DEBUG_FOCUS, - "Focusing %s due to unmodified button %d press (display.c)\n", - window->desc, event->xbutton.button); - meta_window_focus (window, event->xbutton.time); + if (!frame_was_receiver) + { + /* don't focus if frame received, will be + * done in frames.c if the click wasn't on + * the minimize/close button. + */ + meta_window_raise (window); + + meta_topic (META_DEBUG_FOCUS, + "Focusing %s due to unmodified button %d press (display.c)\n", + window->desc, event->xbutton.button); + meta_window_focus (window, event->xbutton.time); + } if (!frame_was_receiver && unmodified) { diff --git a/src/frames.c b/src/frames.c index c7cba2a5a..a0f826bd6 100644 --- a/src/frames.c +++ b/src/frames.c @@ -1005,7 +1005,9 @@ meta_frames_button_press_event (GtkWidget *widget, if (control == META_FRAME_CONTROL_CLIENT_AREA) return FALSE; /* not on the frame, just passed through from client */ - if (event->button == 1) + if (event->button == 1 && + !(control == META_FRAME_CONTROL_MINIMIZE || + control == META_FRAME_CONTROL_DELETE)) { meta_core_user_raise (gdk_display, frame->xwindow);