That one pixel
blog.talles.me
blog.talles.me
> the Windows 95 team missed the point completely with the Start push button, sitting almost in the bottom left corner of the screen, but not exactly. In fact, it's about 2 pixels away from the bottom and 2 pixels from the left of the screen. So, for the sake of a couple of pixels, Microsoft literally "snatches defeat from the jaws of victory", Tog writes, and makes it that much harder to acquire the start button.
http://www.joelonsoftware.com/uibook/chapters/fog0000000063....
(edited link to point to second article in Spolsky's series)
http://www.joelonsoftware.com/uibook/chapters/fog0000000063....
In Windows 98 they realized the mistake - but in a typical Microsoft way of solving things, instead of simply making the area clickable below they instead forced the mouse up by 2-3 pixels every time you decided to be so silly as to try and click below the box.
Here's the deal: when you have multiple monitors, the windows mechanic of click+dragging a full screen application's titlebar is the best way to shift applications from screen to screen. With Opera, I just throw my mouse to the top of the screen and drag. With Firefox and Chrome, I have to search out a tiny 20 pixel wide hitbox between the end of the tabs and the minimize button to start the drag action. Every single windows application I've used respects this mechanic, except for Chrome and Firefox. I actually brought this up with the Firefox UI team on reddit and they agreed that it's broken but evidently decided to keep it because people like OP now expect it.
I'm actually looking for a way to enable this on chrome/FF.
I use 3 monitors and it helps me get around window management quirks entirely, while also making dealing with Windows much faster.
Also calling chrome or Firefox window "just a holder of tabs" isn't fair, they are very special holders of very special tabs, and lots of work goes into them to make them work properly. Also there are other "holder of tabs" windows, e.g Sublime Text, which are mostly similar but have important differences. Trying to move all that complexity into WM simply won't work.
It's not about which action is more common, its about the fact that the titlebar drag gesture is universal cross windows 7/8 and is a key element of the user experience. There are exactly two apps I've used in the entire history of windows 7 that broke this interaction: Chrome and FF. The fault is on those browsers breaking expected behavior, not Opera for doing what windows users expect. The FF UX team admitted that they overlooked this but its understandable that they're keeping it as users have come to expect it.
I'm really hesitant to say Firefox gets it "wrong" even if it is inconsistent.
A few years ago I moved back to Windows for some time and missed that behaviour that much that I ended up writing a small program in C++ that hooks into the windows API and injects that behavior. Never felt better in my life using windows (it also does other stuff like allow alt+right-drag to resize and the option to remove all windows borders).
Here's the program in case anybody is interested but keep in mind it can have a few bugs and I stopped using/working on it because I don't use Windows anymore. Not sure how well (if anything) it works on Windows 8+.
https://code.google.com/p/altdrag/
I also use true X mouse sometimes for the focus.
[1] http://www.autohotkey.com/docs/scripts/EasyWindowDrag_(KDE)....
I'm also using [Win]+[Shift]+arrows for moving between multiple monitors like others suggested.
Everyone wants and expects different kind of browser, that's why extensible apps fully written with web tech are awesome/
MY use case is, I want to quickly move the maximized window around between monitors, or to drag it away from the top, and thus de-maximize it. The way every other application does it, is by leaving a title bar at the top, which you can click and drag.
If I instead wanted to switch tabs, I would use the usual shortcuts, ctrl tab and ctrl shift tab. In my mind, this is a better option than breaking the "move window by clicking titlebar" behavior.
If the user clicks on the topmost pixel and immediately releases the button, they're probably trying to click on a tab. If the user moves the mouse while holding the button, they're probably trying to drag the whole window.
jQuery UI allows me to make things both clickable and draggable, and it always understands which of the two actions I'm trying to perform. There's no reason why a native app shouldn't be able to implement a similar feature.
Because then the UI will be confusing - the same place and action (clicking in the top) will affect either application or window manager. Also, sometimes you want to drag tabs around to e.g. reorder them or move to a new window.
Switching to a tab upon clicking the top pixel is also perfectly consistent with what usually happens when you click on the chrome of any window:
1) Clicking on the title bar (top pixel) = Switch to window, and activate the element at pointer location, which in this case is a tab. Try clicking on the "Minimize" button of any background window to see this paradigm in action. The window is brought to the foreground and immediately minimized.
2) Clicking on an actual tab = Switch to tab.
3) Dragging on the title bar (top pixel) = Drag the window.
4) Dragging on an actual tab = Drag the tab.
5) double clicking the tab bar = New tab
6) double clicking the title bar = Maximize/Restore
And then you double-click the titlebar instead of the tabbar by mistake and your window jumps away.
Or just have a stupid option and let the user decide. Maybe have that context-sensitive behaviour as default, but let me say that I want the title bar to be the title bar and tab bar to be the tab bar and have the two not mix together.
Does Opera really do this? Firefox and Chrome don't, and for good reasons, I think.
So the software can safely assume that if you drag the top pixel, you're trying to move the window rather than the tab.
In some sense, it makes Opera at least somewhat more consistent with other regular Windows applications that don't mess around with the titlebar. I actually find it annoying that there's no quick way to manage the maximized browser windows in Chrome or Firefox other than to click that button in the standard window chrome to restore the window, and then proceed.
If we want to discuss keyboard shortcuts, then Ctrl+Tab/Ctrl+Shift+Tab/Ctrl+W/Ctrl+T are quick tab management shortcuts that bypass mouse control as well, and that one pixel at the top that makes tab switching by mouse annoying for talles would be rather moot.
I don't think it's a bug. I think is is done so that you can move the window by dragging that one pixel bar.
In both Firefox and Chrome if you want to move the window when you have the window maximized, dragging on the top of the tab detaches the tab from the current window. The only way to move the window is to move the cursor to a space where you don't have a tab or by clicking on the restore button (the middle button on top right).
When you have lots of tabs open then there is no blank space on the right of the tabs to hold the window and move it.
Usually, I've noticed Opera users to have lots and lots of tabs open, which doesn't leave any blank space on the right of the bar. At that time this one pixel is a life saver to move the window without needing to go all the way to the top right to restore the window.
This may be true in whatever window manager you're using, but it's not true for all of them, including the one I use (dwm). Better window managers let you move and resize windows without having to click on special places that may or may not be provided by the programs that draw the windows.
There isn't a gap between every menu item, but clicking on the horizontal dividers or disabled menu items does close the menu without doing anything. The way that Windows does it seems better, there it does nothing at all, not even closing the menu.
Anyone who snaps windows to the side of the screen might run into a similar problem, though the visual gap is much more apparent since it's much larger than a pixel, so it's far less confusing.
Since there is no "maximize" button on OS X, I would always manually maximize my browser window. But since humans are imperfect, occasionally I would resize the window 1px from the right edge. When I wanted to scroll down (without using the mouse wheel), I would flick the mouse cursor to the right edge of the screen and "click" to start the scrollbar drag, which of course would click a background window and infuriate the heck out of me. I have since adapted to never use the scrollbar.
It used to be a big deal when I spend most of my time with a single monitor. With dual monitors, Xmonad keeps a one-pixel border around the active window so "move the mouse all the way up and click" doesn't work anymore. You choose your own poison :)
Only when reading this thread that I realized there are people preferring Opera's behavior, which is kinda eye-opening.
The problem here is http://en.wikipedia.org/wiki/Fitts's_law
This means that "one little pixel" is essentially infinitely high for purposes of mouse selection, and it makes hitting tabs much easier in this case.