summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2002-08-10 04:29:57 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-08-10 04:29:57 +0000
commit9a72bf18586c3d8074be3e357fbee8735af15e02 (patch)
treee593fdb2f02f25f1e5c334ef916d65f2b0d61878
parent79857803dec50511bcfd83cb247500c0771a182c (diff)
downloadmetacity-9a72bf18586c3d8074be3e357fbee8735af15e02.tar.gz
add a FIXME comment with a link to bug #90382
2002-08-10 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_notify_focus): add a FIXME comment with a link to bug #90382
-rw-r--r--ChangeLog5
-rw-r--r--src/window.c19
2 files changed, 24 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 525a0d7e..86e2d3ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-10 Havoc Pennington <hp@pobox.com>
+
+ * src/window.c (meta_window_notify_focus): add a FIXME comment
+ with a link to bug #90382
+
2002-08-09 Havoc Pennington <hp@pobox.com>
* src/keybindings.c (handle_toggle_maximize): disable maximize,
diff --git a/src/window.c b/src/window.c
index aedcfcb1..39402600 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3572,6 +3572,25 @@ meta_window_notify_focus (MetaWindow *window,
meta_event_mode_to_string (event->xfocus.mode) : "n/a",
event->type != UnmapNotify ?
meta_event_detail_to_string (event->xfocus.detail) : "n/a");
+
+ /* FIXME our pointer tracking is broken; see how
+ * gtk+/gdk/x11/gdkevents-x11.c or XFree86/xc/programs/xterm/misc.c
+ * handle it for the correct way. In brief you need to track
+ * pointer focus and regular focus, and handle EnterNotify in
+ * PointerRoot mode with no window manager. However as noted above,
+ * accurate focus tracking will break things because we want to keep
+ * windows "focused" when using keybindings on them, and also we
+ * sometimes "focus" a window by focusing its frame or
+ * no_focus_window; so this all needs rethinking massively.
+ *
+ * My suggestion is to change it so that we clearly separate
+ * actual keyboard focus tracking using the xterm algorithm,
+ * and metacity's "pretend" focus window, and go through all
+ * the code and decide which one should be used in each place;
+ * a hard bit is deciding on a policy for that.
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=90382
+ */
if ((event->type == FocusIn ||
event->type == FocusOut) &&