Your comments

Using Chrome's latest version (Version 23.0.1271.91 m)

For some reason the website's icon does not display properly in Sidewise, which I think could be related. It is either totally blank, or displays a file icon like this (the icon should be like this instead).

Disabling acceleration does prevent the crashes, but obviously means Chrome will be lower performance, so not the best idea.

I already have the latest video drivers.

I've come across two problem in relation to the AHK script. First, when minimizing the dock window, Sidewise minimizes itself too, and it won't restore by using a window other than the dock window. I fixed it simply by adding this line to the code that was previously added:

WinRestore, Sidewise ahk_class Chrome_WidgetWin_1

The second problem is that on full-screen videos, such as youtube, the Sidewise window remains in front of the video. After a lot of fiddling around I managed to find a way to fix it, by using the following code:

if ((wParam == 4 || wParam == 32772) && Class == "Chrome_WidgetWin_1" && Title != "Sidewise")
    WinRestore, Sidewise ahk_class Chrome_WidgetWin_1
    WinActivate, Sidewise ahk_class Chrome_WidgetWin_1
    WinActivate, %Title%

    if(WinExist(ahk_class Chrome_RenderWidgetHostHWND))
    	WinActivate, ahk_class Chrome_RenderWidgetHostHWND

I had to use WinActivate instead of the AlwaysOnTop thing (I didn't manage to fix it with that, couldn't figure out why). There's a little flicker when switching back to Chrome from activating the Sidewise window and then back to Chrome (barely noticeable). Although when actually switching to full-screen, it'll go to full-screen, Chrome tab, then full-screen again. Little bit flickery, but bearable for me.

Thank you for your very prompt (!) reply.

  • Compact UI: I didn't think about using the in-built Chrome zooming. I didn't backup the old CSS files so I can't actually test it on the original style, but I'd reckon it probably wouldn't look better (at least for me) than being able to fully customize each section of it. Additionally, the zooming affects all images and icons, making them blurry due to them being changed to a non-native resolution. It should however be useful for users that want this kind of behaviour without having to go through the trouble of editing CSS.
  • Window titling: Yes, that is what I meant. Your workaround of renaming seems like it could work. Might be a little confusing to code, but I'm unsure of what you mean by it being confusing, as you say visually it would apparently look the same. Do you mean that the search feature wouldn't work properly because it wouldn't be able to get the tab's real name?

    I thought exactly the same about that secondary focus thing. Knowing which tab is active on every window would certainly help. However, I think the dotted outline is way too subtle. I would probably rather have a background colour, similar to what main tab is selected. Then again, whichever you implement I suppose I could probably just edit the style to my liking. I'm usually more concerned with efficiency rather than looks.

  • Raise Sidewise when focusing any Chrome window: You're right, I didn't think about the multiple monitor thing. I actually was thinking of addressing what could be improved in relation to that aspect in my post, but I forgot about it. I usually only have one or two windows in my secondary monitor, which is usually only used for simple things, such as GMail and YouTube music videos. As such, I never use Sidewise with it. Having Sidewise popup on my main monitor when switching to my secondary monitor's Chrome window could potentially be an annoyance in—I think—some very rare cases. Since I switch between Chrome and other programs probably more than a hundred times more than switching to my secondary monitor's Chrome windows, I think it would be a great trade-off.

I tried your AHK script, but it didn't work. I reckon the WM it should be sending to Chrome is WM_ACTIVATE, which is 6. I tried replacing the value with 6 but it didn't work either. 32772 in Hex is 0x8004. If I remember correctly, wParam can have high-bit flags on some messages, so I thought the most significant bit on that value is most likely a flag.  Removing the flag means the actual WM is 4. Tried with that value, and voila! It seems to work perfectly. I am not entirely sure why the WM is 4, as Microsoft doesn't seem to document it anywhere. There must be something that triggers that flag, so I kept both messages:

if ((wParam == 4 || wParam == 32772) && Class == "Chrome_WidgetWin_1" && Title != "Sidewise")
     WinSet, AlwaysOnTop, On, Sidewise ahk_class Chrome_WidgetWin_1
     WinSet, AlwaysOnTop, Off, Sidewise ahk_class Chrome_WidgetWin_1

Thank you greatly for your help, I'm quite pleased with it working the way I want to now. Makes Sidewise much better!