diff --git a/panels/keyboard/cc-keyboard-panel.c b/panels/keyboard/cc-keyboard-panel.c
index 0cdd59738..6b203f18f 100644
--- a/panels/keyboard/cc-keyboard-panel.c
+++ b/panels/keyboard/cc-keyboard-panel.c
@@ -45,9 +45,6 @@ struct _CcKeyboardPanel
GtkRadioButton *same_source;
GSettings *keybindings_settings;
- /* "Type Special Characters" section */
- CcXkbModifierDialog *alt_chars_dialog;
- CcXkbModifierDialog *compose_dialog;
GSettings *input_source_settings;
GtkLabel *input_switch_description;
GtkListBox *special_chars_list;
@@ -116,17 +113,20 @@ special_chars_activated (GtkWidget *button,
GtkListBoxRow *row,
CcKeyboardPanel *self)
{
+ const CcXkbModifier *modifier;
GtkWindow *window, *dialog;
window = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (self))));
if (row == self->alt_chars_row)
- dialog = GTK_WINDOW (self->alt_chars_dialog);
+ modifier = &LV3_MODIFIER;
else if (row == self->compose_row)
- dialog = GTK_WINDOW (self->compose_dialog);
+ modifier = &COMPOSE_MODIFIER;
else
return;
+ dialog = GTK_WINDOW (cc_xkb_modifier_dialog_new (self->input_source_settings, modifier));
+
gtk_window_set_transient_for (dialog, window);
gtk_widget_show (GTK_WIDGET (dialog));
}
@@ -295,7 +295,4 @@ cc_keyboard_panel_init (CcKeyboardPanel *self)
NULL,
(gpointer)&COMPOSE_MODIFIER,
NULL);
-
- self->alt_chars_dialog = cc_xkb_modifier_dialog_new (self->input_source_settings, &LV3_MODIFIER);
- self->compose_dialog = cc_xkb_modifier_dialog_new (self->input_source_settings, &COMPOSE_MODIFIER);
}
diff --git a/panels/keyboard/cc-xkb-modifier-dialog.ui b/panels/keyboard/cc-xkb-modifier-dialog.ui
index 8c2cf8e87..851b92d6b 100644
--- a/panels/keyboard/cc-xkb-modifier-dialog.ui
+++ b/panels/keyboard/cc-xkb-modifier-dialog.ui
@@ -6,7 +6,6 @@
False
500
dialog
-