quicksilver / Quicksilver

Quicksilver Project Source
http://qsapp.com
Apache License 2.0
2.72k stars 283 forks source link

[Bug]: Results list appears in top left corner of screen, detached from interface #2962

Open usnmustanger opened 10 months ago

usnmustanger commented 10 months ago

Before submitting your bug report, please confirm you have completed the following steps

Bug description

The results list appears in the top left corner of my screen, detached from the interface. I'm currently using the bezel interface, but this happens regardless of which interface I'm using.

When I click the little gear at the right side of the results header, the resulting pop-up does appear where it should be if the results list was displayed below the interface.

The results list is not movable/draggable.

It may also be worth noting that the animated QS startup icon also appears in the top left corner of the screen, same location as the results list.

Screenshot 2023-09-08 at 3 56 57 PM

Steps to reproduce

  1. Activate Quicksilver
  2. Type something in the first pane
  3. Results list displays detached from interface, and in the top left corner of the screen

Expected behavior

Results list should display directly below the interface

MacOS Version

Other

Quicksilver Version

2.4.1 (4040)

Relevant Plugins

Screenshot 2023-09-08 at 4 02 41 PM

Crash Logs or Spindump

No response

Screenshots

Screenshot 2023-09-08 at 3 56 57 PM Screenshot 2023-09-08 at 4 02 41 PM

Additional info

OS Version is latest OS 14 Sonoma beta (release 23A5337a, latest as of 9/8/2023)

I have tried the following, nothing changes the results:

n8henrie commented 10 months ago

Thanks for the report! I don't know that any of the active devs plan to join the beta, but we'll look into this and try to reproduce once it is released.

usnmustanger commented 10 months ago

Thanks for the report! I don't know that any of the active devs plan to join the beta, but we'll look into this and try to reproduce once it is released.

I understand, thank you!

tvalenta commented 9 months ago

FWIW, under 23A5286i (macOS 14 beta 3) I was able to move windows around. With macOS Sonoma build 23A339 (the latest Release Candidate), I get this same behavior. In addition, if I click the icon in the menu bar while focus is held by anything other than QS, input from the keyboard is mostly swallowed by something. I can recover by activating the QS shortcut and then clicking the menu bar icon again.

I'm not yet sure if this is a bug in the RC, or a change in macOS. If I figure it out, I'll let you know.

tvalenta commented 9 months ago

@usnmustanger if I deselect "Superfluous visual effects" from options, all the issues I observe go away.

usnmustanger commented 9 months ago

@usnmustanger if I deselect "Superfluous visual effects" from options, all the issues I observe go away.

That fixed it for me too, thank you!

lgarron commented 9 months ago

Also seeing this in macOS Sonoma 14.0 stable.

The QS launch icon, main interface window, and results dropdown all appear in the upper left of the screen.

I can move the main interface window to the middle of the screen manually, but:

Toggling "Superfluous visual effects" didn't help.

lgarron commented 9 months ago

Okay, this worked for me briefly:

… but I relaunched Quicksilver to see if it persists, and now the settings window is stuck in the upper left as well. 😭

EDIT: tried again, and this time it worked!

n8henrie commented 9 months ago

Using Bezel (built-in) and deselecting superfluous visual effects, things seem okay. Required a relaunch after changing that setting.

aisrael commented 9 months ago

Just wanted to chime in here that, on a fresh install on Sonoma, I can't even agree to the license agreement, much less toggle any UI settings.

sjostromlab commented 9 months ago

Same here, with Sonoma 14.0 (23A344). Windows jump to wrong places. I cannot access settings. Computer becomes generally unresponsive at times. I have to force-quit Quicksilver to make the computer behave. Hoping for a fix, coz I honestly use Quicksilver all the time! Thanks!

tbraas commented 9 months ago

Same issue on my system. ![Uploading Screenshot 2023-10-06 at 10.26.39.png…]()

aspacca commented 9 months ago

Computer becomes generally unresponsive at times. I have to force-quit Quicksilver to make the computer behave

on top of that I can add that when quicksilver is open (fresh install on sonoma, m2 max MacBook Pro 2023) the shortcuts on other apps fail to work as well.

n8henrie commented 8 months ago

Trying to chase this down,

https://github.com/quicksilver/Quicksilver/blob/2ea128e0b6135d77e82a7ef15e44540d17787c77/Quicksilver/Code-QuickStepFoundation/NSWindow_BLTRExtensions.m#L32

[NSWindows setFrame:] doesn't seem to be working. I can manually set NSRect centeredRect = NSMakeRect(200, 200, 228, 204);; -- changing the second pair of values (width and height) changes the width and height of the intro QS animation, but the first two (which I arbitrarily set to 200, 200 here) doesn't change anything -- still just appears in top left.

n8henrie commented 8 months ago

Reading https://stackoverflow.com/questions/55965290/set-nswindow-size-programmatically-doesnt-work

Unfortunately moving setFrame into QSGCDMainSync doesn't seem to do anything. Neither does changing display:NO to YES, or adding animate:YES.

n8henrie commented 8 months ago

Commenting out [animation setTransformFt:QSExtraExtraEffect]; changes the intro QS splash so that it loads in the center again, but then moves to the top left. https://github.com/quicksilver/Quicksilver/blob/2ea128e0b6135d77e82a7ef15e44540d17787c77/Quicksilver/Code-App/QSController.m#L462

n8henrie commented 8 months ago

I hadn't realized we were using private APIs (the vendored CPSPrivate.h, CGSPrivate.h) -- I wonder if that's related, as a lot of the animations seem to rely on transforms provided by these. That would make this pretty hard to debug I imagine.

I these private headers may also be related to the CGSWindowShmemCreateWithPort failed on port 0 that I see scattered throughout the console, and I think are new.

n8henrie commented 8 months ago

Tiny bit of very slow progress today, I think I was on the right track with the suspicion of cgs stuff above.

https://github.com/quicksilver/Quicksilver/blob/2ea128e0b6135d77e82a7ef15e44540d17787c77/Quicksilver/Code-QuickStepEffects/QSWindowAnimation.m#L19

Changing cgs = _CGSDefaultConnection() to cgs= nil here allows the QS splash at startup and the results windows to both stay in the center of the screen instead of jumping to top left.

n8henrie commented 8 months ago

Culprit seems to be CGSSetWindowTransform, at both of these:

Here's a old related bug in which they speculate that CGSSetWindowTransform has abnormal behavior if called while a window is not visible: https://bugzilla.mozilla.org/show_bug.cgi?id=1448132

Guarding with if ([[self window] isVisible]) { does not fix the behavior in this case.

n8henrie commented 8 months ago

Issues persists even if I change to CGSSetWindowTransform(cgs, wid, CGAffineTransformIdentity);, so perhaps something about CGSSetWindowTransform is changing the positioning of the frame (or preventing it from being updated); IOW it doesn't seem to be a problem with the transform itself AFAICT.

quentinmit commented 7 months ago

I couldn't actually toggle "Superfluous visual effects" because the click events didn't seem to be delivered to the right control. But after UTSLing, I tried

defaults write com.blacktree.Quicksilver "Use Effects" -bool NO

and fingers crossed for now Quicksilver is working again on Sonoma.

aspacca commented 7 months ago

and fingers crossed for now Quicksilver is working again on Sonoma.

unluckly i didn't work for me.

btw, on a computer where quicksilver was installed before the upgrade to sonoma I have no problem. on one where I installed quicksilver for the first time after installing sonoma nothing works

n8henrie commented 7 months ago

on one where I installed quicksilver for the first time after installing sonoma nothing works

interesting -- thanks for that tidbit, this may help me reproduce issues, since it's been running fine on my Sonoma system since day 1 (with superfluous visual effects disabled at least)

pjrobertson commented 7 months ago

@n8henrie one way to proceed would be to:

1) Remove GCSPrivate.h file 2) Xcode will then throw up build errors for places that call to undefined methods - remove all of these from the code

Aside: Plugins would also need checking.

n8henrie commented 7 months ago

Yeah, I started working on that approach this AM, and it wasn't pretty. I think as a stopgap I might just patch out the QSExtraEffects stuff for MacOS >= 14 and cut a release to get people something more functional in the meantime. On Dec 3, 2023, at 7:03 PM, Patrick Robertson @.***> wrote: @n8henrie one way to proceed would be to:

Remove GCSPrivate.h file Xcode will then throw up build errors for places that call to undefined methods - remove all of these from the code

Aside: Plugins would also need checking.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

headcrash13 commented 6 months ago

I wonder if it is related to the "Stage Manager?" Following the below instructions I got the license windows etc. to stop flying completely off the screen (and playing whack-a-moving-button), but I noticed that the clicks were pushing the window to the edge of the thick grey outline when the desktop shows/hides. I could move the mouse to the upper-left (and click) and I could get the window to reappear, but as soon as I started to mouse over it (or click) it would slide away again. Is Stage Manager considering (at the very least) swallowing the clicks because it thinks you are clicking (through?) and on the desktop? After an app restart the "superfluous" fix seems to work, and with the below all seems....relatively good? :)

[1. Open the System Settings app

  1. Click on the Desktop & Dock menu
  2. Set “Click wallpaper to reveal desktop” to “Only in Stage Manager”](https://discussions.apple.com/thread/255189465?sortBy=best)