Hi,

I was closing some debian bugs and I found this:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195698

The idea is easy, open a firefox, go to youtube.com and play a video.
Then, click the root window (the background), and ... the video stops :-(
The problem don't happends with middle and right clicks.

This is the code for the button click event:

event.c:792
        if (event->xbutton.window == scr->root_win) {
                if (event->xbutton.button == Button1 && 
wPreferences.mouse_button1 != WA_NONE) {
                        executeButtonAction(scr, event, 
wPreferences.mouse_button1);
                } else if (event->xbutton.button == Button2 && 
wPreferences.mouse_button2 != WA_NONE) {
                        executeButtonAction(scr, event, 
wPreferences.mouse_button2);
                } else if (event->xbutton.button == Button3 && 
wPreferences.mouse_button3 != WA_NONE) {
                        executeButtonAction(scr, event, 
wPreferences.mouse_button3);
                } else if (event->xbutton.button == Button4 && 
wPreferences.mouse_wheel != WA_NONE) {
                        wWorkspaceRelativeChange(scr, 1);
                } else if (event->xbutton.button == Button5 && 
wPreferences.mouse_wheel != WA_NONE) {
                        wWorkspaceRelativeChange(scr, -1);
                }
        }

event.c:737
static void executeButtonAction(WScreen * scr, XEvent * event, int action)
{
        switch (action) {
        case WA_SELECT_WINDOWS:
                wUnselectWindows(scr);
                wSelectWindows(scr, event);
                break;
        case WA_OPEN_APPMENU:
                OpenRootMenu(scr, event->xbutton.x_root, event->xbutton.y_root, 
False);
                /* ugly hack */
                if (scr->root_menu) {
                        if (scr->root_menu->brother->flags.mapped)
                                event->xbutton.window = 
scr->root_menu->brother->frame->core->window;
                        else
                                event->xbutton.window = 
scr->root_menu->frame->core->window;
                }
                break;
        case WA_OPEN_WINLISTMENU:
                OpenSwitchMenu(scr, event->xbutton.x_root, 
event->xbutton.y_root, False);
                if (scr->switch_menu) {
                        if (scr->switch_menu->brother->flags.mapped)
                                event->xbutton.window = 
scr->switch_menu->brother->frame->core->window;
                        else
                                event->xbutton.window = 
scr->switch_menu->frame->core->window;
                }
                break;
        default:
                break;
        }
}

In my preferences I have the default config:

button left: Window Selection (case WA_SELECT_WINDOWS)
button middle: window list (case WA_OPEN_WINLISTMENU)
button right: root menu (case WA_OPEN_APPMENU)

If I change in WPrefs the action for left button to "Nothing" (WA_NONE), I 
didn't have the problem.

The problem is at WA_SELECT_WINDOWS case and then, in wSelectWindows(src, 
event) function.

Before trying to solve the problem,... we need select windows? What's the 
purpose of select windows? I don't use it, but probably I am missing something 
:-?

Saludos,
kix
-- 
||// //\\// Rodolfo "kix" Garcia
||\\// //\\ http://www.kix.es/


-- 
To unsubscribe, send mail to [email protected].

Reply via email to