<!-- 
RSS generated by JIRA (9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13) at Sun Jan 12 12:25:48 UTC 2025

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Mojang Studios Jira</title>
    <link>https://bugs.mojang.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en</language>    <build-info>
        <version>9.12.2</version>
        <build-number>9120002</build-number>
        <build-date>10-01-2024</build-date>
    </build-info>


<item>
            <title>[MC-10874] the [esc] key doesn&apos;t work when you&apos;re in the command block menu and when placing signs</title>
                <link>https://bugs.mojang.com/browse/MC-10874</link>
                <project id="10400" key="MC">Minecraft: Java Edition</project>
                    <description>&lt;p&gt;When you&apos;re in the commandblock UI you can&apos;t go back to the game when pressing the escape button. The escape button works in basically all UI&apos;s so you&apos;d expect it to happen for the commandblock UI too.&lt;/p&gt;

&lt;p&gt;(also the &lt;span class=&quot;error&quot;&gt;&amp;#91;enter&amp;#93;&lt;/span&gt; button would by handy, but that&apos;s another issue)&lt;/p&gt;</description>
                <environment>Mac OS X, but I don&amp;#39;t think that matters</environment>
        <key id="24854">MC-10874</key>
            <summary>the [esc] key doesn&apos;t work when you&apos;re in the command block menu and when placing signs</summary>
                <type id="1" iconUrl="https://bugs.mojang.com/secure/viewavatar?size=xsmall&amp;avatarId=18903&amp;avatarType=issuetype">Bug</type>
                                    <status id="5" iconUrl="https://bugs.mojang.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jespertheend">Jesper the End</reporter>
                        <labels>
                            <label>UI</label>
                            <label>command</label>
                            <label>command_block</label>
                    </labels>
                <created>Sun, 3 Mar 2013 12:57:09 +0100</created>
                <updated>Fri, 29 Dec 2017 23:13:35 +0100</updated>
                            <resolved>Sat, 16 Mar 2013 09:53:21 +0100</resolved>
                                    <version>Snapshot 13w09c</version>
                                    <fixVersion>Minecraft 1.5</fixVersion>
                                                        <votes>2</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="53967" author="bugi74" created="Sat, 16 Mar 2013 11:51:47 +0100"  >&lt;p&gt;Just for reference, looks like these were fixed the way shown in the first part; for command block esc equals cancel, for signs it equals save/done.&lt;/p&gt;</comment>
                            <comment id="53923" author="kumasasa" created="Sat, 16 Mar 2013 09:53:21 +0100"  >&lt;p&gt;Ninja fix. Also fixed for signs.&lt;/p&gt;</comment>
                            <comment id="53919" author="jespertheend" created="Sat, 16 Mar 2013 09:39:29 +0100"  >&lt;p&gt;fixed for 1.5 (didn&apos;t even notice)&lt;/p&gt;</comment>
                            <comment id="49906" author="rydian" created="Tue, 5 Mar 2013 07:23:14 +0100"  >&lt;p&gt;Didn&apos;t know that signs didn&apos;t have a buffer.&lt;/p&gt;

&lt;p&gt;I knew changes in the settings and other GUI-based stuff can&apos;t cancel on close, but that&apos;s because those changes are saved when they happen.&lt;/p&gt;</comment>
                            <comment id="49654" author="bugi74" created="Mon, 4 Mar 2013 19:35:27 +0100"  >&lt;p&gt;The thing is, sign-editing GUI has no &quot;cancel&quot; &lt;img class=&quot;emoticon&quot; src=&quot;https://bugs.mojang.com/images/icons/emoticons/tongue.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;  It only has action &quot;Done&quot;.&lt;/p&gt;

&lt;p&gt;Also, the sign text is edited &quot;directly&quot;, whatever is typed goes immediately into the sign entity. There is no &quot;undo buffer&quot; that could be used for cancel. And the GUI sends changes to server whenever the GUI is closed, no matter how it is closed. There&apos;s lots to change in order to support cancel.&lt;/p&gt;

&lt;p&gt;Oh well...&lt;/p&gt;

&lt;p&gt;Edit: realized that the reason for not having cancel is that the sign will always be created once the placement/editing has started, and that existing signs can not be edited. Thus, if one cancels, the sign is just left empty, which is most of times not useful... well, I guess all the people abusing signs for other than showing text would disagree.&lt;/p&gt;

&lt;p&gt;Anyway, necessary changes to support canceling the text (i.e. quick placing an empty sign):&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;GuiEditSign&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    ...
    &lt;span class=&quot;code-comment&quot;&gt;// ADDED
&lt;/span&gt;    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;[] oldText = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;[] {&lt;span class=&quot;code-quote&quot;&gt;&quot;&quot;, &quot;&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&quot;, &quot;&lt;/span&gt;&lt;span class=&quot;code-quote&quot;&gt;&quot;, &quot;&lt;/span&gt;&quot;};
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; cancel = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
    ...
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void initGui() {
        ...
        &lt;span class=&quot;code-comment&quot;&gt;// ADDED
&lt;/span&gt;        oldText = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;[4];
        &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.arraycopy(&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.signText, 0, oldText, 0, 4);
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.cancel = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void onGuiClosed() {
        &lt;span class=&quot;code-comment&quot;&gt;// ADDED the wrapping in the &lt;span class=&quot;code-quote&quot;&gt;&apos;&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt;&apos;&lt;/span&gt; and the last row (though that last row is likely unnecessary.
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!cancel) {
            Keyboard.enableRepeatEvents(&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;);
            NetClientHandler var1 = &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.mc.getSendQueue();
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (var1 != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
                var1.addToSendQueue(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Packet130UpdateSign(&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.xCoord, &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.yCoord, &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.zCoord, &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.signText));
            }
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.setEditable(&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.cancel = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; void keyTyped(&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; par1, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; par2) {
        &lt;span class=&quot;code-comment&quot;&gt;// ESC FIX
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (par2 == 1) {
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.cancel = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
            &lt;span class=&quot;code-comment&quot;&gt;// Restore old values:
&lt;/span&gt;            &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.arraycopy(oldText, 0, &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.signText, 0, 4);
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.mc.displayGuiScreen((GuiScreen) &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt;;
        }
        ...
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The storing of the &quot;old text&quot; is currently unnecessary, as all signs can only be empty when they get there. However, anticipating a convenience change in future to allow editing existing signs, the copy of the old text would handle it already.&lt;/p&gt;</comment>
                            <comment id="49573" author="rydian" created="Mon, 4 Mar 2013 16:11:51 +0100"  >&lt;p&gt;I think escape as Cancel is better, isn&apos;t that how it is for everything else?&lt;/p&gt;

&lt;p&gt;Escape never confirmed changes that aren&apos;t already saved.&lt;/p&gt;</comment>
                            <comment id="49346" author="bugi74" created="Sun, 3 Mar 2013 14:24:14 +0100"  >&lt;p&gt;&lt;b&gt;Fixes&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;GuiCommandBlock&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; void keyTyped(&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; par1, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; par2) {
        &lt;span class=&quot;code-comment&quot;&gt;// ADDED:
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (par2 == 1)
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.actionPerformed((GuiButton) &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.controlList.get(1));
        ...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeHeader panelHeader&quot; style=&quot;border-bottom-width: 1px;&quot;&gt;&lt;b&gt;GuiEditSign&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; void keyTyped(&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; par1, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; par2) {
        &lt;span class=&quot;code-comment&quot;&gt;// ADDED:
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (par2 == 1) {
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.entitySign.onInventoryChanged();
            &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.mc.displayGuiScreen((GuiScreen) &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt;;
        }
        ...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Tested on 1.4.7. (Oh yeah, affects 1.4.7). ESC on command block makes &quot;cancel&quot;, but I made it to save the text on sign (more convenient for that).&lt;/p&gt;</comment>
                            <comment id="49336" author="kumasasa" created="Sun, 3 Mar 2013 13:46:30 +0100"  >&lt;p&gt;Confirmed.&lt;br/&gt;
Applies also to signs.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                <customfield id="customfield_10701" key="com.atlassian.jira.plugin.system.customfieldtypes:datetime">
                        <customfieldname>CHK</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Sun, 3 Mar 2013 18:16:00 +0100</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10500" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Confirmation Status</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10303"><![CDATA[Confirmed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_11700" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_11600" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0k5uv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>