Bug 3680 - Monodevelop critically important braces problem with italian keyboard
Summary: Monodevelop critically important braces problem with italian keyboard
Status: RESOLVED FIXED
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: Text Editor ()
Version: 2.8.2
Hardware: PC Windows
: Low normal
Target Milestone: ---
Assignee: Cody Russell
URL:
Depends on:
Blocks:
 
Reported: 2012-02-29 04:14 UTC by Mallus
Modified: 2013-12-05 15:03 UTC (History)
3 users (show)

Tags: gtk
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Mallus 2012-02-29 04:14:57 UTC
Description of Problem:
It is IMPOSSIBLE in monodevelop editor to type the curly braces { } (or brackets or whatever they're called) if you're using an italian keyboard.

The only, flawed, workaround is to use code templates, however they only work with c# files, while they don't work with Javascript files (creating a shortcut for the template window will only display the template window in c# scripts, the same key combination in a js file does nothing instead).

Steps to reproduce the problem:
1. Create any file.
2. Try to type a curly brace. With italian keyboards the only way to do this is by using the ALT + 123 or ALT + 125 combination. ALTGR doesn't work either. As a matter of fact ALTGR doesn't even seem to be considered as a key.

Actual Results:
Instead of outputting the vital curly braces, monodevelop uses the ALT + number combination to switch to the relevant open script in the editor window. So if you have four scripts open, you'll see monodevelop quickly switching to the first script on the left, then immediately to the second, and finally to the third script, without outputting anything.

What's ridiculous is that the ALT + number combination does not appear in the shortcuts list, and there seems to be no way of getting rid of such combination (which might totally be the cause of the missed ALT + 123 output)

Expected Results:
Anyone would expect that, if you type ALT + 123 or any other ascii character code combination, monodevelop would output the relevant character, instead of changing the active script window, especially since there's actually no shortcut on the shortcuts window, that covers such a function.

How often does this happen? 
Always.

Additional Information:
Given the frequency and importance of parentheses and braces, you could consider adding a shortcut specifically for them.

NOTE: the specific case is related to the Monodevelop version bundled with the Unity editor.
Comment 1 Mike Krüger 2012-02-29 07:42:04 UTC
It shouln't work in any GTK application on windows.
pidgin for example - http://www.pidgin.im

I mark it as dup of 1924, even if it's not really a duplicate - since it's another operating system, different input chain. But mac shares the issue with windows.

We try to repair gtk, but it may be that'll take much time. I feel with you - I can't use monodevelop on windows with my keyboard layout as well.

btw. that's what the GTK devs say to the issue:

https://bugzilla.gnome.org/show_bug.cgi?id=588131#c2

*** This bug has been marked as a duplicate of bug 1924 ***
Comment 2 Mallus 2012-02-29 11:44:02 UTC
Thanks for the reply. I was wondering though, since it's a know issue with gtk, would you please consider implementing a workaround?

This bug's around since 2005 and gtk team has obviously no intention or means to find a solution, so please make it so that a shortcut is made available, to add curly braces and whatever other enclosing characters you might consider.

Additionally, as a matter of fact, there seems to be the connected bug that I mentioned: right clicking the editor window and choosing 'insert template' does nothing at all in js files. Contrarily, in c# files, the template window appears and I can insert templates.

Basically the entire JS italian Unity community has switched from monodevelop to notepad++ because of this issue with the braces, which is a real pity since monodevelop is superior by far.

Thanks for your time and for your excellent software.
Comment 3 Mike Krüger 2012-02-29 11:47:55 UTC
The problem is: What should we do - we don't get any event for the keyboard input ?

We certainly would take patches in that area.

btw. JS isn't very high on our priority list, that's why templates are missing for these. We even don't support it "out of the box".

*** This bug has been marked as a duplicate of bug 1924 ***
Comment 4 Mike Krüger 2012-02-29 14:01:30 UTC
Good news:

I just tried it with a newer version (2.8.8.1) from:
http://monodevelop.com/Download

And it seems to work :)
Comment 5 Mikayla Hutchinson [MSFT] 2012-02-29 14:31:54 UTC
Mike:

You mean that the keyboard input is fixed? If not, we should leave this bug open to track it, it's a legitimate issue. The Neo layout is a particularly unusual case - a closer upstream bug might be https://bugzilla.gnome.org/show_bug.cgi?id=165385

Mallus:

If you're using the Unity version of MonoDevelop, you should be aware that Unity ships an older version of MonoDevelop, and makes often makes modifications to it that make it behave differently from upstream. If you could confirm that the bugs also happen in the latest upstream MonoDevelop, that would be great.

The UnityScript addin is developed by Unity, so we usually can't help with anything specific to that language. In this case, it might just be that there aren't any code templates - did you try adding one?
Comment 6 Mike Krüger 2012-02-29 14:42:48 UTC
mhutch: Keyboard input general - no.

Keyboard input italian? Yes it is. I tried it out with the 2.8.8.1 and newresolver and it just works it's a simple alt gr + 7/9 combo - I don't know why it didn't work since the german standard layout has the same key combo and that always did work.

(I always complain about neo - not about DE layout)
Comment 7 Mike Krüger 2012-02-29 14:47:38 UTC
Reopened because of the ALT + number issue.
Comment 8 Mallus 2012-03-01 04:59:45 UTC
Thanks to the leads that you people gave, I came to know that there's an additional, special key combination consisting of
ALT GR + SHIFT
and that wikipedia displays an italian keyboard layout that shows a curly brace above the [ and ] symbols.

Sadly, no italian keyboard that I've ever seen was actually manufactured with those symbols, but evidently they're still "there" in the code table.

Pressing ALT GR + SHIFT + [ actually prints {, both in the current 2.8.2 Unity version, and in the latest 2.8.8.1 beta.

However, I've tried using ALT + 123 key combination with the latest beta, and it still doesn't work, and I can confirm that the ALT + number will still switch to the corresponding open script in the editor, so you might want to take a look at that and see if it's actually interfering with the ALT + keypad character input in the editor.

Thanks again.
Comment 9 Mike Krüger 2012-04-03 09:59:13 UTC
*** Bug 4205 has been marked as a duplicate of this bug. ***
Comment 10 Cody Russell 2013-09-30 12:21:41 UTC
Hi Mallus, if this is still an issue for you then would you mind grabbing the following libgdk-win32 build and putting it into your GtkSharp/2.12/bin directory and letting me know if this helps with your problem?

https://www.dropbox.com/s/0pyv38m2ij7xcjt/libgdk-win32-2.0-0.dll

In my testing here I'm able to type { with this build using AltGr + Shift + [