After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 689844 - Setting keyboard to 'full' crashes the shell
Setting keyboard to 'full' crashes the shell
Status: RESOLVED FIXED
Product: caribou
Classification: Applications
Component: default
git master
Other Linux
: Normal normal
: ---
Assigned To: caribou-maint
caribou-maint
Depends on:
Blocks: 689608
 
 
Reported: 2012-12-07 13:45 UTC by Rui Matos
Modified: 2013-02-25 22:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
keyboard-model: Prevent a segfault (919 bytes, patch)
2012-12-07 13:50 UTC, Rui Matos
none Details | Review
libcaribou: fail if no groups can be loaded (2.60 KB, patch)
2012-12-10 09:34 UTC, Daiki Ueno
reviewed Details | Review
xml-deserializer: fallback to "touch" keyboard type, if not found (1.27 KB, patch)
2013-02-25 07:38 UTC, Daiki Ueno
committed Details | Review

Description Rui Matos 2012-12-07 13:45:55 UTC
+++ This bug was initially created as a clone of Bug #689608 +++

Seen with 3.6.2. As soon as I 

gsettings set or.gnome.shell.keyboard keyboard-type 'full', the shell crashes.

Thats sad, because I was hoping to look at full mode as a a way to get closer to a fully functional osk...
Comment 1 Rui Matos 2012-12-07 13:50:54 UTC
Created attachment 230965 [details] [review]
keyboard-model: Prevent a segfault

--

This avoids the segfault but ideally I think that the whole object
construction should fail in the first place though I'm not sure how to
do that in Vala.
Comment 2 Daiki Ueno 2012-12-07 23:26:00 UTC
(In reply to comment #1)

> This avoids the segfault but ideally I think that the whole object
> construction should fail in the first place though I'm not sure how to
> do that in Vala.

Just asked Vala people about this (as I wanted to do that in other places) and it seems Initable may help, like C programs.
Comment 3 Daiki Ueno 2012-12-10 09:34:01 UTC
Created attachment 231124 [details] [review]
libcaribou: fail if no groups can be loaded

--
Like this, I mean.  Unfortunately, callers need to be changed to use
caribou_keyboard_model_new() instead of g_object_new().
Comment 4 Rui Matos 2012-12-10 10:43:30 UTC
Review of attachment 231124 [details] [review]:

Looks fine to me but you might want a proper review from someone with more Vala experience

::: caribou/antler/keyboard_view.py
@@ +249,2 @@
     def set_keyboard_model(self, keyboard_type):
+        self.keyboard_model = Caribou.KeyboardModel.new(keyboard_type)

Don't you need to catch exceptions here?
Comment 5 Daiki Ueno 2013-02-25 07:38:40 UTC
Created attachment 237335 [details] [review]
xml-deserializer: fallback to "touch" keyboard type, if not found

--
Thinking again, using Initable here seems to be overkill.  Instead, I'm going to apply this patch, which makes libcaribou always succeed to create groups.
Comment 6 Rui Matos 2013-02-25 16:00:39 UTC
Review of attachment 237335 [details] [review]:

Yes, this looks like a reasonable solution that keeps things simple and doesn't change the API. I like it.
Comment 7 Daiki Ueno 2013-02-25 22:37:26 UTC
Thanks, pushed.

Attachment 237335 [details] pushed as 0cf2fda - xml-deserializer: fallback to "touch" keyboard type, if not found