{"action":"created","comment":{"url":"https://api.github.com/repos/runelite/runelite/pulls/comments/184877089","pull_request_review_id":116160454,"id":184877089,"diff_hunk":"@@ -25,14 +25,126 @@\n package net.runelite.client.ui;\n \n import java.awt.Rectangle;\n+import java.awt.event.ComponentAdapter;\n+import java.awt.event.ComponentEvent;\n+import java.time.Duration;\n+import java.time.Instant;\n import javax.swing.JFrame;\n import lombok.Getter;\n \n public class ContainableFrame extends JFrame\n {\n+\tprivate static final int LARGE_WIDTH_THRESHOLD = 1600;\n+\tprivate static final int NEAR_EDGE_DISTANCE = 50;\n+\tprivate static final int PANEL_EXPANDED_WIDTH = PluginPanel.PANEL_WIDTH + PluginPanel.SCROLLBAR_WIDTH;\n+\n \t@Getter\n \tprivate boolean containedInScreen;\n \n+\tprivate boolean expanded;\n+\tprivate Rectangle oldBounds;","path":"runelite-client/src/main/java/net/runelite/client/ui/ContainableFrame.java","position":null,"original_position":21,"commit_id":"43bfac9408f44b8f9012429a4b46358608210211","original_commit_id":"8bf331bfe73698fcd5ec24791bb308d63300c916","user":{"login":"deathbeam","id":5115805,"avatar_url":"https://avatars3.githubusercontent.com/u/5115805?v=4","gravatar_id":"","url":"https://api.github.com/users/deathbeam","html_url":"https://github.com/deathbeam","followers_url":"https://api.github.com/users/deathbeam/followers","following_url":"https://api.github.com/users/deathbeam/following{/other_user}","gists_url":"https://api.github.com/users/deathbeam/gists{/gist_id}","starred_url":"https://api.github.com/users/deathbeam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deathbeam/subscriptions","organizations_url":"https://api.github.com/users/deathbeam/orgs","repos_url":"https://api.github.com/users/deathbeam/repos","events_url":"https://api.github.com/users/deathbeam/events{/privacy}","received_events_url":"https://api.github.com/users/deathbeam/received_events","type":"User","site_admin":false},"body":"I don't think storing oldBounds is good solution, this needs to be done in more generic way.","created_at":"2018-04-29T09:34:59Z","updated_at":"2018-04-29T09:35:16Z","html_url":"https://github.com/runelite/runelite/pull/1977#discussion_r184877089","pull_request_url":"https://api.github.com/repos/runelite/runelite/pulls/1977","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/runelite/runelite/pulls/comments/184877089"},"html":{"href":"https://github.com/runelite/runelite/pull/1977#discussion_r184877089"},"pull_request":{"href":"https://api.github.com/repos/runelite/runelite/pulls/1977"}}},"pull_request":{"url":"https://api.github.com/repos/runelite/runelite/pulls/1977","id":184383489,"html_url":"https://github.com/runelite/runelite/pull/1977","diff_url":"https://github.com/runelite/runelite/pull/1977.diff","patch_url":"https://github.com/runelite/runelite/pull/1977.patch","issue_url":"https://api.github.com/repos/runelite/runelite/issues/1977","number":1977,"state":"open","locked":false,"title":"Improve client window functionality","user":{"login":"WooxSolo","id":26200523,"avatar_url":"https://avatars1.githubusercontent.com/u/26200523?v=4","gravatar_id":"","url":"https://api.github.com/users/WooxSolo","html_url":"https://github.com/WooxSolo","followers_url":"https://api.github.com/users/WooxSolo/followers","following_url":"https://api.github.com/users/WooxSolo/following{/other_user}","gists_url":"https://api.github.com/users/WooxSolo/gists{/gist_id}","starred_url":"https://api.github.com/users/WooxSolo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WooxSolo/subscriptions","organizations_url":"https://api.github.com/users/WooxSolo/orgs","repos_url":"https://api.github.com/users/WooxSolo/repos","events_url":"https://api.github.com/users/WooxSolo/events{/privacy}","received_events_url":"https://api.github.com/users/WooxSolo/received_events","type":"User","site_admin":false},"body":"- Add config for remembering the screen position of the client after exiting and reopening\r\n- Add config for making the client stay contained in the screen (only works if custom window chrome is enabled)\r\n- Make the client more reliably stay within the screen bounds when opening/closing a sidepanel\r\n\r\nFixes #1542, #1844 and #1874","created_at":"2018-04-26T15:43:34Z","updated_at":"2018-04-29T09:35:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9cbb2488485aaf76aa69b6c1effdf8c3a2aebfc4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":366780279,"url":"https://api.github.com/repos/runelite/runelite/labels/bug","name":"bug","color":"ee0701","default":true},{"id":771846940,"url":"https://api.github.com/repos/runelite/runelite/labels/feature-request","name":"feature-request","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/runelite/runelite/pulls/1977/commits","review_comments_url":"https://api.github.com/repos/runelite/runelite/pulls/1977/comments","review_comment_url":"https://api.github.com/repos/runelite/runelite/pulls/comments{/number}","comments_url":"https://api.github.com/repos/runelite/runelite/issues/1977/comments","statuses_url":"https://api.github.com/repos/runelite/runelite/statuses/43bfac9408f44b8f9012429a4b46358608210211","head":{"label":"WooxSolo:window-confine-to-screen","ref":"window-confine-to-screen","sha":"43bfac9408f44b8f9012429a4b46358608210211","user":{"login":"WooxSolo","id":26200523,"avatar_url":"https://avatars1.githubusercontent.com/u/26200523?v=4","gravatar_id":"","url":"https://api.github.com/users/WooxSolo","html_url":"https://github.com/WooxSolo","followers_url":"https://api.github.com/users/WooxSolo/followers","following_url":"https://api.github.com/users/WooxSolo/following{/other_user}","gists_url":"https://api.github.com/users/WooxSolo/gists{/gist_id}","starred_url":"https://api.github.com/users/WooxSolo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WooxSolo/subscriptions","organizations_url":"https://api.github.com/users/WooxSolo/orgs","repos_url":"https://api.github.com/users/WooxSolo/repos","events_url":"https://api.github.com/users/WooxSolo/events{/privacy}","received_events_url":"https://api.github.com/users/WooxSolo/received_events","type":"User","site_admin":false},"repo":{"id":127482015,"name":"runelite","full_name":"WooxSolo/runelite","owner":{"login":"WooxSolo","id":26200523,"avatar_url":"https://avatars1.githubusercontent.com/u/26200523?v=4","gravatar_id":"","url":"https://api.github.com/users/WooxSolo","html_url":"https://github.com/WooxSolo","followers_url":"https://api.github.com/users/WooxSolo/followers","following_url":"https://api.github.com/users/WooxSolo/following{/other_user}","gists_url":"https://api.github.com/users/WooxSolo/gists{/gist_id}","starred_url":"https://api.github.com/users/WooxSolo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WooxSolo/subscriptions","organizations_url":"https://api.github.com/users/WooxSolo/orgs","repos_url":"https://api.github.com/users/WooxSolo/repos","events_url":"https://api.github.com/users/WooxSolo/events{/privacy}","received_events_url":"https://api.github.com/users/WooxSolo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/WooxSolo/runelite","description":"Open source Old School RuneScape client","fork":true,"url":"https://api.github.com/repos/WooxSolo/runelite","forks_url":"https://api.github.com/repos/WooxSolo/runelite/forks","keys_url":"https://api.github.com/repos/WooxSolo/runelite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/WooxSolo/runelite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/WooxSolo/runelite/teams","hooks_url":"https://api.github.com/repos/WooxSolo/runelite/hooks","issue_events_url":"https://api.github.com/repos/WooxSolo/runelite/issues/events{/number}","events_url":"https://api.github.com/repos/WooxSolo/runelite/events","assignees_url":"https://api.github.com/repos/WooxSolo/runelite/assignees{/user}","branches_url":"https://api.github.com/repos/WooxSolo/runelite/branches{/branch}","tags_url":"https://api.github.com/repos/WooxSolo/runelite/tags","blobs_url":"https://api.github.com/repos/WooxSolo/runelite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/WooxSolo/runelite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/WooxSolo/runelite/git/refs{/sha}","trees_url":"https://api.github.com/repos/WooxSolo/runelite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/WooxSolo/runelite/statuses/{sha}","languages_url":"https://api.github.com/repos/WooxSolo/runelite/languages","stargazers_url":"https://api.github.com/repos/WooxSolo/runelite/stargazers","contributors_url":"https://api.github.com/repos/WooxSolo/runelite/contributors","subscribers_url":"https://api.github.com/repos/WooxSolo/runelite/subscribers","subscription_url":"https://api.github.com/repos/WooxSolo/runelite/subscription","commits_url":"https://api.github.com/repos/WooxSolo/runelite/commits{/sha}","git_commits_url":"https://api.github.com/repos/WooxSolo/runelite/git/commits{/sha}","comments_url":"https://api.github.com/repos/WooxSolo/runelite/comments{/number}","issue_comment_url":"https://api.github.com/repos/WooxSolo/runelite/issues/comments{/number}","contents_url":"https://api.github.com/repos/WooxSolo/runelite/contents/{+path}","compare_url":"https://api.github.com/repos/WooxSolo/runelite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/WooxSolo/runelite/merges","archive_url":"https://api.github.com/repos/WooxSolo/runelite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/WooxSolo/runelite/downloads","issues_url":"https://api.github.com/repos/WooxSolo/runelite/issues{/number}","pulls_url":"https://api.github.com/repos/WooxSolo/runelite/pulls{/number}","milestones_url":"https://api.github.com/repos/WooxSolo/runelite/milestones{/number}","notifications_url":"https://api.github.com/repos/WooxSolo/runelite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/WooxSolo/runelite/labels{/name}","releases_url":"https://api.github.com/repos/WooxSolo/runelite/releases{/id}","deployments_url":"https://api.github.com/repos/WooxSolo/runelite/deployments","created_at":"2018-03-30T23:30:30Z","updated_at":"2018-04-28T19:01:11Z","pushed_at":"2018-04-28T21:37:55Z","git_url":"git://github.com/WooxSolo/runelite.git","ssh_url":"git@github.com:WooxSolo/runelite.git","clone_url":"https://github.com/WooxSolo/runelite.git","svn_url":"https://github.com/WooxSolo/runelite","homepage":"https://runelite.net","size":38486,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause"},"forks":1,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"runelite:master","ref":"master","sha":"9e3b195926f5c44ceb365f106787accf9891df52","user":{"login":"runelite","id":13814776,"avatar_url":"https://avatars1.githubusercontent.com/u/13814776?v=4","gravatar_id":"","url":"https://api.github.com/users/runelite","html_url":"https://github.com/runelite","followers_url":"https://api.github.com/users/runelite/followers","following_url":"https://api.github.com/users/runelite/following{/other_user}","gists_url":"https://api.github.com/users/runelite/gists{/gist_id}","starred_url":"https://api.github.com/users/runelite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/runelite/subscriptions","organizations_url":"https://api.github.com/users/runelite/orgs","repos_url":"https://api.github.com/users/runelite/repos","events_url":"https://api.github.com/users/runelite/events{/privacy}","received_events_url":"https://api.github.com/users/runelite/received_events","type":"Organization","site_admin":false},"repo":{"id":57461213,"name":"runelite","full_name":"runelite/runelite","owner":{"login":"runelite","id":13814776,"avatar_url":"https://avatars1.githubusercontent.com/u/13814776?v=4","gravatar_id":"","url":"https://api.github.com/users/runelite","html_url":"https://github.com/runelite","followers_url":"https://api.github.com/users/runelite/followers","following_url":"https://api.github.com/users/runelite/following{/other_user}","gists_url":"https://api.github.com/users/runelite/gists{/gist_id}","starred_url":"https://api.github.com/users/runelite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/runelite/subscriptions","organizations_url":"https://api.github.com/users/runelite/orgs","repos_url":"https://api.github.com/users/runelite/repos","events_url":"https://api.github.com/users/runelite/events{/privacy}","received_events_url":"https://api.github.com/users/runelite/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/runelite/runelite","description":"Open source Old School RuneScape client","fork":false,"url":"https://api.github.com/repos/runelite/runelite","forks_url":"https://api.github.com/repos/runelite/runelite/forks","keys_url":"https://api.github.com/repos/runelite/runelite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/runelite/runelite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/runelite/runelite/teams","hooks_url":"https://api.github.com/repos/runelite/runelite/hooks","issue_events_url":"https://api.github.com/repos/runelite/runelite/issues/events{/number}","events_url":"https://api.github.com/repos/runelite/runelite/events","assignees_url":"https://api.github.com/repos/runelite/runelite/assignees{/user}","branches_url":"https://api.github.com/repos/runelite/runelite/branches{/branch}","tags_url":"https://api.github.com/repos/runelite/runelite/tags","blobs_url":"https://api.github.com/repos/runelite/runelite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/runelite/runelite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/runelite/runelite/git/refs{/sha}","trees_url":"https://api.github.com/repos/runelite/runelite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/runelite/runelite/statuses/{sha}","languages_url":"https://api.github.com/repos/runelite/runelite/languages","stargazers_url":"https://api.github.com/repos/runelite/runelite/stargazers","contributors_url":"https://api.github.com/repos/runelite/runelite/contributors","subscribers_url":"https://api.github.com/repos/runelite/runelite/subscribers","subscription_url":"https://api.github.com/repos/runelite/runelite/subscription","commits_url":"https://api.github.com/repos/runelite/runelite/commits{/sha}","git_commits_url":"https://api.github.com/repos/runelite/runelite/git/commits{/sha}","comments_url":"https://api.github.com/repos/runelite/runelite/comments{/number}","issue_comment_url":"https://api.github.com/repos/runelite/runelite/issues/comments{/number}","contents_url":"https://api.github.com/repos/runelite/runelite/contents/{+path}","compare_url":"https://api.github.com/repos/runelite/runelite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/runelite/runelite/merges","archive_url":"https://api.github.com/repos/runelite/runelite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/runelite/runelite/downloads","issues_url":"https://api.github.com/repos/runelite/runelite/issues{/number}","pulls_url":"https://api.github.com/repos/runelite/runelite/pulls{/number}","milestones_url":"https://api.github.com/repos/runelite/runelite/milestones{/number}","notifications_url":"https://api.github.com/repos/runelite/runelite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/runelite/runelite/labels{/name}","releases_url":"https://api.github.com/repos/runelite/runelite/releases{/id}","deployments_url":"https://api.github.com/repos/runelite/runelite/deployments","created_at":"2016-04-30T20:48:02Z","updated_at":"2018-04-29T02:21:52Z","pushed_at":"2018-04-29T07:47:02Z","git_url":"git://github.com/runelite/runelite.git","ssh_url":"git@github.com:runelite/runelite.git","clone_url":"https://github.com/runelite/runelite.git","svn_url":"https://github.com/runelite/runelite","homepage":"https://runelite.net","size":38486,"stargazers_count":415,"watchers_count":415,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":320,"mirror_url":null,"archived":false,"open_issues_count":598,"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause"},"forks":320,"open_issues":598,"watchers":415,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/runelite/runelite/pulls/1977"},"html":{"href":"https://github.com/runelite/runelite/pull/1977"},"issue":{"href":"https://api.github.com/repos/runelite/runelite/issues/1977"},"comments":{"href":"https://api.github.com/repos/runelite/runelite/issues/1977/comments"},"review_comments":{"href":"https://api.github.com/repos/runelite/runelite/pulls/1977/comments"},"review_comment":{"href":"https://api.github.com/repos/runelite/runelite/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/runelite/runelite/pulls/1977/commits"},"statuses":{"href":"https://api.github.com/repos/runelite/runelite/statuses/43bfac9408f44b8f9012429a4b46358608210211"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"deathbeam"}}