Opened 15 years ago
Last modified 13 years ago
#6029 assigned enhancement
Holding CTRL+ALT should move more than just windows
Reported by: | RedNifre | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | User Interface | Version: | R1/Development |
Keywords: | CTRL ALT move window replicant view deskbar | Cc: | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
What?
It should be possible to move replicants and the deskbar (and possibly more) around by holding CTRL+ALT.
Current Situation
When holding CTRL+ALT you can drag and drop a window by grabbing it anywhere (as opposed to just at the sides). Unfortunately, this does not work on replicants and the deskbar
Suggested Solution
Allow this for replicants and the deskbar. The clickable area should encompass the whole bounding box of a replicant/deskbar, including unused spaces.
Change History (13)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
The Deskbar could intercept the ctrl-alt, and act the same as if you had pressed that button.
Same for BViews that are replicants. I just currently don't know if such a view actually knows that, I don't think it does.
In any case, I like this suggestion.
follow-up: 4 comment:3 by , 15 years ago
The Deskbar part is implemented in hrev36889.
The replicant move code should actually be implemented by the shelf it's in, as that is the only one knowing if the view is a replicant, and also, if it may be moved or not.
comment:4 by , 15 years ago
Replying to axeld:
The Deskbar part is implemented in hrev36889.
I just built 36890 and I can't do anything with the Deskbar but move it. Every button click acts as if I'm holding Ctrl+Alt.
If I do hold Ctrl+Alt then it acts like it did before the change, unless I turn on auto raise in which case it acts as it should with the change.
comment:5 by , 15 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 15 years ago
This change disables the Vulcan Death Grip SHIFT+CTRL+OPT+ALT + click on app in Deskbar.
comment:9 by , 15 years ago
What the ... OK, on 36917 now.
Deskbar works normally when not holding any modifiers. If I hold Ctrl+Alt I can not move it around, but can send it back or bring it forward.
I can move other windows with Ctrl+Alt and your current if condition is the same used in Window.cpp to move windows.
I tried it the way seen in ExpandoMenuBar:
int32 mods = modifiers(); if ((mods & B_COMMAND_KEY) != 0 && (mods & B_OPTION_KEY) == 0 && (mods & B_SHIFT_KEY) == 0 && (mods & B_CONTROL_KEY) != 0) {
with the same result.
Is the BWindow MouseDown() catching the event and preventing this from working? Thus BarWindow needs to implement MouseDown() to override?
comment:10 by , 15 years ago
I just reinstalled Haiku here, and I have the same issue. All events are first sent to the window which will then (after having called BWindow::DispatchMessage()) forward it to the handler it should go to.
I don't have any idea why this happens ATM, but I'll have a look.
comment:11 by , 15 years ago
Finally fixed in hrev36935. What an effort for such a little change :-)
comment:12 by , 13 years ago
Version: | R1/alpha2 → R1/Development |
---|
comment:13 by , 13 years ago
The problem with respect to replicants is that, if the replicant intercepts the gesture, the containing window can no longer be moved using it. With a few exceptions replicants are only used on the desktop, so this might not be a problem that often. OTOH, how often does one usually move replicants? If at all I'd rather see a different key combo for replicants (Option + mouse?).
Two problems here: 1) At the level of the app_server there is nothing that distinguishes a replicant from any other BView, so there wouldn't really be an intelligent way to determine that, and 2) unlike most windows, Deskbar does not allow arbitrary positions, so the behavior would get relatively confusing/inconsistent if extended to Deskbar.