runelite / launcher

Launcher for RuneLite
https://runelite.net
BSD 2-Clause "Simplified" License
65 stars 95 forks source link

macOS - cannot resize window #31

Closed C-o-d-e-C-o-w-b-o-y closed 11 months ago

C-o-d-e-C-o-w-b-o-y commented 6 years ago

I had runelite open on an external monitor, and since disconnecting that monitor my runelite window is too big for my current mac window screen size, causing me to not be able to see the screen. Cannot resize height as I cannot get to the top/bottom of the window.

NathenSample commented 6 years ago

This isn't really a Runelite issue; it's a MacOS issue and can be solved by googling.

That being said - http://osxdaily.com/2010/07/05/how-to-resize-a-window-that-is-too-big-or-off-screen-in-mac-os/ should hopefully give you what you need.

C-o-d-e-C-o-w-b-o-y commented 6 years ago

runelite's 'Minimise/Maximise' button has behaviour where the minimise function will restore the window size to whatever it was previously before being 'Maximised'.

If the game is in fixed mode, then the 'Minimise' function should reduce the window size to the minimum dimensions required for the fixed game.

deathbeam commented 6 years ago

That seems like correct behaviour, I dont see why this issue is still open. Reducing to minimum fixed mode size makes no sense on restore from maximize

C-o-d-e-C-o-w-b-o-y commented 6 years ago

The button says 'Minimise' and not restore. With current behaviour a minimised window can be larger than the maximised one.

deathbeam commented 6 years ago

Well that is probably macOS problem with naming. What I would expect from "minimize" named button to do is minimize the entire window to dock. Anyway, this is standard OS behaviour, idk why we should be messing with that.

iRunner commented 4 years ago

Screen Shot 2020-02-21 at 10 46 35 PM

Unfortunatly Runelite doesn't have a window option in menu :(

but the solution i found was to close runelite and reopen it lol

Pixelatex commented 3 years ago

Closing runelite and reopening doesn't fix it either :/ Can we please fix it so the window menu option and stuff are there?

Adam- commented 3 years ago

Launching runelite in safe mode will make it re-set the clients saved position.

TheAtomicOption commented 3 years ago

+1 for adding the mac window menu

I had this problem today and was able to fix it:

  1. if open, close runelite
  2. open Finder and go to /Users/[yourusername]/
  3. hit command+shift+. to make hidden files and folders visible
  4. go into the /Users/[yourusername]/.runelite/ folder and delete the file called session
TylerADavis commented 3 years ago

While adding a Window dropdown to the menubar might help to fix this (in conjunction with setting up the behavior of the zoom item, as described on osxdaily). I think the core of this issue is elsewhere.

Many macOS apps automatically resize based on current screen size. For example, disconnect an external display and apps will automatically shrink down for the smaller screen size, with all parts visible. Drag a large window from a large monitor to a smaller one, and upon releasing the mouse the window's dimensions will update. However, Runelite doesn't exhibit this behavior on Mac. Drag to another screen or disconnect your monitor, and the game keeps its original size.

I'm not sure of when/how the OS notifies the client that resolution of the active display has changed, though I found a StackOverflow post that suggests you have to poll for screen size changes when using Java. I imagine an implementation could look similar to the following:

// called by poller
private void resolutionDidChange() {
    updateFrameConfig(True);
}

// adapted from https://github.com/runelite/runelite/blob/541e20c5921f09e45a205e6c89183cfe9aa27513/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java#L1019
private void updateFrameConfig(boolean updateResizable) {
    ...
    // The upper bounds are defined by the applet's max size and the current screen resolution
    // The lower bounds are defined by the client's fixed size

    // Note: this might not work properly in multi-monitor situations, this is just a sketch of what I mean
    // This might also fail in situations where DPI scaling is at play
    DisplayMode currMode = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDisplayMode()
    int screenWidth = currMode.getWidth();
    int screenHeight = currMode.getHeight();
    int upperWidth = Math.min(config.gameSize().width, 7680, screenWidth);
    int upperHeight = Math.min(config.gameSize().height, 2160, screenHeight);
    int width = Math.max(upperWidth, Constants.GAME_FIXED_WIDTH);
    int height = Math.max(Math.min(config.gameSize().height, 2160), Constants.GAME_FIXED_HEIGHT);
    final Dimension size = new Dimension(width, height);
    ...
}

As the code for potential fixes seems like it would be a part of the main Runelite executable and not the launcher, the main repo may be a better place for this issue.

Example of Window menu: image

aes5521 commented 2 years ago

+1 for adding the mac window menu

I had this problem today and was able to fix it:

1. if open, close runelite

2. open Finder and go to `/Users/[yourusername]/`

3. hit `command+shift+.` to make hidden files and folders visible

4. go into the `/Users/[yourusername]/.runelite/` folder and delete the file called `session`

This resolved the issue for me as of today 10/10/21. Thank you!

MarcusFranz commented 2 years ago

If you delete the session file you lose everything you had in runelite FYI, tile markers, bank tags, hotkeys, everything.

DarkArc commented 2 years ago

This is a painful issue. I don't even have an external monitor, something just glitched, and now I have a runelite window I can't resize. There's also no session file anymore?

DarkArc commented 2 years ago

Launching runelite in safe mode will make it re-set the clients saved position.

For others reference, the way to do this is to open a terminal and run:

/Applications/RuneLite.app/Contents/MacOS/RuneLite --clientargs --safe-mode
ChristopherWirtOfficial commented 2 years ago

/Applications/RuneLite.app/Contents/MacOS/RuneLite --clientargs --safe-mode

Bless you. Runelite's bespoke window is pretty frustrating on every OS I've used. You can't snap on Windows, the multiple problems on mac, and most of those same mac problems (and more) on linux. It's disappointing, but I'm guessing there's not much that can be done about it..

Alexsuperfly commented 2 years ago

turn off the custom chrome in "RuneLite" settings then

ChristopherWirtOfficial commented 2 years ago

turn off the custom chrome in "RuneLite" settings then

Honestly I think this is the literal answer to this thread, thank you very much for the suggestion. Seems to have fixed all of my woes :)

Arachnids commented 2 years ago

turn off the custom chrome in "RuneLite" settings then

Thank you for the solution! It fixed all the zoom in problems for me as well.

Adam- commented 11 months ago

Safe mode is the recommended way to fix this since it will reset the saved client size. This is not really a launcher issue.

DarkArc commented 11 months ago

Safe mode is the recommended way to fix this since it will reset the saved client size. This is not really a launcher issue.

Safe mode is an okay answer, but it really feels like the client should be able to detect "hey every pixel in my window that's dragable isn't visible, I should reposition myself".

Maybe that's not even possible in the context of MacOS, but it feels like what should happen here.

The average user isn't going to want to go to CLI and run safe mode if/when this happens.

Felanbird commented 11 months ago

The average user isn't going to want to go to CLI and run safe mode if/when this happens.

From our interactions with the average user in the discord, they've been perfectly happy to have this issue resolved via CLI, as it's not exactly an issue that comes up every single day.

Adam- commented 11 months ago

Safe mode is the recommended way to fix this since it will reset the saved client size. This is not really a launcher issue.

Safe mode is an okay answer, but it really feels like the client should be able to detect "hey every pixel in my window that's dragable isn't visible, I should reposition myself".

Maybe that's not even possible in the context of MacOS, but it feels like what should happen here.

The average user isn't going to want to go to CLI and run safe mode if/when this happens.

The client is supposed to reset itself if it is partially off-screen. Maybe that logic is broken on macos. But either way it is not a launcher issue I think still.