Re: proposal for a smarter behavior for raising windows on mouse click
- From: Martin Grimme <martin pycage de>
- To: Lubos Lunak <l lunak suse cz>
- Cc: wm-spec-list gnome org
- Subject: Re: proposal for a smarter behavior for raising windows on mouse click
- Date: Tue, 27 Jan 2004 21:03:30 +0100
Am Di, den 27.01.2004 schrieb Lubos Lunak um 20:24:
> Could you please explain step by step how this would work in the case of
> drag&drop? Note that there exists something called start drag distance,
> causing DND to be really initiated only after dragging for few pixels, thus
> preventing unwanted DND, e.g. in case people are not too skilled with the
> mouse. I sense few obstacles ahead.
If the user drags the mouse with the button pressed, the wm should
not raise the window.
I played a bit with the metacity window manager and tried:
- Store the mouse coords when receiving a ButtonPress event on a window
and focus the window.
- Compare the current mouse coords with the stored ones when receiving
a ButtonRelease event and determine thus if the pointer has been
dragged. Raise the window only if the pointer motion is within a
threshold, e.g. 3 pixels.
The problem that I had with this was that metacity did not receive
ButtonRelease events when clicking on a widget which caught the event.
In fact, only clicking on the status bar worked.
some pseudo-code:
-----------------
bool check_for_raise_permission() {
if (mouse dragged or _NET_WM_DONT_RAISE is set) return FALSE;
else return TRUE;
}
...
switch (event) {
case (ButtonPress):
store mouse coords;
focus window;
break;
case (ButtonRelease):
/* the wm does not get here in all cases... :( */
if (check_for_raise_permission()) raise window;
...
Bye, Martin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]