aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk
diff options
context:
space:
mode:
authorThomas Lübking <thomas.luebking@gmail.com>2016-07-02 12:55:08 (GMT)
committerMathias Gumz <akira@fluxbox.org>2016-07-03 07:29:07 (GMT)
commitabd5c9e478ac99f457a1df6292729b615f58bbda (patch)
treedf99db3f2607eb7fdd849077f3ac827723b40f06 /src/FbTk
parent848875eb922c1ab2eb61d7f8750cdbeed2629b37 (diff)
downloadfluxbox-abd5c9e478ac99f457a1df6292729b615f58bbda.zip
fluxbox-abd5c9e478ac99f457a1df6292729b615f58bbda.tar.bz2
smart handling of NotifyUngrab crossing events
closing a keyboard driven popup had the sideeffect to return the focus where the pointer is, regardless of whether that window had the focus before (due to a NotifyUngrab crossing event), bug #597 This was resolved by simply ignoring NotifyUngrab mode crossings, but that had the unfortunate sideeffects to break focus passing when the mouse was actually moved (in a DnD operation, 730) or the focus shall be passed on for strict mouse focus and a mouse triggered lower action (1012) So instead we record the window that was last entered by a *real* crossing and only ignore the NotifyUngrab event if this window didn't change. BUG: 1012 BUG: 730 CCBUG: 597
Diffstat (limited to 'src/FbTk')
-rw-r--r--src/FbTk/EventManager.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/FbTk/EventManager.cc b/src/FbTk/EventManager.cc
index ae52908..b9d5e98 100644
--- a/src/FbTk/EventManager.cc
+++ b/src/FbTk/EventManager.cc
@@ -179,9 +179,7 @@ void EventManager::dispatch(Window win, XEvent &ev, bool parent) {
179 evhand->exposeEvent(ev.xexpose); 179 evhand->exposeEvent(ev.xexpose);
180 break; 180 break;
181 case EnterNotify: 181 case EnterNotify:
182 if (ev.xcrossing.mode != NotifyGrab && 182 evhand->enterNotifyEvent(ev.xcrossing);
183 ev.xcrossing.mode != NotifyUngrab)
184 evhand->enterNotifyEvent(ev.xcrossing);
185 break; 183 break;
186 case LeaveNotify: 184 case LeaveNotify:
187 if (ev.xcrossing.mode != NotifyGrab && 185 if (ev.xcrossing.mode != NotifyGrab &&