Program forgets pan button state, gets stuck
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gEDA project |
Confirmed
|
Medium
|
Unassigned | ||
pcb |
Confirmed
|
Medium
|
Unassigned |
Bug Description
When using the middle button to pan around a board layout, if the pointer is dragged out of PCB's window main, the viewport freezes at the point where the pointer left the window, but PCB remains sort of "stuck" in pan mode. All icons and menu functions within PCB become greyed-out the moment you let go of the button, except for the "mm/mil" button in the upper right corner. To get out of this state, you have to move the mouse back into the window (which causes the viewport to start moving again), middle click somewhere to cancel the pan mode, then try to click and pan again.
Occasionally, when this happens, PCB will get stuck into an unrecoverable pan-and-zoom-only state: assuming the window has focus, the only events the program will recognize in this situation are the movement of the mouse (which always pans), rolling the mouse wheel (which still zooms like usual), clicking on the "mm/mil" button in the upper right corner (which appears to work normally), and using the horizontal and vertical scroll bars (which pans normally). Everything else is greyed-out and ignored. Keyboard events and mouse clicks are otherwise ignored and none of the menus and icons work.
The weird part: The entire layout becomes "selected" (i.e. highlighted in bright cyan) when this happens.
While in this state, it looked like the program ceased writing PCB.xxxxxxx.backup files as well, though I'm not entirely sure what conditions need to be met to
make this auto-save happen.
The only way out when it gets into this state is to close it with the [X] icon in the window title bar. Thankfully, the program offered to save my work, so I didn't lose anything. Interestingly, the "everything is selected" state gets saved into the board file as well.
It's almost as if part of the program is "forgetting" the state of the middle mouse button when the pointer leaves the window. So far it's happened twice with identical results.
What should happen is that PCB should either continue to move the viewport around after the pointer leaves the window, until I let go of the mouse button, or it should cancel the pan mode entirely when the pointer leaves the window. Personally, I'd opt for the former, it's very useful on large or multi-head displays.
This copy of PCB was pulled from CVS about 9 days ago. Using the GTK HID.
Changed in geda-project: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in pcb: | |
milestone: | pcb-4.1.1 → pcb-4.2.0 |
Changed in pcb: | |
milestone: | pcb-4.2.0 → future-bug-fix-release |
reproduced in 20100929